接手把手教你安裝OpenStack——Ocata安裝指南(上)mysql
5、網絡服務linux
安裝並配置控制節點web
一、前提條件sql
建立數據庫,與以前相似:數據庫
$ mysql -u root -pdjango
MariaDB [(none)] CREATE DATABASE neutron;api
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
二、配置網絡選項
選項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
三、完成安裝
創建符號連接
# 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
安裝並配置計算節點一、安裝組件
# 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個控制節點上的代理和一個計算節點上的代理。
6、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,
"p_w_picpath":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域認證,以下圖,登陸成功: