More Related Content
PDF
PDF
PDF
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub... PDF
PDF
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」 PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」 PPTX
PDF
What's hot
PDF
PDF
大規模環境のOpenStackアップグレードの考え方と実施のコツ PDF
PDF
PDF
PPTX
Azure API Management 俺的マニュアル PDF
PDF
試して覚えるPacemaker入門 『リソース設定編』 PPTX
PPT
コンシューマゲーム開発におけるHansoftの活用事例 PDF
PPTX
PPTX
PPTX
plotnetcfg入門 | Introduction to plotnetcfg PPTX
PDF
PPTX
PPTX
NGINX Back to Basics Part 3: Security (Japanese Version) PDF
PPTX
Similar to クラウドオーケストレーション「OpenStack Heat」に迫る!
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編) PDF
OpenStackをさらに”使う”技術 概要と基礎操作 PPTX
OpenStackで始めるクラウド環境構築入門 Havana&DevStack編 PDF
ゲームのインフラをAwsで実戦tips全て見せます PDF
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック PDF
PDF
Apache CloudStack 4.0 インストール(ver0.5) PPTX
OpenStack本番環境の作り方 - Interop 2016 PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2 PDF
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編 PPTX
PDF
フルオープンソースでここまで出来る。OpenStackの構築と運用 PDF
PDF
AWS/Openstack integration with openQRM PDF
20140612_Docker上でCloudStackを動かしてみる!! PDF
Apache cloudstack4.0インストール PPT
PDF
【dots. IT勉強会】開発環境のDocker化 PDF
PPTX
作られては消えていく泡のように儚いクラスタの運用話 More from Etsuji Nakai
PDF
PDF
TensorFlowによるニューラルネットワーク入門 PDF
Googleのインフラ技術から考える理想のDevOps PDF
TensorFlowプログラミングと分類アルゴリズムの基礎 PDF
PDF
Googleのインフラ技術に見る基盤標準化とDevOpsの真実 PDF
Machine Learning Basics for Web Application Developers PDF
Deep Q-Network for beginners PDF
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜 PDF
Using Kubernetes on Google Container Engine PDF
PDF
DevOpsにおける組織に固有の事情を どのように整理するべきか PDF
PDF
Your first TensorFlow programming with Jupyter PDF
Introducton to Convolutional Nerural Network with TensorFlow PDF
Googleにおける機械学習の活用とクラウドサービス PDF
A Brief History of My English Learning PDF
PDF
PDF
クラウドオーケストレーション「OpenStack Heat」に迫る!
- 1.
- 2.
クラウドオーケストレーション「OpenStack Heat」に迫る!
自己紹介
中井悦司(なかいえつじ)
–Twitter @enakai00
日々の仕事
– Senior Solution Architect and
「Linux独習書の新定番」
書きました!
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
読者の声より ――
「今はインターネット上に情報が溢れているけど、質の高い入門書が少なく
なっているのは不幸なことだと思う。そんな中、この本はすごくいい」
「平易な言葉でありながら、決して足りなくはない。慎重に選ばれています。
脳みそに染みこんで来ます」
Open Cloud Campus
- 3.
- 4.
- 5.
クラウドオーケストレーション「OpenStack Heat」に迫る!
デプロイ自動化の現状
クラウド/仮想化環境での自動化3大パターン
1.仮想アプライアンス(ゴールデンイメージ)方式
• アプリケーション導入済みの環境をマシンイメージ化して利用。
• 巨大なテンプレートファイルの保守管理、インフラ間の可搬性が
課題。
2. JEOS(Just Enough Operating System)方式
仮想化環境でよく
利用される方法
• 最小限のOS環境をマシンイメージ化して利用。アプリケーション
の導入・設定は、別途、ツールで自動化。
3. 自動インストール方式
クラウドで主流に
なりつつある手法
• OSのインストールからアプリケーションの導入・設定まで、すべ
ての作業を自動化して適用。
Open Cloud Campus
- 6.
クラウドオーケストレーション「OpenStack Heat」に迫る!
カスタマイズ・スクリプト(User Data)による自動化
マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与え
ると任意のテキストをメタデータとしてゲストOSに受け渡すことができます。
Cloud-Initは、カスタマイズ・スクリプトを解釈して、自動化を実現します。
– 下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。
– この他にもCloud-Init独自の構文で、処理内容を指示することができます。
http://cloudinit.readthedocs.org/en/latest/
Open Cloud Campus
- 7.
クラウドオーケストレーション「OpenStack Heat」に迫る!
Github/Puppetと連携するカスタマイズ・スクリプトの例
Githubとは?
–Gitは、プログラムソースコードの分散バージョン管理システム。インターネット上に
コードリポジトリを作成して無料で利用できるサービス「Github」の登場により、利用
者が増加しました。
– 下図のカスタマイズ・スクリプトでは、GithubにアップロードしておいたPuppet間に不
フェスとをダウンロードして適用しています。
Githubからマニフェストを取得して適用するスクリプトの例
#!/bin/sh -x
yum -y install puppet git
GitRepository=https://github.com/enakai00/pgsql_puppet
ConfigTag=f19
RepoName=${GitRepository##*/}
RepoName=${RepoName%.git}
mkdir -p /tmp/gittmp
cd /tmp/gittmp
git clone $GitRepository
cd $RepoName
git checkout $ConfigTag
export FACTER_manifest_dir="/tmp/gittmp/$RepoName"
puppet apply main.pp
Open Cloud Campus
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
クラウドオーケストレーション「OpenStack Heat」に迫る!
デモンストレーション
# heatstack-create -f dengonban.template -P "KeyName=mykey" dengonban
+--------------------------------------+------------+--------------------+----------------------+
| id
| stack_name | stack_status
| creation_time
|
+--------------------------------------+------------+--------------------+----------------------+
| 642c1678-8966-461c-bbfe-c75c17b75e95 | dengonban | CREATE_IN_PROGRESS | 2014-02-06T07:01:16Z |
+--------------------------------------+------------+--------------------+----------------------+
# heat stack-list
+--------------------------------------+------------+-----------------+----------------------+
| id
| stack_name | stack_status
| creation_time
|
+--------------------------------------+------------+-----------------+----------------------+
| 642c1678-8966-461c-bbfe-c75c17b75e95 | dengonban | CREATE_COMPLETE | 2014-02-06T07:01:16Z |
+--------------------------------------+------------+-----------------+----------------------+
# nova list
+--------------------------------------+--------------------------------------------++------------------------------------------+
| ID
| Name
|| Networks
|
+--------------------------------------+--------------------------------------------++------------------------------------------+
| c7b48220-ea3c-4053-b699-d3bed8cde657 | dengonban-PgSQLDatabaseServer-wptgqlxdmbt6 || private01=192.168.101.3
|
| 5896b645-a398-4827-9d76-306f7ec9c418 | dengonban-WebServer-s3n5y4wshlq2
|| private01=192.168.101.4, 192.168.199.105 |
+--------------------------------------+--------------------------------------------++------------------------------------------+
Open Cloud Campus
- 14.
クラウドオーケストレーション「OpenStack Heat」に迫る!
テンプレートの概要 (1/2)
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description" : "A Database instance running a local PostgreSQL server",
・・・
"Resources" : {
"PgSQLDatabaseServer": {
"Type": "AWS::EC2::Instance",
"Properties": {
"SubnetId"
: "013cd465-7e75-4edc-ae83-6476fcf9178b",
"ImageId"
: { "Ref" : "ImageName" },
"InstanceType"
: { "Ref" : "InstanceType" },
"KeyName"
: { "Ref" : "KeyName" },
"UserData"
: { "Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash -xn",
・・・
VM#1のカスタマイズスクリプト
"# All is well so signal successn",
"/opt/aws/bin/cfn-signal -e 0 -r "PostgreSQL Database setup complete" '",
{ "Ref" : "PgSQLWaitHandle" }, "'n"
]]}}
カスタマイズスクリプトの中から、
}
「WaitHandle」への完了通知コマンドを実行
},
"PgSQLWaitHandle" : {
"Type" : "AWS::CloudFormation::WaitConditionHandle"
},
"PgSQLWaitCondition" : {
"Type" : "AWS::CloudFormation::WaitCondition",
"DependsOn" : "PgSQLDatabaseServer", "Properties" : {
"Handle" : {"Ref" : "PgSQLWaitHandle"},
"Timeout" : "6000"
}
},
WaitHandleが通知を受けるまで
待機するダミーリソース
Open Cloud Campus
- 15.
クラウドオーケストレーション「OpenStack Heat」に迫る!
テンプレートの概要 (1/2)
"WebServer":{
"Type": "AWS::EC2::Instance",
"DependsOn": "PgSQLWaitCondition",
WaitConditionが完了してから構築開始
"Properties": {
"SubnetId"
: "013cd465-7e75-4edc-ae83-6476fcf9178b",
VM#1のプライベートIPに置換される
"ImageId"
: { "Ref" : "ImageName" },
"InstanceType"
: { "Ref" : "InstanceType" },
"KeyName"
: { "Ref" : "KeyName" },
VM#2のカスタマイズスクリプト
"UserData"
: { "Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash -xn",
"export DB_IP=", { "Fn::GetAtt" : [ "PgSQLDatabaseServer", "PublicIp" ] }, "n",
・・・
"sed -i "s/ username:.*/ username: rails/" /root/rails/dengonban/config/database.ymln",
"sed -i "s/ password:.*/ password: pas4railsn host: $DB_IP/" /root/rails/dengonban/config/database.ymln",
・・・
]]}}
}
},
}
}
"WebServerIPAssoc" : {
"Type" : "AWS::EC2::EIPAssociation",
"Properties" : {
"InstanceId" : { "Ref" : "WebServer" },
"EIP" : "192.168.199.105"
}
}
Open Cloud Campus
- 16.
- 17.
クラウドオーケストレーション「OpenStack Heat」に迫る!
Heatの今後の展開
Heatは、構築済みスタックを後から構成変更することもできます。
–テンプレートを修正して、Heatエンジンに再投入すると差分を検出して、追加の構築/
削除処理を実施します。
これを利用するとオートスケールを実現することができます。
– VMの負荷に応じてテンプレートにVMを追加/削除して、HeatからVMを追加構築/削除
します。
– 開発コミュニティでは、Ceilometerと連携する方向での実装が検討されています。
Baremetal Deployment(Ironic)を利用して、Heatからコンピュートノードを
追加構築するような試みもあります。
– 参考:Triple O / Tuskar
– https://wiki.openstack.org/wiki/TripleO/Tuskar
Open Cloud Campus
- 18.
- 19.
クラウドオーケストレーション「OpenStack Heat」に迫る!
参考資料
本日のデモ環境の構築手順
–RDO(Havana)でHeatを試す
– http://d.hatena.ne.jp/enakai00/20140205/1391604332
HeatとCloud-Initの連携の詳細を紹介
– OpenStack HeatがCloud-Init / cfntoolsと連携する様子を覗きこむ
– http://d.hatena.ne.jp/enakai00/20131226/1388021566
Heatテンプレートは、AWS CloudFormation互換なので、CloudFormationの知識も有用
– CloudFormation 詳細 -ほぼ週刊AWSマイスターシリーズ第6回– http://www.slideshare.net/kentamagawa/cloudformation-aws5
PuppetとGitHubの連携は、日経Linux連載記事(2013年9月号〜2014年2月号)で解説
Open Cloud Campus
- 20.