一、安裝 Nova 前的準(zhǔn)備
1. 為KeyStone配置數(shù)據(jù)庫
提示:以下操作在控制節(jié)點(diǎn)完成,為計(jì)算服務(wù)創(chuàng)建數(shù)據(jù)庫、服務(wù)認(rèn)證和API端點(diǎn)
- 使用數(shù)據(jù)庫客戶端,以root用戶連接到數(shù)據(jù)庫中:
mysql -u root -p - 創(chuàng)建Nova數(shù)據(jù)庫:
CREATE DATABASE nova; - 為Nova用戶授予數(shù)據(jù)庫權(quán)限:
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
2. 創(chuàng)建Nova的身份認(rèn)證證書
- 加載admin用戶的客戶端腳本:
source admin-openrc.sh - 創(chuàng)建nova用戶:
openstack user create --password-prompt nova - 將admin角色添加給nova用戶:
openstack role add --project service --user nova admin - 創(chuàng)建nova的服務(wù)實(shí)體:
openstack service create --name nova --description "OpenStack Compute" compute - 創(chuàng)建計(jì)算服務(wù)的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
二、在控制節(jié)點(diǎn)上安裝和配置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]部分,配置數(shù)據(jù)庫的連接:
connection = mysql://nova:NOVA_DBPASS@controller/nova
記得密碼替換為自己設(shè)置密碼,這是mysql的密碼,并非nova用戶的密碼-
修改[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ消息隊(duì)列的訪問:
rpc_backend = rabbitrabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS -
修改[DEFAULT]和[keystone_authtoken]兩部分,配置身份認(rèn)證服務(wù)的訪問:
auth_strategy = keystone注意:修改[keystone_authtoken]部分要注釋掉本部分其他的參數(shù)
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參數(shù),配置控制節(jié)點(diǎn)的管理IP地址:
my_ip = 10.0.0.11 -
修改[DEFAULT]部分,配置VNC代理以使用控制節(jié)點(diǎn)的管理IP地址:
vncserver_listen = 10.0.0.11 vncserver_proxyclient_address = 10.0.0.11 -
修改[glance]部分,配置鏡像服務(wù)的位置:
host = controller -
修改[oslo_concurrency]部分,配置鎖路徑:
lock_path = /var/lock/nova -
可選:在[DEFAULT]部分啟用日志信息詳細(xì)記錄:
verbose = True
3. 配置Nova數(shù)據(jù)庫
- 為計(jì)算服務(wù)數(shù)據(jù)庫添加數(shù)據(jù):
su -s /bin/sh -c "nova-manage db_sync" nova - 重啟計(jì)算服務(wù)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默認(rèn)創(chuàng)建的SQLite數(shù)據(jù)庫:
rm -f /var/lib/nova/nova.sqlite
三、在計(jì)算節(jié)點(diǎn)上安裝和配置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]部分,配置數(shù)據(jù)庫的連接:
connection = mysql://nova:NOVA_DBPASS@controller/nova
記得密碼替換為自己設(shè)置密碼,這是mysql的密碼,并非nova用戶的密碼-
修改[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ消息隊(duì)列的訪問:
rpc_backend = rabbitrabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS -
修改[DEFAULT]和[keystone_authtoken]兩部分,配置身份認(rèn)證服務(wù)的訪問:
auth_strategy = keystone注意:修改[keystone_authtoken]部分要注釋掉本部分其他的參數(shù)
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參數(shù),配置控制節(jié)點(diǎn)的管理IP地址:
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS -
修改[DEFAULT]部分,配置VNC代理以啟用遠(yuǎn)程終端的訪問:
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]部分,配置鏡像服務(wù)的位置:
host = controller -
修改[oslo_concurrency]部分,配置鎖路徑:
lock_path = /var/lock/nova -
可選:在[DEFAULT]部分啟用日志信息詳細(xì)記錄:
verbose = True
3. 完成在計(jì)算節(jié)點(diǎn)上安裝和配置Nova
- 檢查計(jì)算節(jié)點(diǎn)是否支持虛擬機(jī)的硬件加速:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果輸出值是1或則比這更大,則不需要額外配置
如果是0,計(jì)算節(jié)點(diǎn)不支持硬件加速,你必須配置libvirt為QEMU,代替KVM - 修改文件/etc/nova/nova-compute.conf下的[libvirt]部分:
virt_type = qemu - 重啟計(jì)算服務(wù)nova:
service nova-compute restart - 刪除ubuntu默認(rèn)創(chuàng)建的SQLite數(shù)據(jù)庫:
rm -f /var/lib/nova/nova.sqlite
四、校驗(yàn)安裝
提示:在控制節(jié)點(diǎn)上進(jìn)行校驗(yàn)
- 加載admin客戶端腳本:
source admin-openrc.sh - 檢查計(jì)算服務(wù)的服務(wù)組件是否成功地啟動和注冊:
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 | - |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
- 在身份認(rèn)證服務(wù)中查看API端點(diǎn)信息以驗(yàn)證是否能夠連接到OpenStack的認(rèn)證服務(wù):
nova endpoints - 通過在鏡像服務(wù)中查看鏡像信息以驗(yàn)證是否能夠連接鏡像服務(wù):
nova image-list