在Keystoen v2的Mitaka上部署HEAT服務(wù)

背景

這段時間總是被各種申請?zhí)摂M機的流程整得昏頭黑暗,有時候來一批虛擬機申請铡买,總還是要頻繁的去重復一些操作框都,例如創(chuàng)建虛擬機搬素、數(shù)據(jù)卷、然后再掛載卷等等魏保。

時間久了總覺得時間被浪費在無意義的事情上不說熬尺,數(shù)量多了還容易出錯。其實很早之前我就在關(guān)注HEAT項目谓罗,一直沒有去研究粱哼。項目剛上線的時候,考慮到時間和學習成本就沒上HEAT檩咱,現(xiàn)在想想自己眼光還是比較局限揭措。

最近聽說業(yè)內(nèi)的一個傳聞,居然有公司為招聘HEAT工程師刻蚯,推薦費居然高達2W多绊含。這件事讓我感覺挺后悔,還是應該找機會學下芦倒。畢竟現(xiàn)在系統(tǒng)已經(jīng)相對比較穩(wěn)定艺挪,管理成本逐漸變成首要的解決問題不翩。

Heat 是OpenStack項目下的一個模板編排服務(wù)兵扬。其中包含heat-apiheat-engine兩個重要的服務(wù)。簡單來說heat-api服務(wù)接受用戶提交的編排模板口蝠,驗證通過后通過AMQP異步給heat-engine處理器钟。而heat-engine就具體與OpenStack的各個服務(wù)交互。

由于heat正好處于對openstack資源的抽象層妙蔗,所以現(xiàn)在一些新的項目例如Magnum就能更方便的接入進來傲霸。

heat在OS中的位置

操作

簡單介紹下環(huán)境,由于我是在開發(fā)環(huán)境的AllInOne里創(chuàng)建的眉反,所以相對來說簡單點昙啄,后面會根據(jù)情況推到線上使用。

創(chuàng)建數(shù)據(jù)庫

> CREATE DATABASE heat;

> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost'  IDENTIFIED BY 'magine';
> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%'   IDENTIFIED BY 'magine';

安裝包

$ yum install openstack-heat-api openstack-heat-api-cfn openstack-heat-engine
$ yum install python-barbicanclient python-magnumclient python-manilaclient python-mistralclient python-senlinclient python-zaqarclient

Keystoner認證與服務(wù)

$ openstack user create --password-prompt heat    #這里設(shè)置heat的密碼為magine
$ openstack role add --project services --user heat admin
$ openstack role create heat_stack_owner
$ openstack role create heat_stack_user
$ openstack service create --name heat  --description "Orchestration" orchestration
$ openstack service create --name heat-cfn  --description "Orchestration" cloudformation
$ openstack endpoint create  --publicurl http://192.168.68.58:8004/v1/%\(tenant_id\)s  --internalurl http://192.168.68.58:8004/v1/%\(tenant_id\)s  --adminurl http://192.168.68.58:8004/v1/%\(tenant_id\)s  --region RegionOne  orchestration
$ openstack endpoint create  --publicurl http://192.168.68.58:8000/v1  --internalurl http://192.168.68.58:8000/v1  --adminurl http://192.168.68.58:8000/v1  --region RegionOne  cloudformation

Heat配置文件

[DEFAULT]
heat_metadata_server_url = http://192.168.68.58:8000
heat_waitcondition_server_url =  http://192.168.68.58:8000/v1/waitcondition
stack_user_domain_name = heat_user_domain
stack_domain_admin = heat_domain_admin
stack_domain_admin_password = magine
rpc_backend = rabbit
[database]
connection = mysql://heat:magine@192.168.68.58/heat
[keystone_authtoken]
auth_uri = http://192.168.68.58:5000/v2.0
identity_uri = http://192.168.68.58:35357
admin_tenant_name = services
admin_user = heat
admin_password = magine
[ec2authtoken]
auth_uri = http://192.168.68.58:5000/v2.0
[oslo_messaging_rabbit]
rabbit_host = 192.168.68.58
rabbit_port = 5672
rabbit_userid = guest
rabbit_password = guest
[trustee]
auth_type = password
auth_url = http://192.168.68.58:35357
username = heat
password = magine

