使用 OpenStack 计算服务托管和管理云计算系统。OpenStack 计算服务是基础架构即服务(IaaS)系统的重要组成部分。
v先决条件
1. 创建数据库,完成下列步骤:
A. 使用数据库命令行客户端,以 root 身份登录数据库服务器。
# mysql -u root -p123
B. 创建 nova_api,nova 和 nova_cell0 数据库:
MariaDB [(none)]> CREATE DATABASEnova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASEnova_cell0;
C. 创建数据库用户 nova,并授予数据库用户nova 访问 nova_api和 nova 数据库的权限。
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123';
MariaDB [(none)]>GRANT ALL PRIVILEGES ONnova.* TO 'nova'@'%' IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123';
替换 NOVA_DBPASS 为一个合适的密码。
D. 退出数据库
2. 执行 admin 凭据脚本,以便以admin 身份执行后续命令:
# . admin-openrc
3. 创建服务凭据,并完成下列步骤:
A. 创建 nova 用户
# openstack user create --domain default--password-prompt nova
密码:123456
B. 添加 admin 角色到 nova 用户和 service 项目
# openstack role add --project service--user nova admin
C. 创建 nova 服务实体:
# openstack service create --name nova--description "OpenStack Compute" compute
4. 创建计算服务的 API 端点:
# openstack endpoint create --regionRegionOne compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOnecompute internal http://controller:8774/v2.1
# openstack endpoint create --regionRegionOne compute admin http://controller:8774/v2.1
5. 创建 Placement 服务用户
# openstack user create --domain default--password-prompt placement
密码:123456
6. 将 placement 用户以 admin 角色加入到 service项目
# openstack role add --project service--user placement admin
7. 在身份服务的服务目录中,添加placement 服务。
# openstack service create --name placement--description "Placement API" placement
8. 创建 Placement API 服务端点
# openstack endpoint create --regionRegionOne placement public http://controller:8778
openstack endpoint create --regionRegionOne placement internal http://controller:8778
v安装配置组件
1. 安装软件包
# yuminstall openstack-nova-api openstack-nova-conductor openstack-nova-consoleopenstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-apiopenstack-nova-compute –y
2. 编辑 /etc/nova/nova.conf文件并完成下列操作:
A. 在[DEFAULT]小节,只启用compute 和 metadata 的 API。
[DEFAULT]
# ...
enabled_apis =osapi_compute,metadata
B. 在[api_database]和[database]小节,配置数据库访问:
[api_database]
# ...
connection =mysql+pymysql://nova:123@controller/nova_api
[database]
# ...
connection =mysql+pymysql://nova:123@controller/nova
替换 NOVA_DBPASS 为你的计算服务数据库用户 nova 的密码。
C. 在[DEFAULT]小节配置 RabbitMQ消息队列访问:
[DEFAULT]
# ...
transport_url =rabbit://openstack:123@controller
替换 RABBIT_PASS 为 RabbitMQ 用户 openstack 的密码。
D. 在[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 = 123
替换 NOVA_PASS 为身份服务中用户 nova 的密码。
E. 在[DEFAULT]小节,配置 my_ip 配置项为管理节点的管理接口IP地址。
[DEFAULT]
# ...my_ip = 10.0.0.10
F. 在[DEFAULT]小节,启用支持neutron 网络服务:
[DEFAULT]
# ...
use_neutron = True
firewall_driver =nova.virt.firewall.NoopFirewallDriver
G. 在[vnc]小节,配置 vnc 代理,使用管理节点的管理接口 IP 地
址:
enabled = true
# ...
vncserver_listen = $my_ip
vncserver_proxyclient_address= $my_ip
novncproxy_base_url =http://controller:6080/vnc_auto.html
H. 在[glance]小节,配置镜像服务 API的位置:
【 】
# ...
api_servers =http://controller:9292
I. 在[oslo_concurrency]小节,配置锁路径:
lock_path = /var/lib/nova/tmp
J. 在[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 = 123
替换 PLACEMENT_PASS 为身份服务中用户 placement 的密码。
K. 由于软件包 bug,必须将下列配置添加到文件/etc/httpd/conf.d/00-nova-placement-api.conf 中/etc/httpd/conf.d/00-nova-placement-api.conf,以启用对Placement API的访问。
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
L. 重启 httpd 服务:
# systemctl restart httpd
大家可以通过status命令来查看服务的状态,如图所示:
结果发现不能启动openstack-nova-compute.service查看日志/var/log/nova/nova-compute.log报错显示111 无法连接用户openstack。所以可以知道消息队列没有开启。
下面去查看信息修改。