Centos7 安裝kilo-5 controller(nova)

nova的結構體系

這裏寫圖片描述

Nova主要有API、Compute、Conductor、Schedule四個核心組成,他們之間通過AMQP消息隊列進行通信。

創建虛擬機爲例
1、首先用戶執行novaclient提供的用於創建虛擬機的命令
2、API服務監聽到novaclient發送的HTTP請求餅子額將它轉換成AMQP消息,通過消息隊列(Queue)調用Conductor服務
3、Conductor接收到消息隊列,做一些準備工作(例如彙總虛擬機參數等),再通過消息隊列告訴Scheduler。
4、Scheduler選擇一個滿足虛擬機創建要求的主機,通過消息隊列(Queue)提供給Conductor
5、conductor根據Scheduler提供的主機信息,要求Computer服務創建虛擬機。

配置nova數據庫

mysql -uroot -pPASS -e "CREATE DATABASE nova;"
mysql -uroot -pPASS -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';"
mysql -uroot -pPASS -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';"

創建user、service,endpoint

  • source 變量
source admin-openrc.sh
  • 創建 nova user
 openstack user create --password-prompt nova
User Password:
Repeat User Password:
+----------+----------------------------------+
| Field    | Value                            |
+----------+----------------------------------+
| email    | None                             |
| enabled  | True                             |
| id       | 53385e00e2054a4aac343756e730359e |
| name     | nova                             |
| username | nova                             |
+----------+----------------------------------+
  • 給予nova user admin 角色
 openstack role add --project service --user nova admin
 +-------+----------------------------------+
| Field | Value                            |
+-------+----------------------------------+
| id    | 53e5d390efe84b948ba5718f116b4861 |
| name  | admin                            |
+-------+----------------------------------+
  • 創建nova service
 openstack service create --name nova \
--description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 7aecce6f02c2420a94daf3f1c6feb601 |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+
  • 創建 nova 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

+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| adminurl     | http://controller:8774/v2/%(tenant_id)s |
| id           | fac39d3cad58430889a59e10e50fed34        |
| internalurl  | http://controller:8774/v2/%(tenant_id)s |
| publicurl    | http://controller:8774/v2/%(tenant_id)s |
| region       | RegionOne                               |
| service_id   | 7aecce6f02c2420a94daf3f1c6feb601        |
| service_name | nova                                    |
| service_type | compute                                 |
+--------------+-----------------------------------------+

安裝nova

yum  -y install openstack-nova-api openstack-nova-cert openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient

配置nova

  • nova.conf
openstack-config --set /etc/nova/nova.conf database connection mysql://nova:nova@controller/nova

openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit

openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password RABBIT_PASS

openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_plugin password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_id default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_id 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 DEFAULT my_ip 10.0.0.11
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 10.0.0.11
openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 10.0.0.11

openstack-config --set /etc/nova/nova.conf glance host controller
openstack-config --set /etc/nova/nova.conf lock_path /var/lib/nova/tmp

openstack-config --set /etc/nova/nova.conf DEFAULT verbose True 
  • 初始化nova數據庫
 su -s /bin/sh -c "nova-manage db sync" nova
  • 啓動服務並設置開機啓動
systemctl enable openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl restart openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
發佈了70 篇原創文章 · 獲贊 5 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章