这次是在控制节点的虚拟机中安装node
在配置OpenStack网络(中子)服务之前,必须创建数据库、服务凭据和API端点。
使用数据库访问客户端以根用户身份连接到数据库服务器:
首先进入MySQL对node进行建库和授权
mysql -u root -p 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'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'主机名' IDENTIFIED BY 'NEUTRON_DBPASS';
然后退出数据库,创建一个neutron的用户
openstack user create --domain default --password-prompt neutron
将管理员角色添加到用户:
openstack role add --project service --user neutron admin
创建中子服务实体:
openstack service create --name neutron --description "OpenStack Networking" network
创建网络服务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
其中controller都为IP地址
选择以下网络选项之一以配置特定于它的服务。然后,返回此处并继续配置元数据代理
在控制器节点上安装和配置网络组件。
安装组件
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
在/etc/neutron/neutron.conf
在[DATABASE]部分,配置数据库访问:
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
其中用您为数据库选择的密码替换数据库密码。
在[DEFAULT]部分,启用模块化第2层(ML2)插件、路由器服务和重叠IP地址:
[DEFAULT] # ... core_plugin = ml2 service_plugins = router allow_overlapping_ips = true
在[DEFAULT]部分中,配置RabbitMQ消息队列访问:
[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
用您为RabbitMQ中的openstack帐户选择的密码替换RABBIT_PASS。
在[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
用您在身份服务中为中子用户选择的密码替换中子密码。
在[DEFAULT]和[nova]部分中,配置网络以通知Compute网络拓扑更改:
[DEFAULT] # ... notify_nova_on_port_status_changes = true notify_nova_on_port_data_changes = true [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_PASS替换为您在身份服务中为NOVA用户选择的密码。
在[oslo_concurrency]部分,配置锁路径:
[oslo_concurrency] # ... lock_path = /var/lib/neutron/tmp
配置模块化第2层(ML2)插件
ML2插件使用Linux桥接机制为实例构建第2层(桥接和交换)虚拟网络基础设施。
进入/etc/neutron/plugins/ml2/ml2_conf.ini
文档内并完成以下操作:
在[ml2]部分中,启用平面、VLAN和VXLAN网络:
[ml2] # ... type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
在[ml2_type_flat]部分中,将提供商虚拟网络配置为平面网络:
[ml2_type_flat] # ... flat_networks = provider
在[ml2_type_vxlan]部分,为自助服务网络配置vxlan网络标识符范围:
[ml2_type_vxlan] # ... vni_ranges = 1:1000
在[securitygroup]部分,启用ipset以提高安全组规则的效率:
[securitygroup] # ... enable_ipset = true
配置Linux网桥代理
Linux网桥代理为实例构建第2层(桥接和交换)虚拟网络基础设施,并处理安全组。
编辑/etc/中子/plugins/ml2/linuxbridge\u代理。ini文件并完成以下操作:
在[linux_bridge]部分,将提供商虚拟网络映射到提供商物理网络接口:
[linux_bridge] physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
这里我的PROVIDER_INTERFACE_NAME是ens33
用基础提供程序物理网络接口的名称替换提供程序接口名称。有关更多信息,请参阅主机网络。
在[vxlan]部分,启用vxlan覆盖网络,配置处理覆盖网络的物理网络接口的IP地址,并启用第2层填充:
[vxlan] enable_vxlan = true local_ip = OVERLAY_INTERFACE_IP_ADDRESS l2_population = true
这里的OVERLAY_INTERFACE_IP_ADDRESS换成虚拟机的IP地址
在[securitygroup]部分,启用安全组并配置Linux桥iptables防火墙驱动程序:
[securitygroup] # ... enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
通过验证以下所有sysctl值均设置为1,确保Linux操作系统内核支持网桥筛选器:
net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables
配置第3层代理
第3层(L3)代理为自助虚拟网络提供路由和NAT服务。
编辑/etc/neutron/l3_agent.ini
。ini文件并完成以下操作:
在[DEFAULT]部分,配置Linux网桥接口驱动程序和外部网桥:
[DEFAULT] # ... interface_driver = linuxbridge
配置DHCP代理
DHCP代理为虚拟网络提供DHCP服务。
编辑/etc/neutron/dhcp_agent.ini
。ini文件并完成以下操作:
在[DEFAULT]部分,配置Linux网桥接口驱动程序、Dnsmasq DHCP驱动程序,并启用隔离元数据,以便提供商网络上的实例可以通过网络访问元数据:
[DEFAULT] # ... interface_driver = linuxbridge dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = true
配置元数据代理»
元数据代理向实例提供配置信息,如凭据。
编辑/etc/neutron/metadata_agent.ini
。ini文件并完成以下操作:
在[DEFAULT]部分,配置元数据主机和共享密钥:
[DEFAULT] # ... nova_metadata_host = controller metadata_proxy_shared_secret = METADATA_SECRET
用元数据代理的合适密钥替换METADATA_SECRET
将计算服务配置为使用网络服务
编辑/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
用户选择的密码替换NEUTRON_PASS
。
将METADATA_SECRET
替换为您为元数据代理选择的密钥。
完成安装
网络服务初始化脚本需要一个符号链接/etc/neutron/plugin.ini
指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini
。如果此符号链接不存在,请使用以下命令创建它:
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
填充数据库:
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head
重新启动计算API服务:
systemctl restart openstack-nova-api
systemctl enable neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
systemctl start neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
对于网络选项2,还应启用并启动第3层服务:
systemctl enable neutron-l3-agent
systemctl start neutron-l3-agent
最后我们查看一下neutron-l3-agent的状态
systemctl status neutron-l3-agent
确认状态为running
这是官网网址