版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BAKBad/article/details/74793956
上篇文章讲述了如何安装镜像服务(Glance),本文将继续讲解如何搭建Openstack计算服务组件(Compute)。废话不多说,直接开始。(就是干!)
在安装和配置Compute服务之前,必须先完成数据库,服务凭证以及API endpoints的创建
1.创建数据库
mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABSE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
用合适的密码替换NOVA_DBPASS。
2. 创建服务凭证
. admin-openrc
openstack user create --domain default --password-prompt nova
openstack role add --project service --user nova admin
openstack service create --name nova \
--description "OpenStack Compute" compute
3. 创建API endpoints
openstack endpoint create --region RegionOne \
compute public http://192.168.152.166:8774/v2.1
openstack endpoint create --region RegionOne \
compute internal http://192.168.152.166:8774/v2.1
openstack endpoint create --region RegionOne \
compute admin http://192.168.152.166:8774/v2.1
4. 创建Placement service(过程类似上面的第2,3步,这里直接一次性给出运行命令)
openstack user create --domain default --password-prompt placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement
openstack endpoint create --region RegionOne placement public http://192.168.152.166:8778
openstack endpoint create --region RegionOne placement internal http://192.168.152.166:8778
openstack endpoint create --region RegionOne placement admin http://192.168.152.166:8778
5. 安装并配置组件
sudo apt install nova-api nova-conductor nova-consoleauth \
nova-novncproxy nova-scheduler nova-placement-api
编辑配置文件/etc/nova/nova.conf,在[api_database]和[databse]部分配置数据库连接
[api_database]
# ...
connection = mysql+pymysql://nova:[email protected]/nova_api
[database]
# ...
connection = mysql+pymysql://nova:[email protected]/nova
在[default]部分,配置RabbitMQ消息队列访问权限,配置my_ip,来使用控制节点的管理接口的ip地址以及启用网络服务支持
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
my_ip = 192.168.152.166
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
在[api]和[keystone_authtoken]部分,设置identity service的访问控制
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_uri = http://192.168.152.166:5000
auth_url = http://192.168.152.166:35357
memcached_servers = 192.168.152.166:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS
在[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址
[vnc]
enabled = true
# ...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
在[glance]部分,配置镜像服务API的位置
[glance]
# ...
api_servers = http://192.168.152.166:9292
在[oslo_concurrency]部分,配置锁路径
[oslo_concurrency]
# ...
lock_path = /var/lib/nova/tmp
在[placement]部分,配置Placement API
[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_PASS
初始化数据库
sudo su -s /bin/sh -c "nova-manage api_db sync" nova
注册cell0数据库
sudo su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
创建cell1 cell
sudo su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
同步数据库
sudo su -s /bin/sh -c "nova-manage db sync" nova
重启服务
sudo service nova-api restart
sudo service nova-consoleauth restart
sudo service nova-scheduler restart
sudo service nova-conductor restart
sudo service nova-novncproxy restart
以上操作均在控制节点上进行,接下讲述计算节点上的安装与配置
安装并配置组件
sudo apt install nova-compute
由于配置文件的修改与控制节点上类似,下面仅将不同的配置部分介绍一下,其它部分的配置均与控制节点上一样。
第一点,不用配置[database]部分
第二点,[default]部分中的my_ip配置为计算节点的管理IP地址,而不再是控制节点的管理IP地址
[DEFAULT]
# ...
my_ip = 192.168.152.167(我自己的计算节点的IP地址,替换成你自己的)
第三点,在[vnc]部分的配置如下:
[vnc]
# ...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.152.166:6080/vnc_auto.html
完成安装
确定您的计算节点虚拟机是否支持硬件加速
egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回了1或更大的值,那么无需额外的配置如果这个命令返回了0,那么说明你的计算节点不支持硬件加速,必须修改配置文件/etc/nova/nova-compute.conf,
在其[libvirt]部分,作如下修改:
[libvirt]
# ...
virt_type = qemu
重启服务
sudo service nova-compute restart
. admin-openrc
openstack hypervisor list
sudo su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
注意:当你添加新的计算节点时,必须在控制节点上运行nova-manage cell_v2 discover_hosts来注册这些计算节点。
验证计算服务(在控制节点上操作)
. admin-openrc
openstack compute service list
如果运行命令出现以下类似的效果,则证明计算服务安装成功:
+----+--------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated At |
+----+--------------------+------------+----------+---------+-------+----------------------------+
| 1 | nova-consoleauth | controller | internal | enabled | up | 2016-02-09T23:11:15.000000 |
| 2 | nova-scheduler | controller | internal | enabled | up | 2016-02-09T23:11:15.000000 |
| 3 | nova-conductor | controller | internal | enabled | up | 2016-02-09T23:11:16.000000 |
| 4 | nova-compute | compute1 | nova | enabled | up | 2016-02-09T23:11:20.000000 |
+----+--------------------+------------+----------+---------+-------+----------------------------+
后面继续讲解如何安装网络服务组件(Neutron),坚持哈,胜利就在前方!