B.在计算节点上安装和配置nova服务
1.在计算节点上安装和配置
安装软件包
yum install openstack-nova-compute
注意:这里出现一个报错缺少一个rpm包,某位大佬丢给我一个rpm包地址得以解决
rpm -ivhhttps://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm
编辑/etc/nova/nova.conf文件并完成以下操作:
在该[DEFAULT]部分中,仅启用计算API和元数据API和配置RabbitMQ消息队列访问::
[DEFAULT] enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:openstack@controller
在[api]和[keystone_authtoken]部分中,配置身份服务访问
[api] 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 = nova password = nova
在该[DEFAULT]部分中,配置my_ip选项
my_ip = 173.168.16.225
在本[DEFAULT]节中,启用对网络服务的支持:
use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver
在本[vnc]节中,启用并配置远程控制台访问:
[vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html
在该[glance]部分中,配置ImageService API的位置:
[glance] api_servers = http://controller:9292
在该[oslo_concurrency]部分中,配置锁定路径:
[oslo_concurrency] lock_path = /var/lib/nova/tmp
在该[placement]部分中,配置PlacementAPI:
[placement] os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:35357/v3 username = placement password = placement
完整配置如下图所示:
2.完成安装
egrep -c '(vmx|svm)' /proc/cpuinfo //检查计算节点是否支持虚拟机的硬件加速如果返回值不为0,说明支持,计算节点不支持硬件加速,您必须配置libvirt为使用QEMU而不是KVM
按如下方式编辑文件中的[libvirt]部分/etc/nova/nova.conf:
[libvirt] virt_type = qemu
启动Compute服务(包括其依赖项)并将其配置为在系统引导时自动启动
[root@computer ~]# systemctl enable libvirtd.serviceopenstack-nova-compute.service [root@computer ~]# systemctl start libvirtd.serviceopenstack-nova-compute.service
这里出现一个小插曲,防火墙开着,服务一直起不来
3.将计算节点添加到单元数据库¶(在控制节点运行)
加载环境变量
[root@controller ~]# . admin-openrc
确认数据库中是否有计算主机
[root@controller ~]# openstack compute service list--service nova-compute
发现计算主机
[root@controller ~]# su -s /bin/sh -c "nova-managecell_v2 discover_hosts --verbose" nova
当您添加新的计算节点时,您必须在控制器节点上运行以注册这些新的计算节点。或者可以编辑/etc/nova/nova.conf在以下位置设置适当的间隔:
4.验证computer服务的操作(控制节点运行)
加载环境变量
[root@controller ~]# . admin-openrc
列出服务组件以验证每个进程的成功启动和注册
[root@controller ~]# openstack compute service list
列出身份服务中的API端点以验证与身份服务的连接
[root@controller ~]# openstack catalog list
列出Image服务中的图像以验证与Image服务的连接性:
[root@controller ~]# openstack image list
检查cells和placement API是否成功运行:
[root@controller ~]# nova-status upgrade check
至此,nova服务部分已经安装完成了
OpenStack网络服务搭建
neutron服务概述
OpenStack Networking(neutron)允许您创建由其他OpenStack服务管理的接口设备并将其连接到网络。可以实现插件以适应不同的网络设备和软件,为OpenStack架构和部署提供灵活性。
它包含以下组件:
neutron-server
接受API请求并将其路由到适当的OpenStack Networking插件以便采取行动。
OpenStack Networking插件和代理
插拔端口,创建网络或子网,并提供IP地址。这些插件和代理根据特定云中使用的供应商和技术而有所不同。OpenStack Networking带有用于思科虚拟和物理交换机,NEC OpenFlow产品,Open vSwitch,Linux桥接和VMware NSX产品的插件和代理。
通用代理是L3(第3层),DHCP(动态主机IP寻址)和插件代理。
消息队列
大多数OpenStack Networking安装用于在中子服务器和各种代理之间路由信息。还充当存储特定插件的网络状态的数据库。
OpenStack Networking主要与OpenStack Compute进行交互,为其实例提供网络和连接。
A.安装并配置控制器节点
1.配置neutron数据库
进入mariadb数据库
[root@controller ~]# mysql -uroot -p
创建neutron数据库
MariaDB [(none)]> CREATE DATABASE neutron;
创建neutron的授权用户
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.*TO 'neutron'@'localhost' IDENTIFIED BY 'neutron'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.*TO 'neutron'@'%' IDENTIFIED BY 'neutron';
2.创建服务凭据
加载环境变量
[root@controller ~]# . admin-openrc
创建neutron用户
[root@controller ~]# openstack user create --domaindefault --password-prompt neutron
将admin角色添加到neutron用户
[root@controller ~]# openstack role add --projectservice --user neutron admin
创建neutron服务实体
[root@controller ~]# openstack service create --nameneutron --description "OpenStack Networking" network
创建网络服务的api端点
[root@controller ~]# openstack endpoint create --regionRegionOne network public http://controller:9696 [root@controller ~]# openstack endpoint create --regionRegionOne network internal http://controller:9696 [root@controller ~]# openstack endpoint create --regionRegionOne network admin http://controller:9696
3.安装并配置neutron网络,这里有两种网络选项,我选择的是提供商网络
在控制节点安装neutron相关组件
[root@controller ~]# yum install openstack-neutronopenstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
编辑/etc/neutron/neutron.conf文件并完成以下操作:
在该[database]部分中,配置数据库访问:
[database] connection = mysql+pymysql://neutron:neutron@controller/neutron
在本[DEFAULT]节中,启用ModularLayer 2(ML2)插件并禁用其他插件:
core_plugin = ml2
service_plugins = //等号后面什么都不加就是禁用其他插件
在该[DEFAULT]部分中,配置RabbitMQ 消息队列访问:
transport_url = rabbit://openstack:openstack@controller
在[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
在[DEFAULT]和[nova]部分中,配置网络以通知计算网络拓扑更改:
[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
在该[oslo_concurrency]部分中,配置锁定路径:
[oslo_concurrency] lock_path = /var/lib/neutron/tmp
完整配置如下图所示
ML2插件使用Linux桥接机制为实例构建第2层(桥接和交换)虚拟网络基础结构。
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作:
在本[ml2]节中,启用flat和VLAN网络:
[ml2] type_drivers = flat,vlan
在本[ml2]节中,禁用自助服务网络:
tenant_network_types =
在本[ml2]节中,启用Linux桥接机制:
mechanism_drivers = linuxbridge
在该[ml2]部分中,启用端口安全扩展驱动程序:
extension_drivers = port_security
在本[ml2_type_flat]节中,将提供者虚拟网络配置为扁平网络:
[ml2_type_flat] flat_networks = provider
在本[securitygroup]节中,使用ipset来提高安全组规则的效率:
[securitygroup] enable_ipset = true
完整配置如下图所示:
Linux网桥代理为实例构建第2层(桥接和交换)虚拟网络基础架构并处理安全组。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:
在本[linux_bridge]节中,将提供者虚拟网络映射到提供者物理网络接口:
[linux_bridge]
physical_interface_mappings = provider:ens33 //将ens33替换成自己本身的网卡接口
在该[vxlan]部分中,禁用VXLAN覆盖网络:
[vxlan] enable_vxlan = false
在本[securitygroup]节中,启用安全组并配置Linux网桥iptables防火墙驱动程序:
[securitygroup] enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
完整配置如下图所示:
DHCP代理为虚拟网络提供DHCP服务。
编辑/etc/neutron/dhcp_agent.ini文件并完成以下操作:
在本[DEFAULT]节中,配置Linux网桥接口驱动程序,Dnsmasq DHCP驱动程序,并启用
隔离的元数据,以便提供商网络上的实例可以通过网络访问元数据:
[DEFAULT] interface_driver = linuxbridge dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = true
完整配置如下图所示:
在这里,我们一共修改了四个配置文件,分别是
4.配置元数据代理
元数据代理为实例提供配置信息,例如凭据。
编辑/etc/neutron/metadata_agent.ini文件并完成以下操作:
在该[DEFAULT]部分中,配置元数据主机和共享密钥:
[DEFAULT] nova_metadata_host = controller metadata_proxy_shared_secret = neutron
完整配置如下图所示:
5.配置nova使用neutron服务
编辑/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 service_metadata_proxy = true metadata_proxy_shared_secret = neutron
完整配置如下图所示:
6.完成控制节点的neutron安装
网络服务初始化脚本需要/etc/neutron/plugin.ini指向ML2插件配置文件的符号链
接/etc/neutron/plugins/ml2/ml2_conf.ini。如果此符号链接不存在,请使用以下命令创建它:
[root@controller ~] ln -s /etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini
初始化neutron数据库
[root@controller neutron]# 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
这里我同步的时候出现了一个报错,猜想应该是配置问题,结果看了一遍又一遍配置文件没找出来错误,后来谷歌关键字得知我把[database]部分的
”connection = mysql+pymysql://neutron:neutron@controller/neutron”写到了[DEFAULT]部分 [root@controller neutron]# mysql -uneutron -pneutron -e"use neutron; show tables;" //查看同步的数据库
重启计算API服务
[root@controller neutron]# systemctl restart openstack-nova-api.service
启动网络服务并将其配置为系统启动时启动
[root@controller ]# systemctl enable neutron-server.service neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service neutron-metadata-agent.service [root@controller neutron]# systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.serviceneutron-metadata-agent.service
B.在计算节点安装配置neutron
1.安装相关组件
[root@computer ~]# yum installopenstack-neutron-linuxbridge ebtables ipset
2.配置通用组件
网络通用组件配置包括认证机制,消息队列和插件。
编辑/etc/neutron/neutron.conf文件并完成以下操作:
在该[database]部分中,注释掉任何connection选项,因为计算节点不直接访问数据库。
在该[DEFAULT]部分中,配置RabbitMQ 消息队列访问:
[DEFAULT] transport_url = rabbit://openstack:openstack@controller
在[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
在该[oslo_concurrency]部分中,配置锁定路径:
[oslo_concurrency] lock_path = /var/lib/neutron/tmp
完整配置如下图所示:
3.配置网络选项
这里与控制器节点选择的相同网络选项,都是提供商网络
Linux网桥代理为实例构建第2层(桥接和交换)虚拟网络基础架构并处理安全组。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:
在本[linux_bridge]节中,将提供者虚拟网络映射到提供者物理网络接口:
[linux_bridge]
physical_interface_mappings = provider:ens33 //将ens33替换为自己的网卡接口
在该[vxlan]部分中,禁用VXLAN覆盖网络:
[vxlan] enable_vxlan = false
在本[securitygroup]节中,启用安全组并配置Linux网桥iptables防火墙驱动程序:
[securitygroup] enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
完整配置如下图所示:
4.配置计算服务已使用网络服务
编辑/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
完整配置如下图所示:
5.完成安装
重新启动计算服务:
[root@computer ~]# systemctl restart openstack-nova-compute.service
启动Linux桥代理并将其配置为在系统引导时启动:
[root@computer ~]# systemctl enable neutron-linuxbridge-agent.service [root@computer ~]# systemctl start neutron-linuxbridge-agent.service
6.验证操作
加载环境变量
[root@controller ~]# . admin-openrc
列出加载的扩展以验证neutron-server过程的成功启动 :
[root@controller ~]# openstack extension list --network
验证 neutron agent成功
[root@controller ~]# openstack network agent list
至此,neutron服务安装完成