Limetime's TimeLine
article thumbnail
반응형

1. [Cloud] Openstack - Caracal 구축 개요
2. [Cloud] Openstack - 1-1. Controller Node (Preprocess, Environment, Keystone, Glance)
3. [Cloud] Openstack - 1-2. Controller Node (Placement, Nova, Neutron) ←
4. [Cloud] Openstack - 1-3. Controller Node (Cinder, Swift)
5. [Cloud] Openstack - 1-4. Controller Node (Horizon)
6. [Cloud] Openstack - 2. Compute Node
7. [Cloud] Openstack - 3. Block Node
8. [Cloud] Openstack - 4. Horizon Dashboard Console 개선

Placement


 

 

Installation — openstack-placement 10.0.0.0rc2.dev2 documentation

This section provides instructions on installing placement from Linux distribution packages. The placement service provides an HTTP API used to track resource provider inventories and usages. More detail can be found at the placement overview. Placement op

docs.openstack.org

Prerequisites

mysql
MariaDB [(none)]> CREATE DATABASE placement;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';

- Create a Placement service user using your chosen PLACEMENT_PASS

openstack user create --domain default --password-prompt placement

	User Password: PLACEMENT_PASS
	Repeat User Password: PLACEMENT_PASS
		+---------------------+----------------------------------+
		| Field               | Value                            |
		+---------------------+----------------------------------+
		| domain_id           | default                          |
		| enabled             | True                             |
		| id                  | fa742015a6494a949f67629884fc7ec8 |
		| name                | placement                        |
		| options             | {}                               |
		| password_expires_at | None                             |
		+---------------------+----------------------------------+
openstack role add --project service --user placement admin

- Add the Placement user to the service project with the admin role

openstack service create --name placement --description "Placement API" placement
	+-------------+----------------------------------+
	| Field       | Value                            |
	+-------------+----------------------------------+
	| description | Placement API                    |
	| enabled     | True                             |
	| id          | 2d1a27022e6e4185b86adac4444c495f |
	| name        | placement                        |
	| type        | placement                        |
	+-------------+----------------------------------+

- Create the Placement API service endpoints

openstack endpoint create --region RegionOne placement public http://controller:8778
	+--------------+----------------------------------+
	| Field        | Value                            |
	+--------------+----------------------------------+
	| enabled      | True                             |
	| id           | 2b1b2637908b4137a9c2e0470487cbc0 |
	| interface    | public                           |
	| region       | RegionOne                        |
	| region_id    | RegionOne                        |
	| service_id   | 2d1a27022e6e4185b86adac4444c495f |
	| service_name | placement                        |
	| service_type | placement                        |
	| url          | http://controller:8778           |
	+--------------+----------------------------------+
	
openstack endpoint create --region RegionOne placement internal http://controller:8778
	+--------------+----------------------------------+
	| Field        | Value                            |
	+--------------+----------------------------------+
	| enabled      | True                             |
	| id           | 02bcda9a150a4bd7993ff4879df971ab |
	| interface    | internal                         |
	| region       | RegionOne                        |
	| region_id    | RegionOne                        |
	| service_id   | 2d1a27022e6e4185b86adac4444c495f |
	| service_name | placement                        |
	| service_type | placement                        |
	| url          | http://controller:8778           |
	+--------------+----------------------------------+

openstack endpoint create --region RegionOne placement admin http://controller:8778
	+--------------+----------------------------------+
	| Field        | Value                            |
	+--------------+----------------------------------+
	| enabled      | True                             |
	| id           | 3d71177b9e0f406f98cbff198d74b182 |
	| interface    | admin                            |
	| region       | RegionOne                        |
	| region_id    | RegionOne                        |
	| service_id   | 2d1a27022e6e4185b86adac4444c495f |
	| service_name | placement                        |
	| service_type | placement                        |
	| url          | http://controller:8778           |
	+--------------+----------------------------------+

Install and configure components

- Install the packages

apt install placement-api

- vi /etc/placement/placement.conf

[placement_database]
# ...
connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = PLACEMENT_PASS

- Populate the placement database

su -s /bin/sh -c "placement-manage db sync" placement

