CentOS7安裝OpenStack-04.安裝Nova計算服務


nova相關端口:

api:8774
metadata:8775
novncproxy:6080

4.1.在控制節點安裝nova計算服務 

1)創建nova相關數據庫

# 登錄數據庫
mysql -u root -p

# 創建用戶並授權
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
CREATE DATABASE placement;

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

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

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

GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'placement';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement';

# 刷新權限
flush privileges;

4.2.在keystone上面注冊nova服務

1)在keystone上創建nova用戶

openstack user create --domain default --password=nova nova
openstack user list

2)在keystone上將nova用戶配置為admin角色並添加進service項目

# 以下命令無輸出

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

3)創建nova計算服務的實體

openstack service create --name nova --description "OpenStack Compute" compute
openstack service list

4)創建計算服務的API端點(endpoint)

# 計算服務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 endpoint list

5)這個版本的nova增加了placement項目

# 同樣,創建並注冊該項目的服務證書

openstack user create --domain default --password=placement placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement

# 創建placement項目的endpoint(API端口)

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
openstack endpoint list

4.3.在控制節點安裝nova相關服務 

1)安裝nova相關軟件包

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

2)快速修改nova配置

openstack-config --set  /etc/nova/nova.conf DEFAULT enabled_apis  osapi_compute,metadata
openstack-config --set  /etc/nova/nova.conf DEFAULT my_ip 192.168.182.143
openstack-config --set  /etc/nova/nova.conf DEFAULT use_neutron  true 
openstack-config --set  /etc/nova/nova.conf DEFAULT firewall_driver  nova.virt.firewall.NoopFirewallDriver
openstack-config --set  /etc/nova/nova.conf DEFAULT transport_url  rabbit://openstack:openstack@controller
openstack-config --set  /etc/nova/nova.conf api_database connection  mysql+pymysql://nova:nova@controller/nova_api
openstack-config --set  /etc/nova/nova.conf database connection  mysql+pymysql://nova:nova@controller/nova
openstack-config --set  /etc/nova/nova.conf placement_database connection  mysql+pymysql://placement:placement@controller/placement
openstack-config --set  /etc/nova/nova.conf api auth_strategy  keystone 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken auth_url  http://controller:5000/v3
openstack-config --set  /etc/nova/nova.conf keystone_authtoken memcached_servers  controller:11211
openstack-config --set  /etc/nova/nova.conf keystone_authtoken auth_type  password
openstack-config --set  /etc/nova/nova.conf keystone_authtoken project_domain_name  default 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken user_domain_name  default
openstack-config --set  /etc/nova/nova.conf keystone_authtoken project_name  service 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken username  nova 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken password  nova

openstack-config --set  /etc/nova/nova.conf vnc vncserver_listen 192.168.182.143
openstack-config --set  /etc/nova/nova.conf vnc vncserver_proxyclient_address 192.168.182.143
openstack-config --set  /etc/nova/nova.conf vnc vnc_enabled True
openstack-config --set  /etc/nova/nova.conf vnc novncproxy_host 0.0.0.0
openstack-config --set  /etc/nova/nova.conf vnc novncproxy_port 6080
openstack-config --set  /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.182.143:6080/vnc_auto.html

openstack-config --set  /etc/nova/nova.conf glance api_servers  http://controller:9292
openstack-config --set  /etc/nova/nova.conf oslo_concurrency lock_path  /var/lib/nova/tmp 
openstack-config --set  /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set  /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set  /etc/nova/nova.conf placement project_name service
openstack-config --set  /etc/nova/nova.conf placement auth_type password
openstack-config --set  /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set  /etc/nova/nova.conf placement auth_url http://controller:5000/v3
openstack-config --set  /etc/nova/nova.conf placement username placement
openstack-config --set  /etc/nova/nova.conf placement password placement
openstack-config --set  /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300

# 默認情況下,計算服務使用內置的防火牆服務。由於網絡服務包含了防火牆服務,必須使用``nova.virt.firewall.NoopFirewallDriver``防火牆服務來禁用掉計算服務內置的防火牆服務

# 檢查生效的nova配置

egrep -v "^#|^$" /etc/nova/nova.conf

3)修改nova的虛擬主機配置文件(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服務

systemctl restart httpd
systemctl status httpd 

# 至此,nova計算服務的軟件包安裝完成

4.4.同步nova數據(注意同步順序)

1)初始化nova-api和placement數據庫

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

# 驗證數據庫

mysql -h192.168.182.143 -unova -pnova -e "use nova_api;show tables;"
mysql -h192.168.182.143 -uplacement -pplacement -e "use placement;show tables;"

2)初始化nova_cell0和nova數據庫

# 注冊cell0數據庫

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

# 創建cell1單元

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

# 初始化nova數據庫

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

# 檢查確認cell0和cell1注冊成功

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

# 驗證數據庫

mysql -h192.168.182.143 -unova -pnova -e "use nova_cell0;show tables;"
mysql -h192.168.182.143 -unova -pnova -e "use nova;show tables;"

5)檢查確認cell0和cell1注冊成功

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

# 返回的數據存儲在nova_api數據庫的cell_mappings表中

4.5.啟動nova服務

1)啟動nova服務並設置為開機自啟動

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

systemctl status openstack-nova-api.service openstack-nova-consoleauth.service \
  openstack-nova-scheduler.service openstack-nova-conductor.service \
  openstack-nova-novncproxy.service

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

systemctl list-unit-files |grep openstack-nova* |grep enabled

~~~至此,在控制節點安裝nova計算服務就完成了~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM