一、安裝 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