openstack安裝(九)網絡服務的安裝--控制節點

說明:網絡服務的組件特別多,導致網絡服務的安裝特別靈活,每一個都有一個單獨的配置文件,網絡有4-5個配置文件

(1)創庫和授權

-- mysql -u root -pxxxxxx


CREATE DATABASE neutron;

GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
  IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
  IDENTIFIED BY 'NEUTRON_DBPASS';

(2)創建服務證書

# (1)創建``neutron``用戶

openstack user create --domain default --password NEUTRON_ PASS neutron

# (2)添加``admin`` 角色到``neutron`` 用戶

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

# (3)創建``neutron``服務實體

openstack service create --name neutron \
  --description "OpenStack Networking" network

# (4)創建網絡服務API端點-->在keystone上創建服務和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

openstack‘底層‘也用到了iptables

(3)openstack網絡的組件

neutron-server'969'         接收和響應外部'網絡API請求'-->類似'nova-api'

neutron-linuxbridge-agent: '否則創建橋接網卡';虛機啓動要連網,用bridge或nat模式,需要'有人幫助創建橋接網卡'

neutron-dhcp-agent:        '默認-->爲雲主機分配ip';後續也可以固定

neutron-metadata-agent     '配置nova-metadata-api'實現虛擬機的'定製操作'

定製操作:雖然是同一個模板克隆的虛機,'可以讓其主機名,ip不同,免祕鑰登陸'

################

L3-agent                   '實現三層網絡(網絡層-VXLAN)'

網絡選項1:公共網絡           '二層網絡'

網絡選項2:私有網絡           '三層網絡'

​
'開源社區'--->當做社區和新聞來學習

(4)公共網絡,先使用兩層網絡

編輯  '/etc/neutron/neutron.conf' 文件並完成如下操作

###############(1)  在 [database] 部分,配置數據庫訪問:

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



###############(2)   在[DEFAULT]部分,啓用ML2插件並禁用其他插件

[DEFAULT]
...
core_plugin = ml2
service_plugins =

由於使用'公有網絡'-->二層,所以要'開啓這個核心插件';並且要對該插件配置文件進行配置

'service_plugins  服務插件置爲空('禁用');只有三層網絡的時候開啓時,要擴展一些功能,纔會開啓'


###############(3) 在 "[DEFAULT]" 和 "[oslo_messaging_rabbit]"部分,配置 "RabbitMQ" 消息隊列的連接

[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = xxxxxxxx

###############(4)在 "[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

###############(5  )在"[DEFAULT]"和"[nova]"部分,配置網絡服務來通知計算節點的網絡拓撲變化:

[DEFAULT]
...
notify_nova_on_port_status_changes = True
'當nova的網絡端口改變,通知neutrn'
場景:'如果把雲主機關了,則應該告訴neutrn,把網絡端口關了'
notify_nova_on_port_data_changes = True
'當我有數據轉發時,通知neutrn幫我轉發下數據'

[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和neutrn相互調用';場景:'如果要刪除虛擬機的網絡,會查詢nova是否在使用,如果使用則無法刪除'

'netrun和nova相互配置'

(5)配置 Modular Layer 2 (ML2) 插件

'ML2插件'使用Linuxbridge機制來'爲實例創建layer-2'虛擬網絡基礎設施

編輯 "/etc/neutron/plugins/ml2/ml2_conf.ini" 文件並完成以下操作

##########(1)  在``[ml2]``部分,啓用flat和VLAN網絡:

[ml2]
...
type_drivers = flat,vlan

'flat-->虛擬機和宿主機處於同一個平面,就是橋接網速';'別名'

##########(2)  在"[ml2]"部分,禁用私有網絡'因爲只有三層網絡纔有租戶的概念'

[ml2]
...
tenant_network_types =

##########(3)  在"[ml2]"部分,啓用Linuxbridge機制'虛擬機網絡的底層機制'

[ml2]
...
mechanism_drivers = linuxbridge
底層的'虛擬網絡'的'實現機制'
其他方式:'open vswitch';'centos原生就支持linuxbridge,但是功能沒有switch豐富'

##########(4)   在"[ml2]" 部分,啓用端口安全擴展驅動-->'類似安全組'

[ml2]
...
extension_drivers = port_security

##########(5)   在"[ml2_type_flat]"部分,配置公共虛擬網絡爲flat網絡

[ml2_type_flat]
...
flat_networks = provider

'僅僅是起一個網絡的名字'

'注意':這裏如果修改後面也需要修改!

##########(6)   在 "[securitygroup]"部分,啓用 ipset 增加安全組規則的高效性

[securitygroup]
...
enable_ipset = True

(6)配置Linuxbridge代理

說明: 'Linuxbridge是真正創建橋接網卡的'

################

編輯 "/etc/neutron/plugins/ml2/linuxbridge_agent.ini"文件並且完成以下操作

在``[linux_bridge]``部分,將公共虛擬網絡和公共物理網絡接口對應起來:

[linux_bridge]
'網絡的名字-->provider;PROVIDER_INTERFACE_NAME是實際的網卡名字-->這裏是eth0'

physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME

'創建橋接網卡的時候,基於哪個物理網卡創建橋接網卡'

################

在"[vxlan]"部分,禁止VXLAN覆蓋網絡:'二層網絡禁止'

[vxlan]
enable_vxlan = False

################

在 "[securitygroup]"部分,啓用安全組並配置 Linuxbridge iptables firewall driver

[securitygroup]
...
enable_security_group = True
'python包的關於防火牆的方法'
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

(7) 配置DHCP代理

編輯 '/etc/neutron/dhcp_agent.ini'文件並完成下面的操作

在'[DEFAULT]'部分,配置Linuxbridge驅動接口,DHCP驅動並啓用隔離元數據,這樣在公共網絡上的實例就可以通過網絡來訪問元數據

'根據dhcp分配ip'

[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True

說明:到這裏爲止共有網絡已經配置ok了!

(8)通用配置:配置元數據代理

編輯 "/etc/neutron/metadata_agent.ini" 文件並完成以下操作:

在"[DEFAULT]" 部分,配置元數據主機以及共享密碼:

[DEFAULT]
...
nova_metadata_ip = controller
metadata_proxy_shared_secret = METADATA_SECRET

控制節點配置網絡服務

中文翻譯文檔有坑:'也是在controller節點上執行的'

編輯``/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 agent-list

'啓動比較慢';'自動化腳本設置-->40s';正常:'三個微笑';'M版本neutron沒有納入openst管理'
[root@controller ~]# neutron agent-list
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host       | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| 19fbb42a-3fca-4124-9f01-391ff0aa8645 | DHCP agent         | controller | nova              | :-)   | True           | neutron-dhcp-agent        |
| 35965192-d5b6-4c8c-a56a-c1d5d45fcf52 | Metadata agent     | controller |                   | :-)   | True           | neutron-metadata-agent    |
| e9d7d6a9-a89b-4939-854e-2901808714ea | Linux bridge agent | controller |                   | :-)   | True           | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章