接手把手教你安裝OpenStack——Ocata安裝指南(上)
五、網絡服務
安裝並配置控制節點
1、前提條件
創建數據庫,與之前類似:
$ mysql -u root -p
MariaDB [(none)] CREATE DATABASE neutron;
MariaDB [(none)]> GRANT ALL PRIVILEGESON neutron.* TO 'neutron'@'localhost'
IDENTIFIED BY 'NEUTRON_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON neutron.* TO 'neutron'@'%'
IDENTIFIED BY 'NEUTRON_DBPASS';
獲取admin權限:
$ . admin-openrc
創建服務認證:
創建neutron用戶
$ openstack user create --domain default --password-prompt neutron
給neutron添加admin角色:
$ openstack role add --project service --user neutron admin
創建neutron服務實體:
$ openstack service create --name neutron
--deion "OpenStack Networking" network
創建網絡服務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
2、配置網絡選項
選項1:部署一個最簡單的網絡,僅支持實例和公共網絡的連接。
選項2:在選項1的基礎上,增加了3層服務,支持實例連接到私有網絡。
這裏我們選擇選項2,選項2的部署包括選項1。
在控制節點上進行以下操作:
安裝組件
# yum install openstack-neutron openstack-neutron-ml2
openstack-neutron-linuxbridge ebtables
配置服務器組件
編輯/etc/neutron/neutron.conf文件,並完成以下配置:
在[database]選項中,配置數據庫連接:
[database]
# ...
connection=mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
替換掉NEUTRON_DBPASS密碼。註釋掉或者刪除[database]其他參數。
在[DEFAULT]選項中,開啓ML2插件,路由服務以及overlapping IP地址,配置消息隊列連接:
[DEFAULT]
# ...
core_plugin=ml2
service_plugins=router
allow_overlapping_ips=true
transport_url=rabbit://openstack:RABBIT_PASS@controller
替換掉RABBIT_PASS
在[DEFAULT]選項和[keystone_authtoken]選項中,配置認證服務連接
[DEFAULT]
# ...
auth_strategy=keystone
[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=NEUTRON_PASS
替換掉NEUTRON_PASS
註釋或刪除[keystone_authtoken]中的其他選項。
在[DEFAULT]和[nova]選項中,配置網絡來通知計算機網絡拓撲的變換:
[DEFAULT]
# ...
notify_nova_on_port_status_changes=true
notify_nova_on_port_data_changes=true
[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=NOVA_PASS
替換掉NOVA_PASS
在[oslo_concurrency]選項中,配置鎖定地址:
[oslo_concurrency]
# ...
lock_path=/var/lib/neutron/tmp
配置ML2
編輯/etc/neutron/plugins/ml2/ml2_conf.ini文件,在ml2選項中,開啓flat,VLAN,以及VXLAN網絡:
[ml2]
# ...
type_drivers=flat,vlan,vxlan
開啓VXLAN私有網絡:
[ml2]
# ...
tenant_network_types=vxlan
開啓橋接和2層機制
[ml2]
# ...
mechanism_drivers=linuxbridge,l2population
Linux橋接代理僅支持VXLAN覆蓋網絡,開啓端口安全擴展驅動:
[ml2]
# ...
extension_drivers=port_security
在選項中;配置公共虛擬網絡作爲扁平網絡:
[ml2_type_flat]
# ...
flat_networks=provider
爲私有網絡配置VXLAN網絡識別範圍
[ml2_type_vxlan]
# ...
vni_ranges=1:1000
在[securitygroup]選項中,開啓ipset增加安全組規則的高效性;
[securitygroup]
# ...
enable_ipset=true
配置Linux 橋接代理
編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
在[linux_bridge]選項中,映射公共虛擬網絡到公共物理網絡接口;
[linux_bridge]
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME
將PROVIDER_INTERFACE_NAME替換爲公共網絡網卡名字
在選項中,開始VXLAN覆蓋網絡,配置物理網絡的IP地址,啓用L2。
[vxlan]
enable_vxlan=true
local_ip=OVERLAY_INTERFACE_IP_ADDRESS
l2_population=true
將OVERLAY_INTERFACE_IP_ADDRESS替換爲管理網絡IP地址,即控制節點IP。(沒有配置管理網絡)
在[securitygroup]選項中,啓用安全組並配置Linux橋接iptables防火牆驅動;
[securitygroup]
# ...
enable_security_group=true
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置3層代理
編輯/etc/neutron/l3_agent.ini文件
在[DEFAULT]選項中,配置Linuxbridge驅動接口
[DEFAULT]
# ...
interface_driver=linuxbridge
配置DHCP代理
編輯/etc/neutron/dhcp_agent.ini文件
在[DEFAULT]選項中,配置inuxbridge驅動接口,DHCP驅動並啓用隔離元數據,這樣在公共網絡上的實例就可以通過網絡來訪問元數據
[DEFAULT]
# ...
interface_driver=linuxbridge
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=true
配置元數據代理
在[DEFAULT]選項中,配置元數據主機和共享密碼
[DEFAULT]
# ...
nova_metadata_ip=controller
metadata_proxy_shared_secret=METADATA_SECRET
替換METADATA_SECRET爲合適的密碼
配置計算服務來使用網絡
編輯/etc/nova/nova.conf文件
在[neutron]選項中,配置連接參數,啓用元數據代理,配置密碼:
[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=NEUTRON_PASS
service_metadata_proxy=true
metadata_proxy_shared_secret=METADATA_SECRET
替換NEUTRON_PASS,METADATA_SECRET
3、完成安裝
建立符號鏈接
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
上傳數據庫
# 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
重啓計算API服務
# systemctl restart openstack-nova-api.service
啓動網絡服務並配置開機啓動
# systemctl enable neutron-server.service
neutron-linuxbridge-agent.service neutron-dhcp-agent.service
neutron-metadata-agent.service
# systemctl start neutron-server.service
neutron-linuxbridge-agent.service neutron-dhcp-agent.service
neutron-metadata-agent.service
對於網絡選項2,也要啓用3層服務
# systemctl enable neutron-l3-agent.service
# systemctl start neutron-l3-agent.service
安裝並配置計算節點1、安裝組件
# yum install openstack-neutron-linuxbridge ebtables ipset
配置公共組件
編輯/etc/neutron/neutron.conf文件
在[database]中,註釋掉任何的連接,因爲計算節點不直接連接數據庫。
在[DEFAULT],配置消息隊列連接
[DEFAULT]
# ...
transport_url=rabbit://openstack:RABBIT_PASS@controller
替換RABBIT_PASS
在[DEFAULT]和[keystone_authtoken]選項中
[DEFAULT]
# ...
auth_strategy=keystone
[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=NEUTRON_PASS
替換NEUTRON_PASS密碼
在[oslo_concurrency]選項中,配置鎖定路徑
[oslo_concurrency]
# ...
lock_path=/var/lib/neutron/tmp
在計算節點上配置網絡選項2
配置Linux橋接代理
編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
在[linux_bridge]部分,映射公共虛擬網絡到公共物理網絡接口:
[linux_bridge]
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME
把PROVIDER_INTERFACE_NAME替換爲物理網卡名字。
在[vxlan]部分,啓用VXLAN覆蓋網絡,配置物理網絡IP地址,啓用l2_population:
[vxlan]
enable_vxlan=true
local_ip=OVERLAY_INTERFACE_IP_ADDRESS
l2_population=true
在[securitygroup]部分,啓用安全組並配置Linux橋接iptables防火牆驅動:
[securitygroup]
# ...
enable_security_group=true
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
爲計算節點配置網絡服務:
編輯/etc/nova/nova.conf文件
在[neutron]部分,配置連接參數;
[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=NEUTRON_PASS
替換NEUTRON_PASS
完成安裝
重啓計算服務:
# systemctl restart openstack-nova-compute.service
啓動Linux橋接代理並配置開機啓動:
# systemctl enable neutron-linuxbridge-agent.service
# systemctl start neutron-linuxbridge-agent.service
驗證操作
獲取admin權限
$ . admin-openrc
列出加載的擴展來驗證neutron-server是否成功運行:
$ openstack extension list --network
驗證網絡:
在控制節點上,列出所有的代理:
$ openstack network agent list
輸出應該是4個控制節點上的代理和一個計算節點上的代理。
六、Dashboard
安裝和配置
驗證操作
安裝並配置組件
安裝相關包
# yum install openstack-dashboard
編輯/etc/openstack-dashboard/local_settings文件,修改以下配置
注:以下的配置大部分在原配置文件中都包括,修改即可,不要直接添加。
配置dashboard在控制節點上使用OpenStack服務:
OPENSTACK_HOST="controller"
允許主機連接到dashboard:
ALLOWED_HOSTS=['*,]
*表示允許所有主機連接dashboard,在生產環境中不建議這樣做。
配置memcached存儲服務:
SESSION_ENGINE='django.contrib.sessions.backends.cache'
CACHES={
'default':{
'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION':'controller:11211',
}
}
啓用認證API版本3
OPENSTACK_KEYSTONE_URL="http://%s:5000/v3"%OPENSTACK_HOST
啓用域支持:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True
配置API版本:
OPENSTACK_API_VERSIONS={
"identity":3,
"image":2,
"volume":2,
}
配置default作爲用戶通過dashboard創建的默認的域:
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="default"
配置user作爲用戶創建的默認的角色:
OPENSTACK_KEYSTONE_DEFAULT_ROLE="user"
可選的,可以配置時區:
TIME_ZONE="TIME_ZONE"
替換掉TIME_ZONE,這裏替換爲:Asia/chongqing
完成安裝:
重啓web服務器以及會話存儲服務:
# systemctl restart httpd.service memcached.service
驗證操作:
使用瀏覽器連接http://controller/dashboard,如果無法連接,那麼就將controller替換爲IP地址。如下圖;
使用admin或者demo用戶和default域認證,如下圖,登錄成功: