说明:前三章内容为第一次完整部署openstack mitaka的手顺,经过这一段时间的学习又重新完整部署了两次。本章内容是第三次完整部署openstack mitaka的手顺,加入了防火墙配置以及修正了一些问题。另外因为虚拟机重新安装了,主机名可能和前面略有差别。
成都创新互联公司主营荆门网站建设的网络公司,主营网站建设方案,重庆APP开发公司,荆门h5小程序设计搭建,荆门网站营销推广欢迎荆门等地区企业咨询
4、计算服务
4.1、安装并配置控制节点
4.1.1、创建数据库服务的凭据以及 API endpoints
4.1.1.1、为了创建数据库,必须完成这些步骤
用数据库连接客户端以 root 用户连接到数据库服务器:
$ MySQL -u root -p
创建 nova_api 和 nova 数据库:
CREATE DATABASE nova_api;
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'P@ssw0rd';
4.1.1.2、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc
4.1.1.3、创建服务证书,完成这些步骤:
创建 nova 用户:
$ openstack user create --domain default --password-prompt nova
--设置密码:P@ssw0rd
给 nova 用户添加 admin 角色
$ openstack role add --project service --user nova admin
创建 nova 服务实体:
$ openstack service create --name nova --description "OpenStack Compute" compute
4.1.1.4、创建 Compute 服务 API 端点 :
$ openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s
控制节点防火墙开放端口:8774
# firewall-cmd --permanent --add-port=8774/tcp
# firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
4.1.2、安全并配置组件
4.1.2.1、安装软件包:
# yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
4.1.2.2、编辑vi /etc/nova/nova.conf文件并完成下面的操作
在``[DEFAULT]``部分,只启用计算和元数据API:
enabled_apis = osapi_compute,metadata
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 111.111.111.201
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
在``[api_database]``部分,配置数据库的连接:
connection = mysql+pymysql://nova:P@ssw0rd@controller/nova_api
在``[database]``部分,配置数据库的连接:
connection = mysql+pymysql://nova:P@ssw0rd@controller/nova
在 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = P@ssw0rd
在“[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 = P@ssw0rd
注解:在 [keystone_authtoken] 中注释或者删除其他选项。
在``[vnc]``部分,配置VNC代理使用控制节点的管理接口IP地址 :
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
在 [glance] 区域,配置镜像服务 API 的位置:
api_servers = http://controller:9292
在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/nova/tmp
4.1.2.3、同步Compute 数据库:
# su -s /bin/sh -c "nova-manage api_db sync" nova
# su -s /bin/sh -c "nova-manage db sync" nova
4.1.3、启动 Compute 服务并将其设置为随系统启动:
# systemctl enable openstack-nova-api \
openstack-nova-consoleauth openstack-nova-scheduler \
openstack-nova-conductor openstack-nova-novncproxy
# systemctl start openstack-nova-api \
openstack-nova-consoleauth openstack-nova-scheduler \
openstack-nova-conductor openstack-nova-novncproxy
# systemctl status openstack-nova-api \
openstack-nova-consoleauth openstack-nova-scheduler \
openstack-nova-conductor openstack-nova-novncproxy
控制节点防火墙开放端口:6080、5672、5900
firewall-cmd --permanent --add-port=6080/tcp
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=5900/tcp
firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
4.2、安装和配置计算节点
4.2.1、安全并配置组件
4.2.1.1、安装软件包:
# yum install openstack-nova-compute -y
4.2.1.2、编辑vi /etc/nova/nova.conf文件并完成下面的操作:
在``[DEFAULT]`` 部分,配置``RabbitMQ``消息队列的连接:
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 111.111.111.202
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
在 [oslo_messaging_rabbit]部分,配置``RabbitMQ``消息队列的连接:
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = P@ssw0rd
在“[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 = P@ssw0rd
注解:在 [keystone_authtoken] 中注释或者删除其他选项。
在``[vnc]``部分,启用并配置远程控制台访问:
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
服务器组件监听所有的 IP 地址,而代理组件仅仅监听计算节点管理网络接口的 IP 地址。基本的 URL 指示您可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。
在 [glance] 区域,配置镜像服务 API 的位置:
api_servers = http://controller:9292
在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/nova/tmp
计算节点防火墙开放端口:6080、5672、5900
firewall-cmd --permanent --add-port=6080/tcp
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=5900/tcp
firewall-cmd --reload
确认端口开放成功
# firewall-cmd --list-all
4.2.2、完成安装:
4.2.2.1、确定计算节点是否支持虚拟机的硬件加速。
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回了 one or greater 的值,那么你的计算节点支持硬件加速且不需要额外的配置。
如果这个命令返回了 zero 值,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM
因为是虚拟机所以不支持硬件加速,继续配置
4.2.2.2、在vi /etc/nova/nova.conf文件的 [libvirt] 区域做出如下的编辑:
virt_type = qemu
4.2.2.3、启动计算服务及其依赖,并将其配置为随系统自动启动:
# systemctl enable libvirtd openstack-nova-compute
# systemctl start libvirtd openstack-nova-compute
# systemctl status libvirtd openstack-nova-compute
4.3、验证计算服务操作
在控制节点执行:
4.3.1、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc
4.3.2、列出服务组件,以验证是否成功启动并注册了每个进程:
$ openstack compute service list
注解:该输出应该显示三个服务组件在控制节点上启用,一个服务组件在计算节点上启用。