1. 程式人生 > 實用技巧 >Centos7.4安裝openstack(queens)詳細安裝部署(四)-計算服務(nova)安裝

Centos7.4安裝openstack(queens)詳細安裝部署(四)-計算服務(nova)安裝

一、創庫授權

  1.1、(控制節點)配置資料庫

mysql -u root -pADMIN_PASS

  1.2、建立nova相關資料庫並設定訪問許可權

CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'ADMIN_PASS';
 
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '
ADMIN_PASS'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'ADMIN_PASS'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'ADMIN_PASS'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'ADMIN_PASS'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova
'@'%' IDENTIFIED BY 'ADMIN_PASS';

  1.3、控制節點)建立nova認證相關資訊

openstack user create --domain default --password ADMIN_PASS nova

openstack role add --project service --user nova admin

openstack service create --name nova --description "OpenStack Compute" compute
 
openstack endpoint create --region RegionOne compute public
http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1 openstack user create --domain default --password ADMIN_PASS 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://controller:8778 openstack endpoint create --region RegionOne placement internal http://controller:8778 openstack endpoint create --region RegionOne placement admin http://controller:8778

二、安裝服務

  1.1、(控制節點)安裝軟體包並配置元件

yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y

  1.2、編輯/etc/nova/nova.conf檔案並完成以下配置

cp /etc/nova/nova.conf{,.bak}
grep '^[a-z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:ADMIN_PASS@controller
my_ip = 10.0.0.11
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
...
[api_database]
connection = mysql+pymysql://nova:ADMIN_PASS@controller/nova_api
...
[database]
connection = mysql+pymysql://nova:ADMIN_PASS@controller/nova
...
[api]
auth_strategy = keystone
...
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = ADMIN_PASS
...
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
...
[glance]
api_servers = http://controller:9292
...
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
...
[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 = ADMIN_PASS

  1.3、因為軟體包的bug,編輯/etc/httpd/conf.d/00-nova-placement-api.conf檔案增加如下內容

<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

  1.4、重啟httpd服務

systemctl restart httpd

  1.5、匯入相關資料庫表結構

su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

su -s /bin/sh -c "nova-manage db sync" nova

nova-manage cell_v2 list_cells                                  驗證cell0和cell1是否成功註冊

  1.6、設定服務的開機自啟動,並啟動服務

systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

三、計算節點安裝服務

  1.1、(計算節點)在計算節點安裝計算服務

yum install openstack-nova-compute -y

  1.2、編輯/etc/nova/nova.conf檔案並設定如下內容

cp /etc/nova/nova.conf{,.bak}
grep '^[a-z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:ADMIN_PASS@controller
my_ip = 10.0.0.31
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
...

[api]
auth_strategy = keystone
...

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = ADMIN_PASS
...

[vnc]
enabled = True
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.0.77:6080/vnc_auto.html
...

[glance]
api_servers = http://controller:9292
...

[oslo_concurrency]
lock_path = /var/lib/nova/tmp
...

[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 = ADMIN_PASS

  1.3、檢測當前計算節點是否支援硬體虛擬化,這裡返回0,不支援硬體虛擬化。

    編輯/etc/nova/nova.conf檔案設定qemu來提供軟體虛擬化

/etc/nova/nova.conf
[libvirt]
virt_type = qemu
cpu_mode = none

  1.4、設定服務的開機自啟動,並啟動計算服務

systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

  1.5、(控制節點)向cell資料庫新增計算節點

    執行下面的命令,檢視計算節點資訊是否已經在資料庫

 openstack compute service list --service nova-compute

  1.6、發現計算節點

 su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

  1.7、控制節點)驗證操作 

openstack compute service list             列出計算服務的執行狀態
openstack catalog list 列出認證服務的埠
openstack image list 列出映象資訊,確認能訪問映象服務
nova-status upgrade check 確認cells和placement api成功執行