2018.02.07

Ansibleが実現する「Automation for Everyone」

小島啓史
レッドハット株式会社
テクニカルセールス本部 パートナーソリューションアーキテクト部
ソリューションアーキテクト
このエントリーをはてなブックマークに追加

今回はDevOpsの重要なキーワードの1つ、「自動化」を実現するAnsibleについてお話しいたします。

AnsibleはよくChefやPuppetと同様の構成管理ツールとして紹介されています。これを少し噛み砕くと、ITシステムの構築・構成変更・テスト・情報収集・確認作業といった、人が実際にログインして操作するような作業を自動化するツールと表現できます。


180214_redhat_01.png
もちろん他のツールでも同様のことは実現できますが、Ansibleがそれらと異なるのは、「Automation for Everyone」というメッセージをコンセプトとして開発されていることです。このメッセージは、ITシステム運用に関わる全ての人が自動化のノウハウを適切に共有して簡単に利用できるようにする世界の実現を目指すという意味を持ちます。そのための代表的な特徴は次のものがあります。

  • Ansibleが実行するスクリプト(これをPlaybookと呼びます)の構文にはYAMLを利用しています。YAMLは汎用的なデータ表現形式の1つであり、Ansibleだけでなく様々なプログラミング言語でも利用できます。また、ある程度の慣れは必要ですが、できる限り人が読み書きしやすいように設計されています。
  • エージェントレスです。Ansibleを実行するのには特別なソフトウェアを入れる必要はありません。自動化対象のサーバがSSHやWinRMといったOS標準機能を備えていれば、実行要件を満たせます。
  • プッシュ型のアーキテクチャモデルを採用しています。定期的に中央のマスタサーバと通信して構成情報を取得・適用していくプル型のモデルとは異なり、構成変更のタイミングをシステム管理者が自由にコントロールできます。予期せぬタイミングでの変更に頭を悩まされることはありません。(Ansibleではプル型のモデルも利用できますが、ここでは説明を割愛します。)
  • 同梱された様々なモジュールをPlaybookから利用することで、パッケージのインストールやサービスの設定・起動といった様々なタスクを簡単に実行できます。また、主要なモジュールは、タスク実行の前にサーバの状態をチェックして、タスク実行後の状態なら何もしないといった処理を行っています。そのため、Playbookを何回実行しても同じ効果が得られるという「冪等性」を確保しやすくなります。さらに、カスタムモジュールも容易に開発・追加できるようになっています。
  • Playbookは「アプリケーションのセットアップ処理」といった単位で部品化して再利用できます。この単位は「Role」と呼ばれ、世界中の人が作ったRoleの資産を公開・共有するためのプラットフォーム「Ansible Galaxy」が用意されています。

そして、弊社が提供するAnsibleは2つの構成要素から成り立っています。Playbookの実行エンジンを担当する「Ansible Engine」と、1部署だけでなく組織として自動化の仕組みを最大限に活用するための「Ansible Tower」です。

Ansible Towerは、Web UI、権限管理、実行履歴の管理、サーバの認証情報隠蔽、REST API対応による外部ツールとの連携、自動化処理を連結した簡易ワークフロー、といった機能を備えています。当然ながらこれらの機能は他の運用管理ツールと被るところがあります。しかし、Ansibleを組織の自動化戦略の要として位置づける場合、Ansibleによる自動化推進ツールとして最適化されたAnsible Towerの利用を推奨しています。

Ansibleによる自動化の活用例は様々なものがあります。手順書の置き換え、システム構築後のテスト、脆弱性の定期診断といった例が考えられます。こうした作業の自動化範囲を拡大していくと、設計・構築・運用で発生する全ての作業をAnsibleで自動化して継続的に利用・改善することができるようになります。これは、ITシステムのインフラ要素(サーバやネットワーク機器など)の状態をPlaybookというソースコードで開発していくとも言い換えられます。このようなアプローチやプラクティクスは一般的に「Infrastructure as Code」と表現され、DevOpsの重要な要素の1つです。


180214_redhat_02.png
ただし、どのような作業から自動化していけば良いか分からないという場合もあるでしょう。弊社ではそのようなお客様のために、ディスカバリーセッションという4時間程度のワークショップを用意しています。このワークショップでは、業務やシステムに関わる関連部署の方々にご参加いただき、業務フロー全体の課題の可視化や改善策の検討を行います。ワークショップを実施すると、今後の業務改善のマイルストーンが見えてくるので、Ansibleでの自動化を効率的に進めていけるようになります。自動化に興味をお持ちでしたら、Ansibleという技術要素だけでなく、このようなワークショップの利用もぜひご検討ください。


180214_redhat_03.png

この記事の著者:小島啓史

レッドハット株式会社
テクニカルセールス本部 パートナーソリューションアーキテクト部
ソリューションアーキテクト

2010年にレッドハット株式会社に入社。
技術営業としてエンタープライズビジネス/パートナービジネスの立ち上げに従事。
技術提案や執筆活動などを通して、Linuxやクラウド技術(Ansible/Container/OpenStackなど)の啓蒙活動を実施しています。


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。