21
IT 自自自自自自 "Ansible" 自 IDCF Cloud 自自自自自自自 自自自自自自自自自自自 自自自自

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

Embed Size (px)

Citation preview

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

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

株式会社リアルグローブ廣川英寿

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

自己紹介廣川英寿

株式会社リアルグローブ所属の技師(2011~現職) Webアプリケーション開発・運用インフラ周りの諸々を活用したサービスや導入支援

コンテナ系( LXC, Docker...) 運用自動化系(Ansible)

主なプロダクト NiftyCloud C4SA

PaaS コンテナ技術を活用し、ワンクリックで各種開発環境を提供 開発環境のエクスポートにAnsibleを採用

Deplow AaaS (Ansible as a Service) Web GUIから操作できるAnsibleの実行管理環境を提供 Ansibleプロセスは隔離されたコンテナ内で実行

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

Ansibleとは?

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

Ansibleの説明オープンソース (GPL)で開発されている、 Python製 IT自動化ツール

構成管理ツール、プロビジョニングツール、オーケストレーションなどと呼ばれる事も多い(類似ツール : Chef, Puppetなど)CLI経由で実行可能な作業であれば何でも自動化できてしまうツール

関連するキーワードと得られるメリットDevOps

開発フェーズと運用フェーズの密な連携による効率 /品質の改善 Infrastructure as Code

手順のコード化による作業内容の可視化、より厳密な品質保証

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

Ansibleのメリット①シンプルインストールが簡単

多くのパッケージマネージャが対応している( homebrew, apt...) Pythonのモジュールとしてインストールするだけ

YAMLによって書かれる手順 特別な言語の習得が不要

例えばChefの利用には rubyの読み書きが必須となる 開発者以外でもメンテナンスが容易

豊富な組み込みモジュールですぐに使い始められる 450種類以上の組み込みモジュール(2.0 beta 現在) ほとんどの組み込みモジュールで冪等性が守られている

ansible-playbookコマンドを実行するだけの簡単デプロイ 1作業単位からのスモール・スタートが容易

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

Ansibleのメリット②エージェントレスデプロイ対象サーバー上にエージェントが不要

既存サーバーに対してもすぐ導入できる Chefや Puppetはエージェント・インストール型

事前にエージェントをインストールしたサーバーにしか使えないリモート・サーバー接続にも特別な対応は不要

UNIX/Linux系OSSSH接続

Windows OSWinRM接続

Windowsデフォルトのリモート管理システム Windows Management Framework 3.0以上が必要

踏み台経由の接続も工夫次第で可能

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

Ansibleのメリット③パワフルワンストップで大規模 /複雑なシステムをセットアップ

並列実行で、数百台単位の同時セットアップが可能 複数種のサーバーを組み合わせるシステムも一括デプロイ

例 ) フロントWeb + App + DB + Cache + ...

高い再利用性 変数機能を使った高い汎用性 ロール単位でのパーツ化

ミドルウェアのセットアップなどをロール化して使いまわせる 例 ) Nginx + Postgresql + PHP

自作モジュールでの拡張 組み込みにない機能でも、モジュールを作れる Python, PowerShellの場合、ヘルパーが用意されている 他の言語でもスクリプトとして実行可能であればなんでもOK

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

そして、いま Ansibleがアツい

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

RedHatによるAnsible社の買収

2015/10/16 に米 RedHat社が米 Ansible社を買収した。価格はなんと 1億 5000万ドル!プレスリリース中で RedHatは、Ansibleを「 ITオートメーションと DevOpsのリーダー」と評している。

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

Ansible v2Ansibleは現在 v2へのメジャー・バージョンアップを控えている。( 10/27現在、 beta 2)v2ではコアのほとんどの部分が書き直されており、多くの機能追加や操作性向上。と同時に、後方互換が保たれており、既存 Playbookの修正はほとんどの場合不要。

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

Ansible導入には格好のタイミング!

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

IDCFクラウド上でのAnsible活用

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

①IDCFクラウド上の作成済 VMをデプロイ

Ansible

SSH VM

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

このパターンはできて当然Ansibleから見ると SSHで接続可能なサーバーに働きかけているだけなので、 IDCFクラウドである事は実はあまり関係ない

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

②IDCFクラウドのCloudStack APIを操作

Ansible

SSH

VMIDCF Clou

d

Clou

dSta

ck A

PI

Page 16: IT自動化ツール"Ansible"で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

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

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接続してサーバー内をデプロイ

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

Playbook例https://gist.github.com/h-hirokawa/7dd15ad30055e787ef03

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

Ansibleで広がる可能性mackerelとの連携構築

エージェントの自動インストールmackerel APIを叩けば、ルール設定まで Ansibleで可能

ただし、ライブラリは現時点では自前実装が必要アラート通知と組み合わせて、 Ansibleで IDCFクラウド上の VMをオートスケールさせるような組み合わせも考えられる

テンプレート管理、スナップショットなどももちろん可能ISOイメージ・インポートの自動かなどなど、幅広い応用範囲が考えられます

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

Ansibleと組み合わせてより快適な IDCFクラウド生活を!

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

ご清聴ありがとうございました