五、Networking 服務mysql
5.一、安裝並配置控制節點linux
5.1.一、建立數據庫,服務憑證和API端點sql
5.1.1.一、完成下面的步驟以建立數據庫數據庫
用數據庫鏈接客戶端以 root 用戶鏈接到數據庫服務器:api
$ mysql -u root -p安全
建立``neutron`` 數據庫:服務器
CREATE DATABASE neutron;網絡
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'P@ssw0rd';app
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'P@ssw0rd';dom
5.1.1.二、得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
$ . admin-openrc
5.1.1.三、要建立服務證書,完成這些步驟:
建立``neutron``用戶:
$ openstack user create --domain default --password-prompt neutron
設置密碼:P@ssw0rd
添加``admin`` 角色到``neutron`` 用戶:
$ openstack role add --project service --user neutron admin
建立``neutron``服務實體:
$ openstack service create --name neutron --description "OpenStack Networking" network
5.1.1.四、建立網絡服務API端點:
$ openstack endpoint create --region RegionOne network public http://controller:9696
$ openstack endpoint create --region RegionOne network internal http://controller:9696
$ openstack endpoint create --region RegionOne network admin http://controller:9696
控制節點防火牆開放端口:9696
# firewall-cmd --permanent --add-port=9696/tcp
# firewall-cmd --reload
確認端口開放成功
# firewall-cmd --list-all
5.1.二、配置網絡選項
本次選擇【私有網絡】進行網絡配置:
5.1.2.一、安裝組件
# yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
5.1.2.二、配置服務組件
編輯vi /etc/neutron/neutron.conf文件並完成以下操做:
在``[DEFAULT]``部分
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
rpc_backend = rabbit
auth_strategy = keystone
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
在 [database] 部分,配置數據庫訪問:
connection = mysql+pymysql://neutron:P@ssw0rd@controller/neutron
在「[oslo_messaging_rabbit]」部分,配置 「RabbitMQ」 消息隊列的鏈接:
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = P@ssw0rd
在「[keystone_authtoken]」 部分,配置認證服務訪問:
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = P@ssw0rd
在``[nova]``部分,配置網絡服務來通知計算節點的網絡拓撲變化:
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = P@ssw0rd
在 [oslo_concurrency] 部分,配置鎖路徑:
lock_path = /var/lib/neutron/tmp
5.1.2.三、配置 Modular Layer 2 (ML2) 插件
編輯vi /etc/neutron/plugins/ml2/ml2_conf.ini文件並完成如下操做:
在``[ml2]``部分
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
在``[ml2_type_flat]``部分,配置公共虛擬網絡爲flat網絡
flat_networks = provider
在``[ml2_type_vxlan]``部分,爲私有網絡配置VXLAN網絡識別的網絡範圍:
vni_ranges = 1:1000
在 ``[securitygroup]``部分,啓用 ipset 增長安全組規則的高效性:
enable_ipset = True
5.1.2.四、配置Linuxbridge代理
Linux bridge代理爲實例創建layer-2虛擬網絡而且處理安全組規則。
編輯vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini文件而且完成如下操做:
在``[linux_bridge]``部分,將公共虛擬網絡和公共物理網絡接口對應起來:
physical_interface_mappings = provider:ens34
註解:網卡名根據實際狀況填寫
在``[vxlan]``部分,啓用VXLAN覆蓋網絡,配置覆蓋網絡的物理網絡接口的IP地址,啓用layer-2 population:
enable_vxlan = True
local_ip = 111.111.111.201
l2_population = True
在 ``[securitygroup]``部分,啓用安全組並配置 Linuxbridge iptables firewall driver:
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
5.1.2.五、配置layer-3代理
Layer-3代理爲私有虛擬網絡提供路由和NAT服務
編輯vi /etc/neutron/l3_agent.ini文件並完成如下操做:
在``[DEFAULT]``部分,配置Linuxbridge接口驅動和外部網絡網橋:
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =
註解:``external_network_bridge``選項特地設置成缺省值,這樣就能夠在一個代理上容許多種外部網絡
5.1.2.六、配置DHCP代理
The DHCP agent provides DHCP services for virtual networks.
編輯vi /etc/neutron/dhcp_agent.ini文件並完成下面的操做:
在``[DEFAULT]``部分,配置Linuxbridge驅動接口,DHCP驅動並啓用隔離元數據,這樣在公共網絡上的實例就能夠經過網絡來訪問元數據
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True
5.1.三、配置元數據代理
The :term:`metadata agent <Metadata agent>`負責提供配置信息,例如:訪問實例的憑證
編輯vi /etc/neutron/metadata_agent.ini文件並完成如下操做:
在``[DEFAULT]`` 部分,配置元數據主機以及共享密碼:
nova_metadata_ip = controller
metadata_proxy_shared_secret = P@ssw0rd
5.1.四、爲計算節點配置網絡服務
編輯vi /etc/nova/nova.conf文件並完成如下操做:
在``[neutron]``部分,配置訪問參數,啓用元數據代理並設置密碼:
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = P@ssw0rd
service_metadata_proxy = True
metadata_proxy_shared_secret = P@ssw0rd
5.1.五、完成安裝
5.1.5.一、網絡服務初始化腳本須要一個超連接 /etc/neutron/plugin.ini``指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini``。
若是超連接不存在,使用下面的命令建立它:
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
5.1.5.二、同步數據庫:
# 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
註解:數據庫的同步發生在 Networking 以後,由於腳本須要完成服務器和插件的配置文件。本步驟信息較多,只要無報錯便可。
5.1.5.三、重啓計算API 服務:
# systemctl restart openstack-nova-api
5.1.5.四、當系統啓動時,啓動 Networking 服務並配置它啓動。
對於兩種網絡選項:
# systemctl enable neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
# systemctl start neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
# systemctl status neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
對於網絡選項2,一樣啓用layer-3服務並設置其隨系統自啓動
# systemctl enable neutron-l3-agent
# systemctl start neutron-l3-agent
# systemctl status neutron-l3-agent
5.二、安裝和配置計算節點
5.2.一、安裝組件
# yum install -y openstack-neutron-linuxbridge ebtables ipset
5.2.二、配置通用組件
Networking 通用組件的配置包括認證機制、消息隊列和插件。
註解:默認配置文件在各發行版本中可能不一樣。你可能須要添加這些部分,選項而不是修改已經存在的部分和選項。另外,在配置片斷中的省略號(...)表示默認的配置選項你應該保留。
編輯vi /etc/neutron/neutron.conf文件並完成以下操做:
在``[database]`` 部分,註釋全部``connection`` 項,由於計算節點不直接訪問數據庫。
在「[DEFAULT]」部分
rpc_backend = rabbit
auth_strategy = keystone
在「[oslo_messaging_rabbit]」部分,配置 「RabbitMQ」 消息隊列的鏈接:
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = P@ssw0rd
在「[keystone_authtoken]」部分,配置認證服務訪問:
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = P@ssw0rd
註解:在 [keystone_authtoken] 中註釋或者刪除其餘選項。
在 [oslo_concurrency] 部分,配置鎖路徑:
lock_path = /var/lib/neutron/tmp
5.2.三、配置網絡選項
本次選擇【私有網絡】進行網絡配置:
5.2.3.一、配置Linuxbridge代理
Linuxbridge代理爲實例創建layer-2虛擬網絡而且處理安全組規則。
編輯vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini文件而且完成如下操做:
在``[linux_bridge]``部分,將公共虛擬網絡和公共物理網絡接口對應起來:
physical_interface_mappings = provider:ens34
在``[vxlan]``部分,啓用VXLAN覆蓋網絡,配置覆蓋網絡的物理網絡接口的IP地址,啓用layer-2 population:
enable_vxlan = True
local_ip = 111.111.111.202
l2_population = True
在 ``[securitygroup]``部分,啓用安全組並配置 Linuxbridge iptables firewall driver:
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
5.2.四、爲計算節點配置網絡服務
編輯vi /etc/nova/nova.conf文件並完成下面的操做:
在``[neutron]`` 部分,配置訪問參數:
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = P@ssw0rd
5.2.五、完成安裝
重啓計算服務:
# systemctl restart openstack-nova-compute
啓動Linuxbridge代理並配置它開機自啓動:
# systemctl enable neutron-linuxbridge-agent
# systemctl start neutron-linuxbridge-agent
# systemctl status neutron-linuxbridge-agent
5.三、驗證操做
在控制節點上執行這些命令。
得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
$ . admin-openrc
列出加載的擴展來驗證``neutron-server``進程是否正常啓動:
$ neutron ext-list
列出代理以驗證啓動 neutron 代理是否成功:
$ neutron agent-list
輸出結果應該包括控制節點上的四個代理和每一個計算節點上的一個代理,本次測試含一個計算節點,共5個代理