iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 14
0

主題

OpenStack Heat

前言

當系統一大要管理的東西就會隨即增加,這時候就必須要一個軟件來管理全部的套件API,他可以透過模板化的方式進行部屬,這樣一來安裝就可以省下許多時間來去建立虛擬機,或是由其他軟體來創建虛擬機。

主要內容

主要組件

  • Heat : 可以作為一個Heat CLI來連結Heat-api,但往往最後都用Heat-api直接進行使用
  • Heat-api : 可以連接OpenStack和Heat連結的中間層
  • Heat-api-cfn : 可以連結AWS CloudFormation間階層
  • Heat-api-cloudwatch : 類似CloudWatch得服務API
  • Heat-engine : Heat核心服務

部屬資料庫

1.登入mysql

sudo mysql -u root -p

2.建立資料表

CREATE DATABASE heat;

3.設定安全性

GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' IDENTIFIED BY 'HEAT資料庫密碼';
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' IDENTIFIED BY 'HEAT資料庫密碼';

建立使用者

1.登入admin管理者指令模式
2.建立使用者

openstack user create --domain default --password-prompt heat

3.將使用者加入服務群組中

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

4.建立服務

openstack service create --name heat --description "Orchestration" orchestration
openstack service create --name heat-cfn --description "Orchestration"  cloudformation

5.開啟服務port

openstack endpoint create --region RegionOne orchestration \
public http://controller:8004/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne orchestration \
internal http://controller:8004/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne orchestration \
admin http://controller:8004/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne cloudformation \
public http://controller:8000/v1
openstack endpoint create --region RegionOne cloudformation \
internal http://controller:8000/v1
openstack endpoint create --region RegionOne cloudformation \
admin http://controller:8000/v1

6.新增一個domin

openstack domain create --description "Stack projects and users" heat

7.建立使用者並加入剛剛的群組

openstack user create --domain heat --password-prompt heat_domain_admin

8.將建立的使用者加入domin中

openstack role add --domain heat --user-domain heat --user heat_domain_admin admin

9.建立規則

openstack role create heat_stack_owner

10.將demo使用者加進新增的服務中

openstack role add --project demo --user demo heat_stack_owner

11.建立heat_stack_user規則

openstack role create heat_stack_user

安裝及設定套件

1.安裝套件

sudo apt-get install heat-api heat-api-cfn heat-engine -y

2.編輯Heat.conf設定檔

sudo vim /etc/heat/heat.conf
[DEFAULT]
#訊息服務
rpc_backend = rabbit
#設定metadata
heat_metadata_server_url = http://controller:8000
heat_waitcondition_server_url = http://controller:8000/v1/waitcondition
#設定stack domin加上安全認證
stack_domain_admin = heat_domain_admin
stack_domain_admin_password = HEAT_DOMAIN密碼
stack_user_domain_name = heat

[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = AMQP密碼

[database]
connection = mysql+pymysql://heat:HEAT資料庫密碼@controller/heat

[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 = heat
password = HEAT密碼

[trustee]
auth_type = password
auth_url = http://controller:35357
username = heat
password = HEAT密碼
user_domain_name = default

[clients_keystone]
auth_uri = http://controller:35357

[ec2authtoken]
auth_uri = http://controller:5000

3.設定檔同步到資料庫

sudo su -s /bin/sh -c "heat-manage db_sync" heat

4.重啟服務

sudo service heat-api restart
sudo service heat-api-cfn restart
sudo service heat-engine restart

5.驗證服務

openstack orchestration service list

後記

之後會再講到Mangum的container的服務,他也是運用heat進行編配服務的,如果後期服務壯大之後就需要用它來管理其他服務。
希望大家可以在這一個月中讀到非常多的應用技巧,那如果有問題可以以私訊我的方式是使用問題回復,我會盡可能地回答問題,那會在後面統一做回覆,或者如果有想知道的相關的應用也可以提出討論喔。

參考資料

OpenStack Doc


上一篇
OpenStack Manila
下一篇
OpenStack Ceilometer
系列文
OpenStack-多到數不清的套件改36

尚未有邦友留言

立即登入留言