- Reload the web server to adjust to get new configuration settings for placement

service apache2 restart

Verify Installation

- Perform status checks to make sure everything is in order

placement-status upgrade check
	+----------------------------------+
	| Upgrade Check Results            |
	+----------------------------------+
	| Check: Missing Root Provider IDs |
	| Result: Success                  |
	| Details: None                    |
	+----------------------------------+
	| Check: Incomplete Consumers      |
	| Result: Success                  |
	| Details: None                    |
	+----------------------------------+

- Run some commands against the placement API

pip3 install osc-placement
openstack --os-placement-api-version 1.2 resource class list --sort-column name
	+----------------------------+
	| name                       |
	+----------------------------+
	| DISK_GB                    |
	| IPV4_ADDRESS               |
	| ...                        |

openstack --os-placement-api-version 1.6 trait list --sort-column name
+---------------------------------------+
| name                                  |
+---------------------------------------+
| COMPUTE_DEVICE_TAGGING                |
| COMPUTE_NET_ATTACH_INTERFACE          |
| ...                                   |


Nova(Compute)


 

 

Compute service — nova 28.3.1.dev16 documentation

this page last updated: 2019-10-08 11:20:05

docs.openstack.org

Prerequisites

- To create the databases, complete these steps

mysql

MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASE nova_cell0;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

- Create the Compute service credentials

openstack user create --domain default --password-prompt nova

	User Password: NOVA_PASS
	Repeat User Password: NOVA_PASS
		+---------------------+----------------------------------+
		| Field               | Value                            |
		+---------------------+----------------------------------+
		| domain_id           | default                          |
		| enabled             | True                             |
		| id                  | 8a7dbf5279404537b1c7b86c033620fe |
		| name                | nova                             |
		| options             | {}                               |
		| password_expires_at | None                             |
		+---------------------+----------------------------------+

- Add the admin role to the nova user

openstack role add --project service --user nova admin

- Create the nova service entity

openstack service create --name nova --description "OpenStack Compute" compute

	+-------------+----------------------------------+
	| Field       | Value                            |
	+-------------+----------------------------------+
	| description | OpenStack Compute                |
	| enabled     | True                             |
	| id          | 060d59eac51b4594815603d75a00aba2 |
	| name        | nova                             |
	| type        | compute                          |
	+-------------+----------------------------------+

- Create the Compute API service endpoints

openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
	+--------------+-------------------------------------------+
	| Field        | Value                                     |
	+--------------+-------------------------------------------+
	| enabled      | True                                      |
	| id           | 3c1caa473bfe4390a11e7177894bcc7b          |
	| interface    | public                                    |
	| region       | RegionOne                                 |
	| region_id    | RegionOne                                 |
	| service_id   | 060d59eac51b4594815603d75a00aba2          |
	| service_name | nova                                      |
	| service_type | compute                                   |
	| url          | http://controller:8774/v2.1               |
	+--------------+-------------------------------------------+

openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
	+--------------+-------------------------------------------+
	| Field        | Value                                     |
	+--------------+-------------------------------------------+
	| enabled      | True                                      |
	| id           | e3c918de680746a586eac1f2d9bc10ab          |
	| interface    | internal                                  |
	| region       | RegionOne                                 |
	| region_id    | RegionOne                                 |
	| service_id   | 060d59eac51b4594815603d75a00aba2          |
	| service_name | nova                                      |
	| service_type | compute                                   |
	| url          | http://controller:8774/v2.1               |
	+--------------+-------------------------------------------+

openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
	+--------------+-------------------------------------------+
	| Field        | Value                                     |
	+--------------+-------------------------------------------+
	| enabled      | True                                      |
	| id           | 38f7af91666a47cfb97b4dc790b94424          |
	| interface    | admin                                     |
	| region       | RegionOne                                 |
	| region_id    | RegionOne                                 |
	| service_id   | 060d59eac51b4594815603d75a00aba2          |
	| service_name | nova                                      |
	| service_type | compute                                   |
	| url          | http://controller:8774/v2.1               |
	+--------------+-------------------------------------------+

Install and configure components

- Install the packages

