More Related Content
More from VIOPS Virtualized Infrastructure Operators group ARCHIVES (20)
VIOPS08: System Automation Overview
- 2. Open Cloud Campus
System Automation Overview
自己紹介
中井悦司(なかいえつじ)
– Twitter @enakai00
日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
好評発売中
- 4. Open Cloud Campus
System Automation Overview
Scalable Lotus Domino on IBM RS/6000SP
ftp://ftp.software.ibm.com/rs6000/technology/notesSP.ps
HPCクラスタにLotus Domino
を入れてスケーラブルな
グループウェア環境を作る
富豪ソリューション
BOOTP的な自動インストール
とdsh的なパラレルコマンド
で運用
変更作業は「一般社員ノード」
で試して、「VIPノード」は後
にまわすなどの現場ノウハウ
SW RAIDなのでRAID再構成作
業はちょっとドキドキ
第三者著作物のため
配布いたしません。
第三者著作物のため
配布いたしません。
- 5. Open Cloud Campus
System Automation Overview
クラウドの自動化における問題意識
クラウドコンピューティングの実現により、さまざまな「インフ
ラの自動化」が可能になりました。
今後、一般企業の業務アプリケーションをクラウドで利用する場
合、どのような観点で、どのような処理を自動化することが必要
なのでしょうか?
– 既存の手作業をそのまま自動化するのでは、「自動化のための自動
化」に陥る危険性はないでしょうか?
–「アプリケーション開発、システム運用プロセスの変革/改善と一体
化した自動化の適用」を研究するべき時期がきているのではないで
しょうか?
いけてる自動化? いけてない自動化?
- 8. Open Cloud Campus
System Automation Overview
自動化における管理対象
環境設定(Config)
アプリケーションプログラム
インフラ環境
データ
OS・アプリケーションの
構成管理
アプリケーションの
導入管理
物理サーバ/仮想マシン構成
OSイメージなどの管理
クラウド(仮想化)環境では
どの範囲をイメージ化するかが
1つのポイント
- 9. Open Cloud Campus
System Automation Overview
デプロイ自動化の現状
クラウド/仮想化環境での自動化3大パターン
1. 仮想アプライアンス方式
• アプリケーション導入済みの環境をマシンイメージ化して利用。
• 巨大なテンプレートファイルの保守管理、インフラ間の可搬性が
課題。
2. JEOS(Just Enough OS)方式
• 最小限のOS環境をマシンイメージ化して利用。アプリケーション
の導入・設定は、別途、ツールで自動化。
3. 自動インストール方式
• OSのインストールからアプリケーションの導入・設定まで、すべ
ての作業を自動化して適用。
個人的にはこれが
ベストと予想しています
- 10. Open Cloud Campus
System Automation Overview
OSインストール/イメージ作成の自動化ツール
Kickstart
– RHELのインストーラ(Anaconda)の一機能。
– インストール時の設定項目を書いたテキストファイル(KickStartファ
イル)を利用して、RHELのインストールを自動化
– インストール後に指定のスクリプト(Postスクリプト)を実行するこ
とができる。
Oz
– 仮想マシンイメージの作成に特化したOSインストールツール
– OpenStack用イメージ作成のデファクトツール(?)
– https://github.com/clalancette/oz/wiki
Aeolus Conductor
– Ozで作成したイメージをVMware/RHEV/AWSなど、指定環境のマシ
ンイメージに変換して配信するツール
– http://slidesha.re/13BF3LW
- 11. Open Cloud Campus
System Automation Overview
アプリケーション導入、システム設定の自動化ツール
Puppet/Chef
– パッケージ、サービス、
ファイル、ユーザ/グループ
など、規定の「リソース」
について、指定の状態に自
動構成するツール
–「希望する状態」を指定す
ると、現状からその状態に
変更するコマンドをツール
が自動判別して実行
– リソース間の依存関係を指
定することで、設定の順序
を制御可能
package { 'httpd':
ensure => latest, # 最新バージョンを導入
}
service { 'httpd':
ensure => running, # サービスを起動
enable => true, # サーバー起動時の自動起動を設定
hasrestart => true, # 「service xxxx restart」が利用可能
hasstatus => true, # 「service xxxx status」が利用可能
}
file { '/var/www/html/index.html':
owner => 'apache', # ファイルオーナー
group => 'apache', # ファイルグループ
mode => '0600', # アクセス権
content => '<h1>Hello, World!</h1>', # ファイルの内容
}
exec { 'fw-http':
path => '/usr/sbin', # コマンドのパス
command => 'lokkit -s http', # 実行するコマンド
}
Package['httpd']
-> File['/var/www/html/index.html']
-> Service['httpd']
-> Exec['fw-http']
リソースの依存関係
httpdを導入するPuppetマニフェストの例
- 12. Open Cloud Campus
System Automation Overview
参考:Puppet/Chefの本質は「ビルトインの現状確認機能」
作業手順(コマンド)を並べたスクリプトは、前提環境が変わると利用不能
「現在の状態」に応じて必要なコマンドを判断して「希望の状態」を実現するの
が構成管理ツールの本質(「冪等性」はあくまで結果的に得られる性質)
リソースの種類ごとに「現状確認コマンド、設定変更コマンド」など
の”Intelligence”がビルトインされている事がPuppet/Chefの価値
希望の状態に
システムを更新
No
希望の状態 現在の状態
package { 'httpd':
ensure => latest,
}
# yum list httpd
「現在の状態=希望の状態」?
- 13. Open Cloud Campus
System Automation Overview
Puppetの課題
複数VMの依存関係(ワークフロー)が扱えない
– サーバ間の依存関係を解決する機能がないので、「DBサー
バとWebサーバを連携させる」ような設定はできない。
– 手続き型のスクリプトで連携処理を行なうと「宣言的記
述」のメリットが半減
⇒ クラウド対応の自動化ツールでは、複数VMの依存関係の
取り扱いが必要。
個人的には、Packstackが気になってます。
– Private notes on Packstack plugin development
– http://bit.ly/1a2GGEB