OpenStack学习笔记-8. Networking service安装

1.Controller节点安装neutron

1.1 安装前准备

1.1.1 数据库配置

创建一个neutron数据库,一个neutron用户,NEUTRON_DBPASS设置为自己需要的。

mysql
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';

1.1.2 导入管理员认证环境变量

. admin-openrc

1.1.3 创建neutron身份认证

1.创建neutron用户

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

2.将neutron赋予管理员权限

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

3.创建neutron服务条目

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

4.创建neutron 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 安装软件包

apt install neutron-server neutron-plugin-ml2 \
  neutron-linuxbridge-agent neutron-dhcp-agent \
  neutron-metadata-agent

1.3 修改 /etc/neutron/neutron.conf

1.配置数据库,NEUTRON_DBPASS替换成之前设置的

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

2.启用Modular Layer 2和RabbitMQ ,RABBIT_PASS改成之前设置的

[DEFAULT]
# ...
core_plugin = ml2
service_plugins =

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

3.配置身份认证,NEUTRON_PASS改成之前设置的

[DEFAULT]
# ...
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 = neutron
password = NEUTRON_PASS

4.配置如下内容使计算节点收到网络变更,NOVA_PASS替换成自己设置的

[DEFAULT]
# ...
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true

[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

1.4 修改/etc/neutron/plugins/ml2/ml2_conf.ini

要修改的内容如下

[ml2]
# ...
type_drivers = flat,vlan
[ml2]
# ...
tenant_network_types =
[ml2]
# ...
mechanism_drivers = linuxbridge
[ml2]
# ...
extension_drivers = port_security
[ml2_type_flat]
# ...
flat_networks = provider
[securitygroup]
# ...
enable_ipset = true

1.5 修改linuxbridge_agent.ini

绝对路径为:/etc/neutron/plugins/ml2/linuxbridge_agent.ini,把PROVIDER_INTERFACE_NAME替换成provider网卡的名称。

[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
[vxlan]
enable_vxlan = false
[securitygroup]
# ...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
local_ip = 管理网络网卡所在的ip

1.6修改/etc/neutron/dhcp_agent.ini

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

1.7 修改/etc/neutron/metadata_agent.ini

在这里设置METADATA_SECRET密码

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

1.8 修改/etc/nova/nova.conf

NEUTRON_PASSMETADATA_SECRET替换成自己设置的。

[neutron]
# ...
url = http://controller:9696
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

1.9 确认安装

1.迁移数据库

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

2.重启服务

service nova-api restart
service neutron-server restart
service neutron-linuxbridge-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agent restart

2.Compute节点安装neutron

2.1安装软件包

apt install neutron-linuxbridge-agent

2.2 修改配置文件

2.2.1 修改/etc/neutron/neutron.conf

RABBIT_PASSNEUTRON_PASS替换成之前设置的。

[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
[DEFAULT]
# ...
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 = neutron
password = NEUTRON_PASS

2.2.2 修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini

替换PROVIDER_INTERFACE_NAME为compute节点上provider网卡的名称。

[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
[vxlan]
enable_vxlan = false
[securitygroup]
# ...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
local_ip = 管理网络网卡所在的ip

2.2.3修改/etc/nova/nova.conf

NEUTRON_PASS替换成之前设置的。

[neutron]
# ...
url = http://controller:9696
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

2.3 重启服务

service nova-compute restart
service neutron-linuxbridge-agent restart

3.测试是否安装成功

执行如下命令,应该controller节点有三个agent,每个计算节点有一个agent。

root@ubuntu-ControllerNode:/home/ubuntu# openstack network agent list
+--------------------------------------+--------------------+-----------------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host                  | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+-----------------------+-------------------+-------+-------+---------------------------+
| 020bc708-0125-4aa1-ae3a-0dd938ac6722 | DHCP agent         | ubuntu-ControllerNode | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 0ffe4c63-6eda-4562-ba50-233938da768a | Linux bridge agent | ubuntu-ControllerNode | None              | :-)   | UP    | neutron-linuxbridge-agent |
| 8a61a57d-17f7-4cf6-9f13-5b9b9647c5fc | Metadata agent     | ubuntu-ControllerNode | None              | :-)   | UP    | neutron-metadata-agent    |
| bbfb7301-502d-4deb-9d1b-b41250a06a0c | Linux bridge agent | ubuntu-ComputeNode    | None              | :-)   | UP    | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+-----------------------+-------------------+-------+-------+---------------------------+