注冊服務(wù)

heat-keystone-setup-domain \
--stack-user-domain-name heat_user_domain \
--stack-domain-admin heat_domain_admin \
--stack-domain-admin-password magine

初始化數(shù)據(jù)庫

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

啟動服務(wù)

$ systemctl enable openstack-heat-api.service  openstack-heat-api-cfn.service openstack-heat-engine.service
$ systemctl start openstack-heat-api.service openstack-heat-api-cfn.service openstack-heat-engine.service

驗證

$ openstack orchestration service list

+--------------------------+-------------+--------------------------------------+--------------------------+--------+----------------------------+--------+
| hostname                 | binary      | engine_id                            | host                     | topic  | updated_at                 | status |
+--------------------------+-------------+--------------------------------------+--------------------------+--------+----------------------------+--------+
| l-192168068058-mitaka.st | heat-engine | 163d6004-18e1-4689-a028-8dd33427bd93 | l-192168068058-mitaka.st | engine | 2017-04-20T09:20:08.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | d50b4666-2853-4697-857d-a68e631a7029 | l-192168068058-mitaka.st | engine | 2017-04-20T09:19:54.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | d29f741e-c571-49bf-894e-185635a07424 | l-192168068058-mitaka.st | engine | 2017-04-20T09:20:08.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | 5007fcb8-fca4-4075-bd21-c3249747ca0b | l-192168068058-mitaka.st | engine | 2017-04-20T09:20:08.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | 0c484b96-70e5-491a-b19e-e9f27d598c40 | l-192168068058-mitaka.st | engine | 2017-04-20T09:19:54.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | e9575f3f-89de-449b-a975-16d8ac166275 | l-192168068058-mitaka.st | engine | 2017-04-20T09:19:54.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | 327c3e1c-6bcb-490f-bc46-18693bb404ac | l-192168068058-mitaka.st | engine | 2017-04-20T09:20:08.000000 | up     |
| l-192168068058-mitaka.st | heat-engine | 4a574d30-44dd-4a12-933a-3fd219f0420f | l-192168068058-mitaka.st | engine | 2017-04-20T09:19:54.000000 | up     |
+--------------------------+-------------+--------------------------------------+--------------------------------+--------+----------------------+--------+

測試

這里簡單測試下寸五,用例就用官網(wǎng)提供的編排文件梳凛。

demo.yaml

heat_template_version: 2015-10-15
description: Launch a basic instance with Debian image using the
             ``m1.mediumtiny`` flavor``  one network.

parameters:
  NetID:
    type: string
    description: Network ID to use for the instance.

resources:
  server:
    type: OS::Nova::Server
    properties:
      image: Debian-Wheezy-7.11
      flavor: m1.medium
      networks:
      - network: { get_param: NetID }

outputs:
  instance_name:
    description: Name of the instance.
    value: { get_attr: [ server, name ] }
  instance_ip:
    description: IP address of the instance.
    value: { get_attr: [ server, first_address ] }

stack

$ openstack network list
+--------------------------------------+-----------+--------------------------------------+
| ID                                   | Name      | Subnets                              |
+--------------------------------------+-----------+--------------------------------------+
| 163df3b0-13f2-4f2e-8401-e82088e8dc07 | privite01 | 06284618-c1be-497a-80a6-40d143eaacac |
+--------------------------------------+-----------+--------------------------------------+

$ export NET_ID=$(openstack network list | awk '/ privite01 / { print $2 }')

