详细步骤
笔记链接:http://note.youdao.com/noteshare?id=985cb724a58969ca959084e582e3bcfa
六、neutron安装和配置
1、neutron安装和配置(controller0)
★该项的所有操作步骤需要使用root用户进行
①创建数据库并授权
#mysql -uroot -popenstack
mysql> CREATE DATABASE neutron;
mysql> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@‘localhost’ IDENTIFIED BY ‘NEUTRON_DBPASS’;
mysql> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@’%’ IDENTIFIED BY ‘NEUTRON_DBPASS’;
[root@controller0 ~]# mysql -uneutron -pNEUTRON_DBPASS -e “show databases;”
②配置keystone用户
a. 配置keystone用户并授权
[root@controller0 ~]# source /root/admin-openrc.sh
[root@controller0 ~]# keystone user-list
创建neutron用户
[root@controller0 ~]# keystone user-create --name neutron --pass NEUTRON_PASS
连接admin角色和neutron用户
[root@controller0 ~]# keystone user-role-add --user neutron --tenant service --role admin
[root@controller0 ~]# keystone user-role-list --user neutron --tenant service
b. 配置service并注册endpoint
创建neutron服务实体
[root@controller0 ~]# keystone service-create --name neutron --type network --description “Openstack Networking”
查询keystonre服务列表
[root@controller0 ~]# keystone service-list
创建网络服务的api端口
[root@controller0~]#keystone endpoint-create --service cc2907ed76204d77b9698103043f132b --publicurl
http://controller0:9696 --adminurl http://controller0:9696 --internalurl http://controller0:9696 --region regionOne
蓝色部分ID是上条命令执行结果显示的ID
③安装neutron所需的软件包
[root@controller0 ~]# yum -y install openstack-neutron openstack-neutron-ml2 python-neutronclient
④配置neutron,包括:数据库连接,keystone认证,rabbitmq,拓扑状态和插件的配置
a. 配置数据库连接
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf databaseconnection mysql://neutron:NEUTRON_DBPASS@controller0/neutron
[root@controller0 ~]# cat /etc/neutron/neutron.conf | grep mysql
b. 配置keystone认证
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller0:5000/v2.0
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken identity_uri http://controller0:35357
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_tenant_name service
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_user neutron
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_password NEUTRON_PASS
[root@controller0 ~]# cat /etc/neutron/neutron.conf | grep NEUTRON_PASS
c. 配置rabbitmq连接
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend neutron.openstack.common.rpc.impl_kombu
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_host controller0
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_port 5672
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_userid neutron
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_password NEUTRON_MQPASS
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_virtual_host /
[root@controller0 ~]# cat /etc/neutron/neutron.conf | grep rabbit_
d. Neutron使用二层插件
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin neutron.plugins.ml2.plugin.Ml2Plugin
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips True
[root@controller0 ~]# cat /etc/neutron/neutron.conf | grep core_
[root@controller0 ~]# cat /etc/neutron/neutron.conf | grep service_
[root@controller0~]# cat /etc/neutron/neutron.conf | grep allow_overlapping_ips
e. 配置neutron和nova状态变更
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes True
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_url http://controller0:8774/v2
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_auth_url http://controller0:35357/v2.0
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_region_name regionOne
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_username nova
查看service租户的id号码
[root@controller0 ~]# keystone tenant-list | grep service
| a6876a30df3840ad979323334052eee1 | service | True |
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_tenant_id a6876a30df3840ad979323334052eee1
[root@controller0 ~]# openstack-config --set /etc/neutron/neutron.conf DEFAULT nova_admin_password NOVA_PASS
[root@controller0 ~]# cat /etc/neutron/neutron.conf | grep nova
f. 配置ovs二层插件
网络类型:flat和gre(通用路由封装),从网络类型驱动命名空间加载网络类型列表
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,gre
租户网络类型
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types gre
ml2采用ovs机制
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers openvswitch
可用于租户网络配置的隧道id范围
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_gre tunnel_id_ranges 1:1000
使用安全组
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group True
使用ipset加速iptables安全组,使ipset支持ipset安装在L2代理节点上
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset True
防火墙设置
[root@controller0~]#openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[root@controller0 ~]# cat /etc/neutron/plugins/ml2/ml2_conf.ini | grep ml2
g. 配置nova支持neutron
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT security_group_api neutron
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf neutron auth_strategy keystone
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf neutron admin_auth_url http://controller0:35357/v2.0
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf neutron admin_tenant_name service
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf neutron admin_username neutron
[root@controller0 ~]# openstack-config --set /etc/nova/nova.conf neutron admin_password NEUTRON_PASS
h. 启动neutron-server服务
[root@controller0 ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
数据库同步
[root@controller0 ~]# 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
[root@controller0 ~]# mysql -uneutron -pNEUTRON_DBPASS -e “show tables from neutron;”
i. 重启nova服务,和neutron联动
[root@controller0 ~]# service openstack-nova-api restart
[root@controller0 ~]# service openstack-nova-scheduler restart
[root@controller0 ~]# service openstack-nova-conductor restart
j. 重启neutrron-server
[root@controller0 ~]# service neutron-server start
[root@controller0 ~]# chkconfig neutron-server on
k. controller0上校验neutron的配置
[root@controller0 ~]# source admin-openrc.sh
列出创建的加载扩展的neutron-server进程
[root@controller0 ~]# neutron ext-list
查看所有服务的状态
[root@controller0 ~]# openstack-service status
[root@controller0 ~]# openstack-status