一鳖孤、概述
使用OpenStack計(jì)算服務(wù)來托管和管理云計(jì)算系統(tǒng)。OpenStack計(jì)算服務(wù)是基礎(chǔ)設(shè)施即服務(wù)(IaaS)系統(tǒng)的主要部分,模塊主要由Python實(shí)現(xiàn)。
OpenStack計(jì)算組件請(qǐng)求OpenStack Identity服務(wù)進(jìn)行認(rèn)證判耕;請(qǐng)求OpenStack Image服務(wù)提供磁盤鏡像;為OpenStack dashboard提供用戶與管理員接口翘骂。磁盤鏡像訪問限制在項(xiàng)目與用戶上壁熄;配額以每個(gè)項(xiàng)目進(jìn)行設(shè)定(例如,每個(gè)項(xiàng)目下可以創(chuàng)建多少實(shí)例)碳竟。OpenStack
組件可以在標(biāo)準(zhǔn)硬件上水平大規(guī)模擴(kuò)展草丧,并且下載磁盤鏡像啟動(dòng)虛擬機(jī)實(shí)例。
OpenStack計(jì)算服務(wù)由下列組件所構(gòu)成:
nova-api 服務(wù):接受并響應(yīng)所有計(jì)算服務(wù)請(qǐng)求莹桅,管理虛擬機(jī)(云主機(jī))生命周期昌执。
nova-api-metadata 服務(wù):接受來自虛擬機(jī)發(fā)送的元數(shù)據(jù)請(qǐng)求。
nova-compute服務(wù)(多個(gè)):真正管理虛擬機(jī)(nova-compute調(diào)用libvirt)统翩。
nova-scheduler服務(wù):nova調(diào)度器(挑選出最合適的nova-compute來創(chuàng)建虛擬機(jī))仙蚜。
nova-conductor模塊:幫助nova-compute代理修改數(shù)據(jù)庫(kù)中虛擬機(jī)的狀態(tài)。
nova-cert模塊:服務(wù)器守護(hù)進(jìn)程向Nova Cert服務(wù)提供X509證書厂汗。用來為euca-bundle-image
生成證書委粉。僅僅是在EC2 API的請(qǐng)求中使用
nova-network worker 守護(hù)進(jìn)程:與nova-compute
服務(wù)類似,從隊(duì)列中接受網(wǎng)絡(luò)任務(wù)娶桦,并且操作網(wǎng)絡(luò)贾节。執(zhí)行任務(wù)例如創(chuàng)建橋接的接口或者改變IPtables的規(guī)則。
nova-consoleauth 守護(hù)進(jìn)程和nova-novncproxy 守護(hù)進(jìn)程:web版的vnc來直接操作云主機(jī)衷畦。
nova-spicehtml5proxy 守護(hù)進(jìn)程:提供一個(gè)代理栗涂,用于訪問正在運(yùn)行的實(shí)例,通過 SPICE 協(xié)議祈争,支持基于瀏覽器的 HTML5 客戶端斤程。
nova-xvpvncproxy 守護(hù)進(jìn)程:提供一個(gè)代理,用于訪問正在運(yùn)行的實(shí)例菩混,通過VNC協(xié)議忿墅,支持OpenStack特定的Java客戶端。
nova-cert 守護(hù)進(jìn)程:X509 證書沮峡。
nova客戶端:用于用戶作為租戶管理員或最終用戶來提交命令疚脐。
隊(duì)列:一個(gè)在守護(hù)進(jìn)程間傳遞消息的中央集線器。
1邢疙、安裝和配置Nova計(jì)算服務(wù)之前棍弄,必須創(chuàng)建數(shù)據(jù)庫(kù)望薄,服務(wù)憑證和API端點(diǎn)。
1)確認(rèn)安裝mariadb呼畸,以root用戶身份登陸痕支,使數(shù)據(jù)庫(kù) 訪問客戶端連接到數(shù)據(jù)庫(kù)服務(wù)器
[root@controller ~]# mysql -u root -p #以root用戶身份登陸
Enter password: (密碼whj1218)
2)創(chuàng)建數(shù)據(jù)庫(kù)nova、nova_api蛮原、nova_cell0采转、placement
MariaDB [(none)]> CREATE DATABASE nova; #創(chuàng)建數(shù)據(jù)庫(kù)nova
MariaDB [(none)]> CREATE DATABASE nova_api; #創(chuàng)建數(shù)據(jù)庫(kù)nova_api
MariaDB [(none)]> CREATE DATABASE nova_cell0; #創(chuàng)建數(shù)據(jù)庫(kù)nova_cell0
MariaDB [(none)]> CREATE DATABASE placement; #創(chuàng)建數(shù)據(jù)庫(kù)placement
MariaDB [(none)]> show databases;#查數(shù)據(jù)表
+--------------------+
| Database |
+--------------------+
| glance |
| information_schema |
| keystone |
| mysql |
| nova |
| nova_api |
| nova_cell0 |
| performance_schema |
| placement |
+--------------------+
3)對(duì)上面創(chuàng)建的數(shù)據(jù)庫(kù)授予合適賬戶訪問權(quán)限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'whj1218' ;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'localhost' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'%' IDENTIFIED BY 'whj1218';
MariaDB [(none)]> select user,host from mysql.user;
+----------+-----------+
| user | host |
+----------+-----------+
| glance | % |
| keystone | % |
| nova | % |
| root | 127.0.0.1 |
| root | ::1 |
| glance | localhost |
| keystone | localhost |
| nova | localhost |
| root | localhost |
+----------+-----------+
MariaDB [(none)]> quit #退出數(shù)據(jù)庫(kù)
2.在keystone上面注冊(cè)nova服務(wù)
1)在keystone上創(chuàng)建nova用戶
[root@controller ~]# source keystone-admin-pass.sh #加載admin憑據(jù)的環(huán)境變量
[root@controller ~]# openstack user create --domain default --password=whj1218 #nova 創(chuàng)建用戶nova
[root@controller ~]# openstack user create --domain default --password-prompt nova
User Password: ,密碼whj1218
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | d41274fd47e044d4baef61aeef98d0c8 |
| name | nova |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@controller ~]# openstack user list #列出用戶
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 4640a445474e44abba73328aa81a805b | admin |
| 9c1f982fc354433dbea4d060681619bf | myuser |
| 0356c4d61dcf4afb9d8df45c1dea3ffc | my_user |
| b2f7c49185004822957e5e40227b833a | glance |
| d41274fd47e044d4baef61aeef98d0c8 | nova |
+----------------------------------+---------+
2)在keystone上將nova用戶配置為admin角色并添加進(jìn)service項(xiàng)目
[root@controller ~]# openstack role add --project service --user nova admin
3)創(chuàng)建nova計(jì)算服務(wù)的實(shí)體
[root@controller ~]# openstack service create --name nova --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | 3a4e43c903d14e2f9f8839d55b62e360 |
| name | nova |
| type | compute |
+-------------+----------------------------------+
[root@controller ~]# openstack service list #列出服務(wù)
+----------------------------------+----------+----------+
| ID | Name | Type |
+----------------------------------+----------+----------+
| 04289507c30f41faa7ba4e5f730db3d0 | glance | image |
| 3a4e43c903d14e2f9f8839d55b62e360 | nova | compute |
| 5bf0447c80e44bc5a68d8ccc554d81e8 | keystone | identity |
+----------------------------------+----------+----------+
4)創(chuàng)建計(jì)算服務(wù)的API端點(diǎn)(endpoint)
創(chuàng)建endpoint
OpenStack使用三個(gè)API端點(diǎn)變種代表每種服務(wù):admin瞬痘,internal和public。默認(rèn)情況下板熊,管理API端點(diǎn)允許修改用戶和租戶而公共和內(nèi)部APIs不允許這些操作框全。在生產(chǎn)環(huán)境中,處于安全原因干签,變種為了服務(wù)不同類型的用戶可能駐留在單獨(dú)的網(wǎng)絡(luò)上津辩。對(duì)實(shí)例而言,公共API網(wǎng)絡(luò)為了讓顧客管理他們自己的云在互聯(lián)網(wǎng)上是可見的容劳。管理API網(wǎng)絡(luò)在管理云基礎(chǔ)設(shè)施的組織中操作也是有所限制的喘沿。內(nèi)部API網(wǎng)絡(luò)可能會(huì)被限制在包含OpenStack服務(wù)的主機(jī)上。此外竭贩,OpenStack支持可伸縮性的多區(qū)域蚜印。為了簡(jiǎn)單起見,本指南為所有端點(diǎn)變種和默認(rèn)RegionOne
區(qū)域都使用管理網(wǎng)絡(luò)留量。
[root@controller ~]# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1 #創(chuàng)建公有端點(diǎn)public
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 79d5319675d34bc89bd4e1775f8477fd |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 3a4e43c903d14e2f9f8839d55b62e360 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 #創(chuàng)建私有端點(diǎn)internal
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 1098726adea6413ab5a222547b0d203a |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 3a4e43c903d14e2f9f8839d55b62e360 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1 #創(chuàng)建admin端點(diǎn)
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 817b9881d0db41549c4ce48c6b13d8ba |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 3a4e43c903d14e2f9f8839d55b62e360 |
| service_name | nova |
| service_type | compute |
| url | http://controller:8774/v2.1 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint list #列出所有端點(diǎn)
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
| 03317d828e5944daaa9b9806c92b6319 | RegionOne | glance | image | True | public | http://controller:9292 |
| 1098726adea6413ab5a222547b0d203a | RegionOne | nova | compute | True | internal | http://controller:8774/v2.1 |
| 3ad1568a787d467893daf154e65d60d2 | RegionOne | glance | image | True | internal | http://controller:9292 |
| 6d5e77dc42a243c5810c29f679a486f8 | RegionOne | glance | image | True | admin | http://controller:9292 |
| 79d5319675d34bc89bd4e1775f8477fd | RegionOne | nova | compute | True | public | http://controller:8774/v2.1 |
| 817b9881d0db41549c4ce48c6b13d8ba | RegionOne | nova | compute | True | admin | http://controller:8774/v2.1 |
| bcbf96c2a7d54d1181d75e752eb1642d | RegionOne | keystone | identity | True | internal | http://controller:5000/v3/ |
| d41a39b417964676b6cfea658a7f3d01 | RegionOne | keystone | identity | True | admin | http://controller:5000/v3/ |
| f25f1eab7c8b4c4489f1c84234be9912 | RegionOne | keystone | identity | True | public | http://controller:5000/v3/ |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
5)創(chuàng)建放置placement服務(wù)憑證
[root@controller ~]# openstack user create --domain default --password=whj1218 placement
[root@controller ~]# openstack user create --domain default --password-prompt placement#創(chuàng)建placement用戶
User Password: 密碼為whj1218
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | d7bc1525577b4800b1893077da1c1b26 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --project service --user placement admin #在keystone上將placement用戶配置為admin角色并添加進(jìn)service項(xiàng)目
[root@controller ~]# openstack service create --name placement --description "Placement API" placement #創(chuàng)建放置服務(wù)placement的API實(shí)體入口
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | 06057671fff0479682a1d2ef1b3f710b |
| name | placement |
| type | placement |
+-------------+----------------------------------+
創(chuàng)建placement項(xiàng)目的endpoint(API端口)
[root@controller ~]# openstack endpoint create --region RegionOne placement public http://controller:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | e6e34f670f8941c6b37fc74ca0ad7522 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 06057671fff0479682a1d2ef1b3f710b |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://controller:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | ca654b06a0694735865181664b1d627f |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 06057671fff0479682a1d2ef1b3f710b |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://controller:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 128f6b340dbe4a88bef0217208efd751 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 06057671fff0479682a1d2ef1b3f710b |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
| 03317d828e5944daaa9b9806c92b6319 | RegionOne | glance | image | True | public | http://controller:9292 |
| 1098726adea6413ab5a222547b0d203a | RegionOne | nova | compute | True | internal | http://controller:8774/v2.1 |
| 128f6b340dbe4a88bef0217208efd751 | RegionOne | placement | placement | True | admin | http://controller:8778 |
| 3ad1568a787d467893daf154e65d60d2 | RegionOne | glance | image | True | internal | http://controller:9292 |
| 6d5e77dc42a243c5810c29f679a486f8 | RegionOne | glance | image | True | admin | http://controller:9292 |
| 79d5319675d34bc89bd4e1775f8477fd | RegionOne | nova | compute | True | public | http://controller:8774/v2.1 |
| 817b9881d0db41549c4ce48c6b13d8ba | RegionOne | nova | compute | True | admin | http://controller:8774/v2.1 |
| bcbf96c2a7d54d1181d75e752eb1642d | RegionOne | keystone | identity | True | internal | http://controller:5000/v3/ |
| ca654b06a0694735865181664b1d627f | RegionOne | placement | placement | True | internal | http://controller:8778 |
| d41a39b417964676b6cfea658a7f3d01 | RegionOne | keystone | identity | True | admin | http://controller:5000/v3/ |
| e6e34f670f8941c6b37fc74ca0ad7522 | RegionOne | placement | placement | True | public | http://controller:8778 |
| f25f1eab7c8b4c4489f1c84234be9912 | RegionOne | keystone | identity | True | public | http://controller:5000/v3/ |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
3.在控制節(jié)點(diǎn)安裝nova相關(guān)服務(wù)
[root@controller ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y
[root@controller ~]# cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
[root@controller ~]# grep "^[a-z[]" /etc/nova/nova.conf.bak > /etc/nova/nova.conf
[root@controller ~]# vim /etc/nova/nova.conf
[DEFAULT]
enabled_apis=osapi_compute,metadata
my_ip=192.168.136.134
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
transport_url=rabbit://openstack:whj1218@controller
[api]
auth_strategy=keystone
[api_database]
connection = mysql+pymysql://nova:whj1218@controller/nova_api
...........
[database]
connection = mysql+pymysql://nova:whj1218@controller/nova
........
[glance]
api_servers = http://controller:9292
..........
[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=whj1218
.......
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
..........
[placement]
region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:5000/v3
username=placement
password=whj1218
...........
[vnc]
enabled=true
server_listen='my_ip'
.............
3)創(chuàng)建配置文件/etc/httpd/conf.d/00-nova-placement-api.conf
[root@controller ~]# vim /etc/httpd/conf.d/00-nova-placement-api.conf
Listen 8778
<VirtualHost *:8778>
WSGIProcessGroup nova-placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess nova-placement-api processes=3 threads=1 user=nova group=nova
WSGIScriptAlias / /usr/bin/nova-placement-api
<IfVersion >= 2.4>
ErrorLogFormat "%M"
</IfVersion>
ErrorLog /var/log/nova/nova-placement-api.log
SSLEngine On
SSLCertificateFile ...
SSLCertificateKeyFile ...
</VirtualHost>
Alias /nova-placement-api /usr/bin/nova-placement-api
<Location /nova-placement-api>
SetHandler wsgi-script
Options +ExecCGI
WSGIProcessGroup nova-placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
</Location>
末尾處添加下面一段代碼
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
重啟httpd服務(wù)窄赋,查看服務(wù)狀態(tài)
[root@controller ~]# systemctl restart httpd
[root@controller ~]# systemctl status httpd
4.同步nova數(shù)據(jù)(注意同步順序)
nova_api有32張表,placement有32張表楼熄,nova_cell0有110張表忆绰,nova也有110張表
1)初始化nova-api和placement數(shù)據(jù)庫(kù)
[root@controller ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
驗(yàn)證數(shù)據(jù)庫(kù)
[root@controller ~]# mysql -h192.168.136.134 -unova -pwhj1218 -e "use nova_api;show tables;" #有32張數(shù)據(jù)表
[root@controller ~]# mysql -h192.168.136.134 -uplacement -pwhj1218 -e "use placement;show tables;"
通過對(duì)比可知,nova_api和placement都有32張表可岂,區(qū)別在于nova_api數(shù)據(jù)庫(kù)的cell_mappings表多兩條數(shù)據(jù)错敢,存放的是nova和rabbitmq等的配置信息
2)初始化nova_cell0和nova數(shù)據(jù)庫(kù)
注冊(cè)cell0數(shù)據(jù)庫(kù)
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
創(chuàng)建cell1單元
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
初始化nova數(shù)據(jù)庫(kù)
[root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova # 這里遇到兩個(gè)警告信息,不是很嚴(yán)重缕粹,后續(xù)版本會(huì)修復(fù)稚茅,再重新執(zhí)行一下就不會(huì)報(bào)了
檢查確認(rèn)cell0和cell1注冊(cè)成功
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+
| Name | UUID | Transport URL | Database Connection | Disabled |
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+
| cell0 | 00000000-0000-0000-0000-000000000000 | none:/ | mysql+pymysql://nova:****@controller/nova_cell0 | False |
| cell1 | 84a45fca-3cda-432e-b67d-118afd69ab54 | rabbit://openstack:****@controller | mysql+pymysql://nova:****@controller/nova | False |
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+
返回的數(shù)據(jù)存儲(chǔ)在nova_api數(shù)據(jù)庫(kù)的cell_mappings表中
驗(yàn)證數(shù)據(jù)庫(kù)
[root@controller ~]# mysql -h192.168.136.134 -unova -pwhj1218 -e "use nova_cell0;show tables;"
[root@controller ~]# mysql -h192.168.136.134 -unova -pwhj1218 -e "use nova_api;show tables;"
通過對(duì)比可知,這兩個(gè)數(shù)據(jù)庫(kù)的表目前完全一樣致开,區(qū)別在于nova數(shù)據(jù)庫(kù)的service表中有4條數(shù)據(jù)峰锁,存放的是當(dāng)前版本nova相關(guān)服務(wù)的注冊(cè)信息
[root@controller ~]# systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service #啟動(dòng)服務(wù)
[root@controller ~]# systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service #查看服務(wù)狀態(tài)
[root@controller ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service #設(shè)置開機(jī)自啟動(dòng)
[root@controller ~]# systemctl list-unit-files |grep openstack-nova* |grep enabled #檢查是否都開機(jī)啟動(dòng)了
openstack-nova-api.service enabled
openstack-nova-conductor.service enabled
openstack-nova-consoleauth.service enabled
openstack-nova-novncproxy.service enabled
openstack-nova-scheduler.service enabled
至此,在控制節(jié)點(diǎn)安裝nova計(jì)算服務(wù)就完成