$ mysql -u root -p
建立nova數據庫:
<pre>CREATE DATABASE nova;
</pre>html
把nova數據庫的訪問權限賦予名爲nova,來自任何主機地址的用戶,並設定訪問密碼爲NOVA_DBPASS(替換爲合適的密碼):
<pre>GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
python
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';</pre>mysql
退出數據庫。sql
admin
證書:$ source admin-openrc.sh
nova
用戶:$ keystone user-create --name nova --pass NOVA_PASS
Property | Value |
---|---|
enabled | True |
id | 127790ae638a4ae08e09907d64972fb6 |
name | nova |
username | nova |
+----------+----------------------------------+</pre>
用合適的密碼代替NOVA_PASS。數據庫
把admin
角色賦予給nova
用戶: $ keystone user-role-add --user nova --tenant service --role admin
這條命令不產生輸出顯示。api
建立nova
服務實體:
<pre>$ keystone service-create --name nova --type compute \
網絡
--description "OpenStack Compute" | |
---|---|
Property | Value |
description | OpenStack Compute |
enabled | True |
id | 33b16e3a184f436da27b3655bfd2c336 |
name | nova |
type | compute |
+-------------+----------------------------------+</pre>curl
$ keystone endpoint-create \
--service-id $(keystone service-list | awk '/ compute / {print $2}') \
--publicurl http://controller:8774/v2/%(tenant_id)s \
--internalurl http://controller:8774/v2/%(tenant_id)s \
--adminurl http://controller:8774/v2/%(tenant_id)s \ide
--region regionOne | |
---|---|
Property | Value |
adminurl | http://controller:8774/v2/%(tenant_id)s |
id | 91e19b234a6d4a61961ea6136b75e7a7 |
internalurl | http://controller:8774/v2/%(tenant_id)s |
publicurl | http://controller:8774/v2/%(tenant_id)s |
region | regionOne |
service_id | 33b16e3a184f436da27b3655bfd2c336 |
+-------------+-----------------------------------------+</pre>測試
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth \
nova-novncproxy nova-scheduler python-novaclient
# vi /etc/nova/nova.conf
文件:在[database]
部分,設定數據庫的訪問選項:
<pre>[database]
...
connection = mysql://nova:NOVA_DBPASS@controller/nova</pre>
NOVA_DBPASS爲建立nova數據庫時設立的密碼。
在[DEFAULT]
部分,設定RabbitMQ的訪問選項:
<pre>[DEFAULT]
</pre>
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
RABBIT_PASS爲RabbitMQ guest帳戶的密碼。
在[DEFAULT]
和 [keystone_authtoken]
部分,設定認證服務的訪問選項:
<pre>[DEFAULT]
</pre>
...
auth_strategy = keystone
<pre>[keystone_authtoken]
</pre>
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
NOVA_PASS爲建立nova
用戶時使用的密碼。在[keystone_authtoken]部分,註釋掉 auth_host,auth_port,和auth_protocol的選項,由於identity_uri選項是直接代替它們的。
在[DEFAULT]
部分,設定my_ip選項,其值爲controller節點在management網絡中的IP地址:
<pre>[DEFAULT]
</pre>
...
my_ip = 10.10.10.10
在[DEFAULT]
部分,設定VNC proxy(Virtual Network Computer),其值爲controller節點在management網絡中的IP地址:
<pre>[DEFAULT]
</pre>
...
vncserver_listen = 10.10.10.10
vncserver_proxyclient_address = 10.10.10.10
在[DEFAULT]
部分,開啓「詳細輸出日誌」選項:
<pre>[DEFAULT]
</pre>
...
verbose = True
在[glance]
部分,設定鏡像服務的位置:
<pre>[glance]
</pre>
...
host = controller
# nova-manage db sync
# service nova-api restart
# service nova-cert restart
# service nova-consoleauth restart
# service nova-scheduler restart
# service nova-conductor restart
# service nova-novncproxy restart
# rm -f /var/lib/nova/nova.sqlite
# apt-get install nova-compute sysfsutils
# vi /etc/nova/nova.conf
文件:在[DEFAULT]
部分,設定RabbitMQ的訪問選項:
<pre>[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS</pre>
RABBIT_PASS爲RabbitMQ guest帳戶的密碼。
在[DEFAULT]
和 [keystone_authtoken]
部分,設定認證服務的訪問選項:
<pre>[DEFAULT]
</pre>
...
auth_strategy = keystone
<pre>[keystone_authtoken]
</pre>
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
NOVA_PASS爲建立nova
用戶時使用的密碼。在[keystone_authtoken]部分,註釋掉 auth_host,auth_port,和auth_protocol的選項,由於identity_uri選項是直接代替它們的。
在[DEFAULT]
部分,設定my_ip選項:
<pre>[DEFAULT]
</pre>
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
MANAGEMENT_INTERFACE_IP_ADDRESS爲compute節點在management網絡中的IP地址,10.10.10.11。
在[DEFAULT]
部分,啓用和配置遠程控制檯訪問選項:
<pre>[DEFAULT]
</pre>
...
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
MANAGEMENT_INTERFACE_IP_ADDRESS爲compute節點在management網絡中的IP地址,10.10.10.11。
在[DEFAULT]
部分,開啓「詳細輸出日誌」選項:
<pre>[DEFAULT]
</pre>
...
verbose = True
在[glance]
部分,設定鏡像服務的位置:
<pre>[glance]
</pre>
...
host = controller
$ egrep -c '(vmx|svm)' /proc/cpuinfo
若是結果返回「1」或更大的值,說明compute節點支持硬件加速,不需作額外的設置。
若是返回「0」,則說明不支持硬件加速,需在libvirt選項裏用QEMU代替KVM。
編輯# vi /etc/nova/nova-compute.conf
的libvirt
部分:
<pre>[libvirt]
</pre>
...
virt_type = qemu
# service nova-compute restart
# rm -f /var/lib/nova/nova.sqlite
在controller節點上執行如下操做。
admin
證書:$ source admin-openrc.sh
$ nova image-list
Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
---|---|---|---|---|---|---|---|
1 | nova-cert | controller | internal | enabled | up | 2015-11-26T05:30:46.000000 | - |
2 | nova-consoleauth | controller | internal | enabled | up | 2015-11-26T05:30:46.000000 | - |
3 | nova-scheduler | controller | internal | enabled | up | 2015-11-26T05:30:47.000000 | - |
4 | nova-conductor | controller | internal | enabled | up | 2015-11-26T05:30:47.000000 | - |
5 | nova-compute | compute | nova | enabled | up | 2015-11-26T05:30:49.000000 | - |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+</pre>
$ nova image-list
ID | Name | Status | Server |
---|---|---|---|
6db9f9c9-4011-4cf5-a12b-dc70423ec0c3 | cirros-0.3.3-x86_64 | ACTIVE |
+--------------------------------------+---------------------+--------+--------+</pre>
至此nova服務安裝完畢。
$ nova service-list
命令後,全部服務的Status都是down,檢查/etc/nova/
下的log文件,發現有ERROR提示:「AMQP server controller:5672 closed the connection. Check login credentials:」。這個問題通常是因爲RabbitMQ訪問密碼沒設置對,覈實/etc/nova/nova.conf
文件中相應設置;若是覈實完仍是出現上述現象,能夠# rabbitmqctl change_password guest RABBIT_PASS
重置RabbitMQ的訪問密碼,# service rabbitmq-server restart
重啓服務後再嘗試。$ nova service-list
命令後,controller節點上全部服務沒有問題,compute節點上的計算服務是down的狀態,通常重啓compute節點上計算服務便可。也會出現上述操做仍是不起做用的狀況,檢查/etc/nova/
下的log文件,發現ERROR提示:「AMQP server on controller:5672 is unreachable: [Errno 113] EHOSTUNREACH.」。說明仍是訪問RabbitMQ出現了問題,最後發現是由於未知的緣由致使節點之間通訊中斷了,相互之間不能ping通,這個未能找到解決方案,只能恢復到安裝nova前的初始狀態從新安裝。