狠狠撸

狠狠撸Share a Scribd company logo
IT自動化ツール"Ansible"で
IDCF Cloudを自動化する話
株式会社リアルグローブ
廣川英寿
自己紹介
? 廣川英寿
? 株式会社リアルグローブ所属の技師(2011~現職)
? Webアプリケーション開発?運用
? インフラ周りの諸々を活用したサービスや導入支援
? コンテナ系(LXC, Docker...)
? 運用自動化系(Ansible)
? 主なプロダクト
? NiftyCloud C4SA
? PaaS
? コンテナ技術を活用し、ワンクリックで各種開発環境を提供
? 開発環境のエクスポートにAnsibleを採用
? Deplow
? AaaS (Ansible as a Service)
? Web GUIから操作できるAnsibleの実行管理環境を提供
? Ansibleプロセスは隔離されたコンテナ内で実行
础苍蝉颈产濒别とは?
Ansibleの説明
? オープンソース(GPL)で開発されている、Python製IT自動
化ツール
? 構成管理ツール、プロビジョニングツール、オーケストレーショ
ンなどと呼ばれる事も多い(類似ツール: Chef, Puppetなど)
? CLI経由で実行可能な作業であれば何でも自動化できてしま
うツール
? 関連するキーワードと得られるメリット
? DevOps
? 開発フェーズと運用フェーズの密な連携による効率/品質の改善
? Infrastructure as Code
? 手順のコード化による作業内容の可視化、より厳密な品質保証
Ansibleのメリット
①シンプル
? インストールが簡単
? 多くのパッケージマネージャが対応している(homebrew, apt...)
? Pythonのモジュールとしてインストールするだけ
? YAMLによって書かれる手順
? 特別な言語の習得が不要
? 例えばChefの利用にはrubyの読み書きが必須となる
? 開発者以外でもメンテナンスが容易
? 豊富な組み込みモジュールですぐに使い始められる
? 450種類以上の組み込みモジュール(2.0 beta 現在)
? ほとんどの組み込みモジュールで冪等性が守られている
? ansible-playbookコマンドを実行するだけの簡単デプロイ
? 1作業単位からのスモール?スタートが容易
Ansibleのメリット
②エージェントレス
? デプロイ対象サーバー上にエージェントが不要
? 既存サーバーに対してもすぐ導入できる
? ChefやPuppetはエージェント?インストール型
? 事前にエージェントをインストールしたサーバーにしか使えない
? リモート?サーバー接続にも特別な対応は不要
? UNIX/Linux系OS
? SSH接続
? Windows OS
? WinRM接続
? Windowsデフォルトのリモート管理システム
? Windows Management Framework 3.0以上が必要
? 踏み台経由の接続も工夫次第で可能
Ansibleのメリット
③パワフル
? ワンストップで大規模/複雑なシステムをセットアップ
? 並列実行で、数百台単位の同時セットアップが可能
? 複数種のサーバーを組み合わせるシステムも一括デプロイ
? 例) フロントWeb + App + DB + Cache + ...
? 高い再利用性
? 変数機能を使った高い汎用性
? ロール単位でのパーツ化
? ミドルウェアのセットアップなどをロール化して使いまわせる
? 例) Nginx + Postgresql + PHP
? 自作モジュールでの拡張
? 組み込みにない機能でも、モジュールを作れる
? Python, PowerShellの場合、ヘルパーが用意されている
? 他の言語でもスクリプトとして実行可能であればなんでもOK
そして、いま础苍蝉颈产濒别がアツい
RedHatによる
Ansible社の買収
2015/10/16 に米RedHat社が米
Ansible社を買収した。
価格はなんと1億5000万ドル!
プレスリリース中でRedHatは、
Ansibleを「ITオートメーションと
DevOpsのリーダー」と評している。
Ansible v2
Ansibleは現在v2へのメジャー?バー
ジョンアップを控えている。(10/27現
在、beta 2)
v2ではコアのほとんどの部分が書き
直されており、多くの機能追加や操
作性向上。
と同時に、後方互換が保たれており、
既存Playbookの修正はほとんどの
場合不要。
Ansible導入には
格好のタイミング!
IDCFクラウド上での
Ansible活用
①IDCFクラウド上の
作成済VMをデプロイ
Ansible SSH VM
このパターンはできて当然
Ansibleから見るとSSHで接続可能なサーバーに働きかけて
いるだけなので、IDCFクラウドである事は実はあまり関係な
い
②IDCFクラウドの
CloudStack APIを操作
Ansible
VM
IDCF
Cloud
CloudStack APIの操作
? IDCFクラウドは仮想化基盤にCloudStackを採用
? オープンソースでIaaS基盤を作るApacheプロジェクト
? APIを備えており、あらゆる操作をAPI経由で実施可能
? AnsibleのCloudStack操作モジュール
? API経由の操作をよりシンプル、簡単にしてくれるモジュール群
? 21種類の操作モジュールがあり、かなりの機能を網羅済み
? cs_instance: VM操作
? cs_ip_address: IPアドレス管理
? cs_firewall: ファイアウォールルール管理
? cs_sshkeypair: SSH鍵管理
? etc
Ansible Playbook実用例
1. VM接続用のSSH鍵をアップロード(cs_sshkeypair)
2. IDCFクラウド上にVMを作成(cs_instance)
3. グローバルIPアドレスを発行(cs_ip_address)
4. 3.のIPアドレスを2.のVMに割り当て
? スタティックNATで割り当て(cs_staticnat)
? ポートフォワードで割り当て(cs_portforwarding)
5. 3.のIPアドレスの必要なポートを開放(cs_firewall)
6. 2. で作成したVMをAnsibleのデプロイ対象に追加(add_host)
7. 作成したVMにSSH接続してサーバー内をデプロイ
Playbook例
https://gist.github.com/h-hirokawa/7dd15ad30055e787ef03
Ansibleで広がる可能性
? mackerelとの連携構築
? エージェントの自動インストール
? mackerel APIを叩けば、ルール設定までAnsibleで可能
? ただし、ライブラリは現時点では自前実装が必要
? アラート通知と組み合わせて、AnsibleでIDCFクラウド上の
VMをオートスケールさせるような組み合わせも考えられる
? テンプレート管理、スナップショットなどももちろん可能
? ISOイメージ?インポートの自動か
などなど、幅広い応用範囲が考えられます
Ansibleと組み合わせて
より快適なIDCFクラウド生活を!
ご清聴ありがとうございました

More Related Content

IT自動化ツール"Ansible"でIDCF Cloudを自動化する話