apt install nova-api nova-conductor nova-novncproxy nova-scheduler

- vi /etc/nova/nova.conf

[api_database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api

[database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova

[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller:5672/
my_ip = 192.168.2.10

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS

[service_user]
send_service_user_token = true
auth_url = http://controller:5000/identity
auth_strategy = keystone
auth_type = password
project_domain_name = Default
project_name = service
user_domain_name = Default
username = nova
password = NOVA_PASS

[vnc]
enabled = true
# ...
server_listen = $my_ip
server_proxyclient_address = $my_ip

[glance]
# ...
api_servers = http://controller:9292

[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp

[placement]
# ...
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = PLACEMENT_PASS

[scheduler] #compute node 탐색 주기
discover_hosts_in_cells_interval = 300

- Populate the nova-api database

su -s /bin/sh -c "nova-manage api_db sync" nova

- Register the cell0 database

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

- Create the cell1 cell

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

- Populate the nova database

su -s /bin/sh -c "nova-manage db sync" nova

- Verify nova cell0 and cell1 are registered correctly

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
	+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
	|  Name |                 UUID                 |                   Transport URL                    |                     Database Connection                      | Disabled |
	+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
	| cell0 | 00000000-0000-0000-0000-000000000000 |                       none:/                       | mysql+pymysql://nova:****@controller/nova_cell0?charset=utf8 |  False   |
	| cell1 | f690f4fd-2bc5-4f15-8145-db561a7b9d3d | rabbit://openstack:****@controller:5672/nova_cell1 | mysql+pymysql://nova:****@controller/nova_cell1?charset=utf8 |  False   |
	+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+

- Restart the Compute services

service nova-api restart
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart

Verify operation

- List service components to verify successful launch and registration of each process

openstack compute service list

	+----+--------------------+------------+----------+---------+-------+----------------------------+
	| Id | Binary             | Host       | Zone     | Status  | State | Updated At                 |
	+----+--------------------+------------+----------+---------+-------+----------------------------+
	|  1 | nova-scheduler     | controller | internal | enabled | up    | 2016-02-09T23:11:15.000000 |
	|  2 | nova-conductor     | controller | internal | enabled | up    | 2016-02-09T23:11:16.000000 |
	|  3 | nova-compute       | compute1   | nova     | enabled | up    | 2016-02-09T23:11:20.000000 |
	+----+--------------------+------------+----------+---------+-------+----------------------------+

- List API endpoints in the Identity service to verify connectivity with the Identity service

openstack catalog list

	+-----------+-----------+-----------------------------------------+
	| Name      | Type      | Endpoints                               |
	+-----------+-----------+-----------------------------------------+
	| keystone  | identity  | RegionOne                               |
	|           |           |   public: http://controller:5000/v3/    |
	|           |           | RegionOne                               |
	|           |           |   internal: http://controller:5000/v3/  |
	|           |           | RegionOne                               |
	|           |           |   admin: http://controller:5000/v3/     |
	|           |           |                                         |
	| glance    | image     | RegionOne                               |
	|           |           |   admin: http://controller:9292         |
	|           |           | RegionOne                               |
	|           |           |   public: http://controller:9292        |
	|           |           | RegionOne                               |
	|           |           |   internal: http://controller:9292      |
	|           |           |                                         |
	| nova      | compute   | RegionOne                               |
	|           |           |   admin: http://controller:8774/v2.1    |
	|           |           | RegionOne                               |
	|           |           |   internal: http://controller:8774/v2.1 |
	|           |           | RegionOne                               |
	|           |           |   public: http://controller:8774/v2.1   |
	|           |           |                                         |
	| placement | placement | RegionOne                               |
	|           |           |   public: http://controller:8778        |
	|           |           | RegionOne                               |
	|           |           |   admin: http://controller:8778         |
	|           |           | RegionOne                               |
	|           |           |   internal: http://controller:8778      |
	|           |           |                                         |
	+-----------+-----------+-----------------------------------------+

- List images in the Image service to verify connectivity with the Image service

openstack image list

	+--------------------------------------+-------------+-------------+
	| ID                                   | Name        | Status      |
	+--------------------------------------+-------------+-------------+
	| 9a76d9f9-9620-4f2e-8c69-6c5691fae163 | cirros      | active      |
	+--------------------------------------+-------------+-------------+

- Check the cells and placement API are working successfully and that other necessary prerequisites are in place

nova-status upgrade check
	
	+--------------------------------------------------------------------+
	| Upgrade Check Results                                              |
	+--------------------------------------------------------------------+
	| Check: Cells v2                                                    |
	| Result: Success                                                    |
	| Details: None                                                      |
	+--------------------------------------------------------------------+
	| Check: Placement API                                               |
	| Result: Success                                                    |
	| Details: None                                                      |
	+--------------------------------------------------------------------+
	| Check: Cinder API                                                  |
	| Result: Success                                                    |
	| Details: None                                                      |
	+--------------------------------------------------------------------+
	| Check: Policy File JSON to YAML Migration                          |
	| Result: Success                                                    |
	| Details: None                                                      |
	+--------------------------------------------------------------------+
	| Check: Older than N-1 computes                                     |
	| Result: Success                                                    |
	| Details: None                                                      |
	+--------------------------------------------------------------------+

 

Neutron(Network)


 

 

Networking service Installation Guide — Neutron 23.3.1.dev15 documentation

Networking service Installation Guide This chapter explains how to install and configure the Networking service (neutron) using the provider networks or self-service networks option. For more information about the Networking service including virtual netwo

docs.openstack.org

Prerequisites

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:49:5a:63 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.2.20/24 brd 192.168.2.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe49:5a63/64 scope link 
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state UP group default qlen 1000
    link/ether 00:0c:29:49:5a:6d brd ff:ff:ff:ff:ff:ff
    altname enp2s2
    inet6 fe80::20c:29ff:fe49:5a6d/64 scope link 
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:c8:e0:71 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
7: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether ce:b0:e3:37:6b:3c brd ff:ff:ff:ff:ff:ff
8: br-ens34: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:49:5a:6d brd ff:ff:ff:ff:ff:ff
9: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 8e:ac:23:37:ae:4c brd ff:ff:ff:ff:ff:ff
10: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 52:ab:02:26:a3:49 brd ff:ff:ff:ff:ff:ff
apt install openvswitch-switch
ovs-vsctl del-br br-int
ovs-vsctl show

ovs-vsctl add-br br-ens34
ovs-vsctl add-port br-ens34 ens34
ovs-vsctl show

- To create the database, complete these steps

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE neutron;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';

- To create the service credentials, complete these steps

openstack user create --domain default --password-prompt neutron
	
	User Password: NEUTRON_PASS
	Repeat User Password: NEUTRON_PASS
		+---------------------+----------------------------------+
		| Field               | Value                            |
		+---------------------+----------------------------------+
		| domain_id           | default                          |
		| enabled             | True                             |
		| id                  | fdb0f541e28141719b6a43c8944bf1fb |
		| name                | neutron                          |
		| options             | {}                               |
		| password_expires_at | None                             |
		+---------------------+----------------------------------+
openstack role add --project service --user neutron admin
openstack service create --name neutron --description "OpenStack Networking" network

	+-------------+----------------------------------+
	| Field       | Value                            |
	+-------------+----------------------------------+
	| description | OpenStack Networking             |
	| enabled     | True                             |
	| id          | f71529314dab4a4d8eca427e701d209e |
	| name        | neutron                          |
	| type        | network                          |
	+-------------+----------------------------------+

- Create the Networking service API endpoints

openstack endpoint create --region RegionOne network public http://controller:9696
	+--------------+----------------------------------+
	| Field        | Value                            |
	+--------------+----------------------------------+
	| enabled      | True                             |
	| id           | 85d80a6d02fc4b7683f611d7fc1493a3 |
	| interface    | public                           |
	| region       | RegionOne                        |
	| region_id    | RegionOne                        |
	| service_id   | f71529314dab4a4d8eca427e701d209e |
	| service_name | neutron                          |
	| service_type | network                          |
	| url          | http://controller:9696           |
	+--------------+----------------------------------+

openstack endpoint create --region RegionOne network internal http://controller:9696
	+--------------+----------------------------------+
	| Field        | Value                            |
	+--------------+----------------------------------+
	| enabled      | True                             |
	| id           | 09753b537ac74422a68d2d791cf3714f |
	| interface    | internal                         |
	| region       | RegionOne                        |
	| region_id    | RegionOne                        |
	| service_id   | f71529314dab4a4d8eca427e701d209e |
	| service_name | neutron                          |
	| service_type | network                          |
	| url          | http://controller:9696           |
	+--------------+----------------------------------+

openstack endpoint create --region RegionOne network admin http://controller:9696
	+--------------+----------------------------------+
	| Field        | Value                            |
	+--------------+----------------------------------+
	| enabled      | True                             |
	| id           | 1ee14289c9374dffb5db92a5c112fc4e |
	| interface    | admin                            |
	| region       | RegionOne                        |
	| region_id    | RegionOne                        |
	| service_id   | f71529314dab4a4d8eca427e701d209e |
	| service_name | neutron                          |
	| service_type | network                          |
	| url          | http://controller:9696           |
	+--------------+----------------------------------+

Networking Option 2: Self-service networks

Install the components

apt install neutron-server neutron-plugin-ml2 \
  neutron-openvswitch-agent neutron-l3-agent neutron-dhcp-agent \
  neutron-metadata-agent

Configure the server component

- vi /etc/neutron/neutron.conf

[database]
# ...
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

[DEFAULT]
# ...
core_plugin = ml2
service_plugins = router
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = neutron
password = NEUTRON_PASS

[nova]
# ...
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
region_name = RegionOne
project_name = service
username = nova
password = NOVA_PASS

[oslo_concurrency]
# ...
lock_path = /var/lib/neutron/tmp

Configure the Modular Layer 2 (ML2) plug-in

- vi /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
# ...
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security

[ml2_type_flat]
# ...
flat_networks = provider

[ml2_type_vxlan]
# ...
vni_ranges = 1:1000

Configure the Open vSwitch agent

- vi /etc/neutron/plugins/ml2/openvswitch_agent.ini

[ovs]
bridge_mappings = provider:br-ens34
local_ip = 192.168.2.10

[agent]
tunnel_types = vxlan
l2_population = true

#[vxlan]
#local_ip = OVERLAY_INTERFACE_IP_ADDRESS
#l2_population = true

[securitygroup]
# ...
enable_security_group = true
firewall_driver = openvswitch
#firewall_driver = iptables_hybrid

Configure the layer-3 agent

- vi /etc/neutron/l3_agent.ini

[DEFAULT]
# ...
interface_driver = openvswitch

Configure the DHCP agent

- vi /etc/neutron/dhcp_agent.ini

[DEFAULT]
# ...
interface_driver = openvswitch
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true

Configure the metadata agent

- vi /etc/neutron/metadata_agent.ini

[DEFAULT]
# ...
nova_metadata_host = controller
metadata_proxy_shared_secret = METADATA_SECRET

Configure the Compute service to use the Networking service

- vi /etc/nova/nova.conf

[neutron]
# ...
auth_url = http://controller:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET

Finalize installation

- Populate the database

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

- Restart the Compute API service

service nova-api restart

- Restart the Networking services.

service neutron-server restart
service neutron-openvswitch-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agent restart

- For networking option 2, also restart the layer-3 service

service neutron-l3-agent restart

Verify operation

- List loaded extensions to verify successful launch of the neutron-server process

openstack extension list --network
	+---------------------------+---------------------------+----------------------------+
	| Name                      | Alias                     | Description                |
	+---------------------------+---------------------------+----------------------------+
	| Default Subnetpools       | default-subnetpools       | Provides ability to mark   |
	|                           |                           | and use a subnetpool as    |
	|                           |                           | the default                |
	| Availability Zone         | availability_zone         | The availability zone      |
	|                           |                           | extension.                 |
	| Network Availability Zone | network_availability_zone | Availability zone support  |
	|                           |                           | for network.               |
	| Port Binding              | binding                   | Expose port bindings of a  |
	|                           |                           | virtual port to external   |
	|                           |                           | application                |
	| agent                     | agent                     | The agent management       |
	|                           |                           | extension.                 |
	| Subnet Allocation         | subnet_allocation         | Enables allocation of      |
	|                           |                           | subnets from a subnet pool |
	| DHCP Agent Scheduler      | dhcp_agent_scheduler      | Schedule networks among    |
	|                           |                           | dhcp agents                |
	| Neutron external network  | external-net              | Adds external network      |
	|                           |                           | attribute to network       |
	|                           |                           | resource.                  |
	| Neutron Service Flavors   | flavors                   | Flavor specification for   |
	|                           |                           | Neutron advanced services  |
	| Network MTU               | net-mtu                   | Provides MTU attribute for |
	|                           |                           | a network resource.        |
	| Network IP Availability   | network-ip-availability   | Provides IP availability   |
	|                           |                           | data for each network and  |
	|                           |                           | subnet.                    |
	| Quota management support  | quotas                    | Expose functions for       |
	|                           |                           | quotas management per      |
	|                           |                           | tenant                     |
	| Provider Network          | provider                  | Expose mapping of virtual  |
	|                           |                           | networks to physical       |
	|                           |                           | networks                   |
	| Multi Provider Network    | multi-provider            | Expose mapping of virtual  |
	|                           |                           | networks to multiple       |
	|                           |                           | physical networks          |
	| Address scope             | address-scope             | Address scopes extension.  |
	| Subnet service types      | subnet-service-types      | Provides ability to set    |
	|                           |                           | the subnet service_types   |
	|                           |                           | field                      |
	| Resource timestamps       | standard-attr-timestamp   | Adds created_at and        |
	|                           |                           | updated_at fields to all   |
	|                           |                           | Neutron resources that     |
	|                           |                           | have Neutron standard      |
	|                           |                           | attributes.                |
	| Neutron Service Type      | service-type              | API for retrieving service |
	| Management                |                           | providers for Neutron      |
	|                           |                           | advanced services          |
	| resources: subnet,        |                           | more L2 and L3 resources.  |
	| subnetpool, port, router  |                           |                            |
	| Neutron Extra DHCP opts   | extra_dhcp_opt            | Extra options              |
	|                           |                           | configuration for DHCP.    |
	|                           |                           | For example PXE boot       |
	|                           |                           | options to DHCP clients    |
	|                           |                           | can be specified (e.g.     |
	|                           |                           | tftp-server, server-ip-    |
	|                           |                           | address, bootfile-name)    |
	| Resource revision numbers | standard-attr-revisions   | This extension will        |
	|                           |                           | display the revision       |
	|                           |                           | number of neutron          |
	|                           |                           | resources.                 |
	| Pagination support        | pagination                | Extension that indicates   |
	|                           |                           | that pagination is         |
	|                           |                           | enabled.                   |
	| Sorting support           | sorting                   | Extension that indicates   |
	|                           |                           | that sorting is enabled.   |
	| security-group            | security-group            | The security groups        |
	|                           |                           | extension.                 |
	| RBAC Policies             | rbac-policies             | Allows creation and        |
	|                           |                           | modification of policies   |
	|                           |                           | that control tenant access |
	|                           |                           | to resources.              |
	| standard-attr-description | standard-attr-description | Extension to add           |
	|                           |                           | descriptions to standard   |
	|                           |                           | attributes                 |
	| Port Security             | port-security             | Provides port security     |
	| Allowed Address Pairs     | allowed-address-pairs     | Provides allowed address   |
	|                           |                           | pairs                      |
	| project_id field enabled  | project-id                | Extension that indicates   |
	|                           |                           | that project_id field is   |
	|                           |                           | enabled.                   |
	+---------------------------+---------------------------+----------------------------+

- List agents to verify successful launch of the neutron agents

openstack network agent list
	+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
	| ID                                   | Agent Type         | Host       | Availability Zone | Alive | State | Binary                    |
	+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
	| f49a4b81-afd6-4b3d-b923-66c8f0517099 | Metadata agent     | controller | None              | True  | UP    | neutron-metadata-agent    |
	| 27eee952-a748-467b-bf71-941e89846a92 | Open vSwitch agent | controller | None              | True  | UP    | neutron-openvswitch-agent |
	| 08905043-5010-4b87-bba5-aedb1956e27a | Open vSwitch agent | compute1   | None              | True  | UP    | neutron-openvswitch-agent |
	| 830344ff-dc36-4956-84f4-067af667a0dc | L3 agent           | controller | nova              | True  | UP    | neutron-l3-agent          |
	| dd3644c9-1a3a-435a-9282-eb306b4b0391 | DHCP agent         | controller | nova              | True  | UP    | neutron-dhcp-agent        |
	+--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+

Self-Serivce Network 설정 및 router setting

1. https://docs.openstack.org/ko_KR/install-guide/launch-instance-networks-provider.html#launch-instance-networks-provider

 

프로바이더 네트워크 — Installation Guide 문서

프로바이더 네트워크 인스턴스를 구동하기 전에, 필요로 하는 가상 네트워크 인프라를 생성해야 합니다. 네트워킹 옵션 1에서, 인스턴스는 2계층 (브릿징/스위칭)을 통해 물리 네트워크 인프라

docs.openstack.org

<Controller Node>
openstack network create  --share --external \
  --provider-physical-network provider \
  --provider-network-type flat provider
	+---------------------------+--------------------------------------+
	| Field                     | Value                                |
	+---------------------------+--------------------------------------+
	| admin_state_up            | UP                                   |
	| availability_zone_hints   |                                      |
	| availability_zones        |                                      |
	| created_at                | 2024-04-19T12:05:14Z                 |
	| description               |                                      |
	| dns_domain                | None                                 |
	| id                        | 07c3fca2-0492-48c4-b628-e80f994eee97 |
	| ipv4_address_scope        | None                                 |
	| ipv6_address_scope        | None                                 |
	| is_default                | False                                |
	| is_vlan_transparent       | None                                 |
	| mtu                       | 1500                                 |
	| name                      | provider                             |
	| port_security_enabled     | True                                 |
	| project_id                | 9572e3bb200543b28fed398e871c0734     |
	| provider:network_type     | flat                                 |
	| provider:physical_network | provider                             |
	| provider:segmentation_id  | None                                 |
	| qos_policy_id             | None                                 |
	| revision_number           | 1                                    |
	| router:external           | External                             |
	| segments                  | None                                 |
	| shared                    | True                                 |
	| status                    | ACTIVE                               |
	| subnets                   |                                      |
	| tags                      |                                      |
	| updated_at                | 2024-04-19T12:05:14Z                 |
	+---------------------------+--------------------------------------+
	
openstack subnet create --network provider \
	--allocation-pool start=192.168.2.50,end=192.168.2.254 \
	--dns-nameserver 8.8.4.4 --gateway 192.168.2.1 \
	--subnet-range 192.168.2.0/24 provider
	+----------------------+--------------------------------------+
	| Field                | Value                                |
	+----------------------+--------------------------------------+
	| allocation_pools     | 192.168.2.50-192.168.2.254           |
	| cidr                 | 192.168.2.0/24                       |
	| created_at           | 2024-04-19T12:05:21Z                 |
	| description          |                                      |
	| dns_nameservers      | 8.8.4.4                              |
	| dns_publish_fixed_ip | None                                 |
	| enable_dhcp          | True                                 |
	| gateway_ip           | 192.168.2.1                          |
	| host_routes          |                                      |
	| id                   | 741e705e-97d9-4974-82d0-8db564dd4c95 |
	| ip_version           | 4                                    |
	| ipv6_address_mode    | None                                 |
	| ipv6_ra_mode         | None                                 |
	| name                 | provider                             |
	| network_id           | 07c3fca2-0492-48c4-b628-e80f994eee97 |
	| project_id           | 9572e3bb200543b28fed398e871c0734     |
	| revision_number      | 0                                    |
	| segment_id           | None                                 |
	| service_types        |                                      |
	| subnetpool_id        | None                                 |
	| tags                 |                                      |
	| updated_at           | 2024-04-19T12:05:21Z                 |
	+----------------------+--------------------------------------+

2. https://docs.openstack.org/ko_KR/install-guide/launch-instance-networks-selfservice.html

 

셀프 서비스 네트워크 — Installation Guide 문서

셀프 서비스 네트워크 네트워킹 옵션 2를 선택한 경우, 물리 네트워크 인프라를 NAT를 통해 접속하는 셀프 서비스 (사설) 프로젝트 네트워크를 생성 또한 가능합니다. 해당 네트워크는 IP 주소를

docs.openstack.org

openstack network create selfservice
	+---------------------------+--------------------------------------+
	| Field                     | Value                                |
	+---------------------------+--------------------------------------+
	| admin_state_up            | UP                                   |
	| availability_zone_hints   |                                      |
	| availability_zones        |                                      |
	| created_at                | 2024-04-19T11:58:11Z                 |
	| description               |                                      |
	| dns_domain                | None                                 |
	| id                        | a92b744b-19ef-40f6-91ad-8375ed5b3a15 |
	| ipv4_address_scope        | None                                 |
	| ipv6_address_scope        | None                                 |
	| is_default                | False                                |
	| is_vlan_transparent       | None                                 |
	| mtu                       | 1450                                 |
	| name                      | selfservice                          |
	| port_security_enabled     | True                                 |
	| project_id                | 9572e3bb200543b28fed398e871c0734     |
	| provider:network_type     | vxlan                                |
	| provider:physical_network | None                                 |
	| provider:segmentation_id  | 442                                  |
	| qos_policy_id             | None                                 |
	| revision_number           | 1                                    |
	| router:external           | Internal                             |
	| segments                  | None                                 |
	| shared                    | False                                |
	| status                    | ACTIVE                               |
	| subnets                   |                                      |
	| tags                      |                                      |
	| updated_at                | 2024-04-19T11:58:11Z                 |
	+---------------------------+--------------------------------------+

openstack subnet create --network selfservice \
	--dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
	--subnet-range 172.16.1.0/24 selfservice
	
openstack router create router
	+-------------------------+--------------------------------------+
	| Field                   | Value                                |
	+-------------------------+--------------------------------------+
	| admin_state_up          | UP                                   |
	| availability_zone_hints |                                      |
	| availability_zones      |                                      |
	| created_at              | 2024-04-19T11:59:09Z                 |
	| description             |                                      |
	| distributed             | False                                |
	| external_gateway_info   | null                                 |
	| flavor_id               | None                                 |
	| ha                      | False                                |
	| id                      | d0e75775-96d2-4c81-9679-1231e436d6ce |
	| name                    | router                               |
	| project_id              | 9572e3bb200543b28fed398e871c0734     |
	| revision_number         | 1                                    |
	| routes                  |                                      |
	| status                  | ACTIVE                               |
	| tags                    |                                      |
	| updated_at              | 2024-04-19T11:59:09Z                 |
	+-------------------------+--------------------------------------+
	
openstack router add subnet router selfservice
openstack router set router --external-gateway provider

ip netns
	qrouter-d0e75775-96d2-4c81-9679-1231e436d6ce (id: 2)
	qdhcp-a92b744b-19ef-40f6-91ad-8375ed5b3a15 (id: 1)
	qdhcp-81ab2f64-d613-47d2-9521-ed759dd71a53 (id: 0)

openstack port list --router router
	+--------------------------------------+------+-------------------+------------------------------------------------------------------------------+--------+
	| ID                                   | Name | MAC Address       | Fixed IP Addresses                                                           | Status |
	+--------------------------------------+------+-------------------+------------------------------------------------------------------------------+--------+
	| 62c9d14e-3bb8-46c0-a3e3-0d23f005994c |      | fa:16:3e:6c:4f:2a | ip_address='192.168.2.248', subnet_id='741e705e-97d9-4974-82d0-8db564dd4c95' | ACTIVE |
	| f441c913-b847-4555-bc65-548d615bcbb0 |      | fa:16:3e:60:b2:a3 | ip_address='172.16.1.1', subnet_id='72eaca4d-47fc-4815-a974-f843b8984269'    | ACTIVE |
	+--------------------------------------+------+-------------------+------------------------------------------------------------------------------+--------+
반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!