一、安装 Nova 前的准备
1. 为KeyStone配置数据库
提示:以下操作在控制节点完成,为计算服务创建数据库、服务认证和API端点
- 使用数据库客户端,以root用户连接到数据库中:
mysql -u root -p
- 创建Nova数据库:
CREATE DATABASE nova;
- 为Nova用户授予数据库权限:
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
2. 创建Nova的身份认证证书
- 加载admin用户的客户端脚本:
source admin-openrc.sh
- 创建nova用户:
openstack user create --password-prompt nova
- 将admin角色添加给nova用户:
openstack role add --project service --user nova admin
- 创建nova的服务实体:
openstack service create --name nova --description "OpenStack Compute" compute
- 创建计算服务的API endpoint:
openstack endpoint create --publicurl http://controller:8774/v2/%\(tenant_id\)s --internalurl http://controller:8774/v2/%\(tenant_id\)s --adminurl http://controller:8774/v2/%\(tenant_id\)s --region RegionOne compute
二、在控制节点上安装和配置Nova
1. 安装Nova
- 安装Nova:
apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
2. 配置Nova
编辑文件/etc/nova/nova.conf
小助手:删除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile
修改[database]部分,配置数据库的连接:
connection = mysql://nova:NOVA_DBPASS@controller/nova
记得密码替换为自己设置密码,这是mysql的密码,并非nova用户的密码-
修改[DEFAULT]和[oslo_messaging_rabbit]两部分, 配置RabbitMQ消息队列的访问:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
修改[DEFAULT]和[keystone_authtoken]两部分,配置身份认证服务的访问:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要注释掉本部分其他的参数
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = NOVA_PASS
-
修改[DEFAULT]部分的my_ip参数,配置控制节点的管理IP地址:
my_ip = 10.0.0.11
-
修改[DEFAULT]部分,配置VNC代理以使用控制节点的管理IP地址:
vncserver_listen = 10.0.0.11 vncserver_proxyclient_address = 10.0.0.11
-
修改[glance]部分,配置镜像服务的位置:
host = controller
-
修改[oslo_concurrency]部分,配置锁路径:
lock_path = /var/lock/nova
-
可选:在[DEFAULT]部分启用日志信息详细记录:
verbose = True
3. 配置Nova数据库
- 为计算服务数据库添加数据:
su -s /bin/sh -c "nova-manage db_sync" nova
- 重启计算服务Nova:
service nova-api restart service nova-cert restart service nova-consoleauth restart service nova-scheduler restart service nova-conductor restart service nova-novncproxy restart
- 删除ubuntu默认创建的SQLite数据库:
rm -f /var/lib/nova/nova.sqlite
三、在计算节点上安装和配置Nova
1. 安装Nova
- 安装Nova:
apt-get install -y nova-compute sysfsutils
2. 配置Nova
编辑文件/etc/nova/nova.conf
小助手:删除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile
修改[database]部分,配置数据库的连接:
connection = mysql://nova:NOVA_DBPASS@controller/nova
记得密码替换为自己设置密码,这是mysql的密码,并非nova用户的密码-
修改[DEFAULT]和[oslo_messaging_rabbit]两部分, 配置RabbitMQ消息队列的访问:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
修改[DEFAULT]和[keystone_authtoken]两部分,配置身份认证服务的访问:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要注释掉本部分其他的参数
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = NOVA_PASS
-
修改[DEFAULT]部分的my_ip参数,配置控制节点的管理IP地址:
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
-
修改[DEFAULT]部分,配置VNC代理以启用远程终端的访问:
vnc_enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = MANAGEMENT_INTERFACE_IP_ADDRESS novncproxy_base_url = http://controller:6080/vnc_auto.html
-
修改[glance]部分,配置镜像服务的位置:
host = controller
-
修改[oslo_concurrency]部分,配置锁路径:
lock_path = /var/lock/nova
-
可选:在[DEFAULT]部分启用日志信息详细记录:
verbose = True
3. 完成在计算节点上安装和配置Nova
- 检查计算节点是否支持虚拟机的硬件加速:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出值是1或则比这更大,则不需要额外配置
如果是0,计算节点不支持硬件加速,你必须配置libvirt为QEMU,代替KVM - 修改文件/etc/nova/nova-compute.conf下的[libvirt]部分:
virt_type = qemu
- 重启计算服务nova:
service nova-compute restart
- 删除ubuntu默认创建的SQLite数据库:
rm -f /var/lib/nova/nova.sqlite
四、校验安装
提示:在控制节点上进行校验
- 加载admin客户端脚本:
source admin-openrc.sh
- 检查计算服务的服务组件是否成功地启动和注册:
nova service-list
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
| 1 | nova-conductor | controller | internal | enabled | up | 2014-09-16T23:54:02.000000 | - |
| 2 | nova-consoleauth | controller | internal | enabled | up | 2014-09-16T23:54:04.000000 | - |
| 3 | nova-scheduler | controller | internal | enabled | up | 2014-09-16T23:54:07.000000 | - |
| 4 | nova-cert | controller | internal | enabled | up | 2014-09-16T23:54:00.000000 | - |
| 5 | nova-compute | compute1 | nova | enabled | up | 2014-09-16T23:54:06.000000 | - |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
- 在身份认证服务中查看API端点信息以验证是否能够连接到OpenStack的认证服务:
nova endpoints
- 通过在镜像服务中查看镜像信息以验证是否能够连接镜像服务:
nova image-list