Openstack13--网络服务(Neutron)安装

在控制节点和计算节点安装

计算节点控制节点同时操作

将网卡设置为混杂模式 

将外网网卡“ens34”设置成混杂模式 

设置开机后混杂模式自动生效

ifconfig ens34 promisc 
vi /etc/profile

 按g 来到文件末尾 追加

ifconfig ens34 promisc

 加载桥接模式防火墙模块

vi /etc/sysctl.conf

文件末尾追加

net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

加载“br_netfilter”模块
检查模块加载情况

modprobe br_netfilter
sysctl -p

会输出刚刚在sysctl.conf文件里追加的那两行,表明“br_netfilter”模块已经加载成功

控制节点

安装Neutron软件包 

yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge

“openstack-neutron”:“neutron-server”模块的包

 “openstack-neutron-ml2”:ML2插件的包

 “openstack-neutron-linuxbridge”:网桥和网络提供者相关的软件包 

创建Neutron的数据库并授权 

进入MariaDB数据库 

mysql -uroot -p000000

 新建“neutron”数据库
给用户授权使用新建数据库

CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '000000';

 quit退出

修改Neutron配置文件

备份配置文件
去掉所有注释和空行,生成新的配置文件 

cp /etc/neutron/neutron.conf /etc/neutron/neutron.bak
grep -Ev '^$|#' /etc/neutron/neutron.bak>/etc/neutron/neutron.conf
vi /etc/neutron/neutron.conf

修改[database]部分,实现与数据库连接

[database]

connection = mysql+pymysql://neutron:000000@controller/neutron 

修改“[DEFAULT]”与“[keystone_authtoken]”部分,实现与Keystone交互。

[DEFAULT]

auth_strategy = keystone

[keystone_authtoken]

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = project

username = neutron

password = 000000

修改“[DEFAULT]”部分,实现与消息队列交互及核心插件等。

[DEFAULT]

core_plugin = ml2

service_plugins = transport_url = rabbit://rabbitmq:000000@controller

auth_strategy = keystone

notify_nova_on_port_status_changes = true

notify_nova_on_port_data_changes = true

修改“[oslo_concurrency]”,配置锁路径。

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

增加“[nova]”部分,实现与Nova交互。 [nova] auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default project_name = project username = nova password = 000000 region_name = RegionOne server_proxyclient_address = 192.168.10.10

配置文件奉上 

[DEFAULT]
auth_strategy = keystone
core_plugin = ml2
service_plugins =
transport_url = rabbit://rabbitmq:000000@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true

[cors]
[database]
connection = mysql+pymysql://neutron:000000@controller/neutron
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = neutron
password = 000000

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[privsep]
[ssl]
[nova]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = project
username = nova
password = 000000
region_name = RegionOne
server_proxyclient_address = 192.168.10.10

 修改ML2插件配置文件

备份配置文件
去掉所有注释和空行,生成新的配置文件 

cp /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugins/ml2/ml2_conf.bak
grep -Ev '^$|#' /etc/neutron/plugins/ml2/ml2_conf.bak>/etc/neutron/plugins/ml2/ml2_conf.ini
vi /etc/neutron/plugins/ml2/ml2_conf.ini

文件奉上

[DEFAULT]
[ml2]
type_drivers = flat
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[securitygroup]
enable_ipset = true

 启用ML2插件

只有在“/etc/neutron/”下的插件才能生效,因此将“ml2_conf.ini”映射为“/etc/neutron/”下的“plugin.ini”文件,使ML2插件启用 

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

 修改网桥代理配置文件

 备份配置文件
去掉所有注释和空行,生成新的配置文件

cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.bak
grep -Ev '^$|#' /etc/neutron/plugins/ml2/linuxbridge_agent.bak>/etc/neutron/plugins/ml2/linuxbridge_agent.ini
 vi  /etc/neutron/plugins/ml2/linuxbridge_agent.ini

 文件奉上

第三行 provider: 后接外网的网卡

[DEFAULT]
[linux_bridge]
physical_interface_mappings = provider:ens34
[vxlan]
enable_vxlan = false
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

修改DHCP代理配置文件

将配置文件去掉注释和空行 

cp /etc/neutron/dhcp_agent.ini /etc/neutron/dhcp_agent.bak
grep -Ev '^$|#' /etc/neutron/dhcp_agent.bak> /etc/neutron/dhcp_agent.ini
vi /etc/neutron/dhcp_agent.ini

文件内容附上

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

