创建数据库和oepnstack用户等
创建数据库
MariaDB [(none)] CREATE DATABASE neutron;
创建数据库用户
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123456';
获取openstack操作权限
. admin-openrc
openstack创建neutron用户
openstack user create --domain default --password-prompt neutron
设置admin角色
openstack role add --project service --user neutron admin
创建oepnstack服务入口
openstack service create --name neutron --description "OpenStack Networking" network
创建端点(endpoint)
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
安装和配置neutron
openstack提供两种网络模式,一种是provider(运营商网络),一种是self-service(租户网络)。简单来说,运营商网络就是云内依赖外部路由,三层是由外部网络设备提供的。租户网络就是通过虚拟路由等来提供三层网络能力。这里使用provider来搭建测试环境
安装组件
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
配置neutron组件,编辑/etc/neutron/neutron.conf,内容如下
[database]
connection = mysql+pymysql://neutron:123456@controller/neutron
[DEFAULT]
core_plugin = ml2
service_plugins =
transport_url = rabbit://openstack:123456@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[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 = 123456
[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 = 123456
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
配置二层网络插件,编辑/etc/neutron/plugins/ml2/ml2_conf.ini,内容如下
[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[securitygroup]
enable_ipset = true
配置linux网桥,文件地址:/etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:eth1
[vxlan]
enable_vxlan = false
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置bridge-nf-call-ip6tables,编辑/etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
然后执行下面命令,让其生效
sysctl -p
如果出现如下错误
加载内核模块,即可解决
modprobe br_netfilter
配置dhcp服务,编辑/etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
至此,网络配置完成
配置metadata agent
打开/etc/neutron/metadata_agent.ini,写入以下配置
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = 123456
配置nova使用网络服务
打开/etc/nova/nova.conf配置文件,写入以下内容
[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 = 123456
service_metadata_proxy = true
metadata_proxy_shared_secret = 123456
完成安装
同步配置文件
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
重启nova-api服务
systemctl restart openstack-nova-api.service
启动neutron相关服务
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