#創(chuàng)建stack
$ openstack stack create -t demo.yaml --parameter "NetID=$NET_ID" stack
+---------------------+-------------------------------------------------------------------------------------+
| Field               | Value                                                                               |
+---------------------+-------------------------------------------------------------------------------------+
| id                  | 5c12fb4d-5a2e-47e9-939a-997fdfec90af                                                |
| stack_name          | stack                                                                               |
| description         | Launch a basic instance with De image using the ``m1.medium`` flavor``one network.  |
| creation_time       | 2017-04-20T08:12:34                                                                 |
| updated_time        | None                                                                                |
| stack_status        | CREATE_IN_PROGRESS                                                                  |
| stack_status_reason | Stack CREATE started                                                                |
+---------------------+-------------------------------------------------------------------------------------+

#查看創(chuàng)建的虛擬機
$ openstack server list
+--------------------------------------+---------------------------+--------+--------------------------+
| ID                                   | Name                      | Status | Networks                 |
+--------------------------------------+---------------------------+--------+--------------------------+
| 44bbb2b4-9df9-4cef-b3f0-bd032d718ee5 | stack-server-dmasib6fne2x | ACTIVE | privite01=192.168.17.252 |
+--------------------------------------+---------------------------+--------+--------------------------+

#刪除stack
$ openstack stack delete --yes stack
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梳杏,隨后出現(xiàn)的幾起案子韧拒,更是在濱河造成了極大的恐慌淹接,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叛溢,死亡現(xiàn)場離奇詭異塑悼,居然都是意外死亡,警方通過查閱死者的電腦和手機楷掉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門厢蒜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烹植,你說我怎么就攤上這事郭怪。” “怎么了刊橘?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵鄙才,是天一觀的道長。 經(jīng)常有香客問我促绵,道長攒庵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任败晴,我火速辦了婚禮浓冒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尖坤。我一直安慰自己稳懒,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布慢味。 她就那樣靜靜地躺著场梆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纯路。 梳的紋絲不亂的頭發(fā)上或油,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音驰唬,去河邊找鬼顶岸。 笑死,一個胖子當著我的面吹牛叫编,可吹牛的內(nèi)容都是我干的辖佣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼搓逾,長吁一口氣:“原來是場噩夢啊……” “哼卷谈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恃逻,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤雏搂,失蹤者是張志新(化名)和其女友劉穎藕施,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凸郑,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡裳食,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芙沥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诲祸。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖而昨,靈堂內(nèi)的尸體忽然破棺而出救氯,到底是詐尸還是另有隱情,我是刑警寧澤歌憨,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布着憨,位于F島的核電站,受9級特大地震影響务嫡,放射性物質(zhì)發(fā)生泄漏甲抖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一心铃、第九天 我趴在偏房一處隱蔽的房頂上張望准谚。 院中可真熱鬧,春花似錦去扣、人聲如沸柱衔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唆铐。三九已至,卻和暖如春羽氮,著一層夾襖步出監(jiān)牢的瞬間或链,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工档押, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祈纯。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓令宿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腕窥。 傳聞我的和親對象是個殘疾皇子粒没,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個操作系統(tǒng),...
    sgt_tiger閱讀 12,932評論 4 72
  • OpenStack簡介 OpenStack版本發(fā)展 OpenStack版本系列字母以A~Z命名簇爆,從2010年發(fā)布的...
    糯米藕閱讀 5,036評論 0 17
  • Why Heat 關(guān)于Heat是什么東西癞松,我已經(jīng)在前面的文章《在Keystoen v2的Mitaka上部署HEAT...
    魔哈Moha閱讀 4,118評論 4 5
  • 本文遵循「知識共享許可協(xié)議 CC-BY-NC-SA 4.0 International」爽撒,未經(jīng)作者書面許可,不允許...
    laiwei閱讀 11,801評論 1 24
  • 看過一段話: 你把性格交給星座, 把努力交給雞湯枫甲, 把運氣交給鯉魚源武, 然后,對自己說想幻, 聽過許多道理粱栖,卻依然過不好...
    一個苞谷閱讀 1,026評論 1 2