修改元数据代理配置文件 

vi /etc/neutron/metadata_agent.ini

 在第一行的 [DEFAULT] 下写入

[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = METADATA_SECRET

云主机运行在计算节点上,在其运行过程中需要和控制节点的“nova-api”模块交互,让Nova为云主机提供元数据。这个交互需要通过Neutron的“neutron-metadata-agent”进行。“neutron-metadata-agent”和“nova-api”一样运行在控制节点上,云主机先将元数据请求发送给“neutron-metadata-agent”,“neutron-metadata-agent”再将请求转发给“nova-api” 

修改Nova配置文件

Nova处于整个云计算平台系统的核心位置,需要和各个组件交互,因此Nova配置文件中需要指明如何与Neutron进行交互 

vi /etc/nova/nova.conf

 在49行的[neutron]模块下写入

auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = project
username = neutron
password = 000000
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET

同步数据库

su neutron -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade heads"  

 创建Neutron用户并分配角色

 导入环境变量模拟登录
在OpenStack云计算平台中创建用户“neutron”
给用户“neutron”分配“admin”角色

 . admin-login
openstack user create --domain default --password 000000 neutron
openstack role add --project project --user neutron admin

 创建Neutron服务及端点

创建名“neutron”、类型“network”的服务

创建公众用户访问的服务端点
创建内部组件访问的服务端点
创建Admin用户访问端点 

openstack service create --name neutron network
openstack endpoint create --region RegionOne neutron public http://controller:9696
openstack endpoint create --region RegionOne neutron internal http://controller:9696
openstack endpoint create --region RegionOne neutron admin http://controller:9696

 

 

 启动Neutron服务

由于修改了Nova的配置文件,因此启动Neutron服务前,还需要重启Nova服务
重启Nova服务
启动Neutron服务:启用Neutron服务组件、网桥代理、DHCP代理、元数据代理 

systemctl restart openstack-nova-api
systemctl start neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent 
systemctl enable neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent 

 检测控制节点的Neutron服务

由于Neutron服务会占用9696端口,通过查看这个端口是否启用,可以判断Neutron服务是否已经运行
检测服务端点 

netstat -tnlup|grep 9696
curl http://controller:9696

计算节点 

安装Neutron软件包 

计算节点安装“openstack-neutron-linuxbridge”软件包,它包括网桥和网络提供者的相关软件 

yum -y install openstack-neutron-linuxbridge

修改Neutron配置文件 

 将配置文件去掉注释和空行

cp /etc/neutron/neutron.conf /etc/neutron/neutron.bak
grep -Ev '^$|#' /etc/neutron/neutron.bak>/etc/neutron/neutron.conf
vi /etc/neutron/neutron.conf

 修改“[keystone_authtoken]”部分,实现与Keystone交互。

[keystone_authtoken]

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = project

username = neutron

password = 000000

修改[DEFAULT]和[oslo_concurrency]配置消息队列和锁路径。

[DEFAULT]

transport_url = rabbit://rabbitmq:000000@controller:5672

auth_strategy = keystone

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

 文件内容奉上

[DEFAULT]
transport_url = rabbit://rabbitmq:000000@controller:5672
auth_strategy = keystone

[cors]
[database]
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = project
username = neutron
password = 000000

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[privsep]
[ssl]

 修改网桥代理配置文件

vi  /etc/neutron/plugins/ml2/linuxbridge_agent.ini

直接在 [DEFAULT] 下写入,其中   provider:ens34  对应你的外网网卡

[DEFAULT]
[linux_bridge]
physical_interface_mappings = provider:ens34          
[vxlan]
enable_vxlan = false
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 修改Nova配置文件

vi /etc/nova/nova.conf

 在[DEFAULT]模块下追加

vif_plugging_is_fatal = false
vif_plugging_timeout = 0

 

 在第50行处 [neutron] 模块下写入

auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = project
username = neutron
password = 000000

 启动计算节点Neutron服务

重启计算节点的Nova服务
启动计算节点的Neutron网桥代理服务 

systemctl restart openstack-nova-compute
systemctl start neutron-linuxbridge-agent  
systemctl enable neutron-linuxbridge-agent

 验证Neutron服务

回到控制节点

导入环境变量模拟登录
查看网络代理服务列表 

. admin-login
openstack network agent list

在结果中,如果能看到以上4行数据,“Alive”列均为笑脸符号“:-)”,“State”列均为开启状态“UP”,那么说明Neutron的代理运行状况正常 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值