Ansible自動化活用セミナー Session 2

クラウド時代の自動化ソリューション
Red Hat Ansible Tower

平 初

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

Ansible Automation、その製品構成と特徴

 レッドハッドの自動化製品ファミリーの「Ansible Automation」は、「Ansible Tower」と「Ansible Engine」という2つの製品で構成されています。2製品となったのは、レッドハットがAnsible社を買収する以前にAnsibleのコミュニティ版を使っていたユーザーからの、Ansible Coreといわれていた部分にもサポート提供できないかという要望を受け、改めてAnsible Engineとして製品化したためです。ですからレッドハットでは、Ansible Engineを、どうしても必要な場合に利用してもらうものとして位置づけ、通常はAnsible Towerを推奨しています。

 では、Ansibleの役割はどこにあるのでしょう。ポイントは、ITを動かす全体の仕組みの自動化です。Ansibleは、ITプロセス全体を見直して、自動化できる部分を自動化するツールです。構築作業のあとの構成変更、設定やテストなどに加え、現行の設定の確認作業や情報収集といった部分も自動化することで、ITプロセス全体にPDCAサイクルを実現できるのです。

Ansible Automation の役割

自動化の実現に、どうアプローチするか

 自動化への取り組みでは、目的とゴールを明確に定めることが求められます。そうした視点にたてば、Ansible導入の目的は生産性と品質を継続的に改善すること、そして、環境の変化に対してIT運用プロセスの陳腐化を防ぐことにあります。ゴールとしては、人に対するインパクトと、組織に対するインパクトとの2つに分けられます。人に対しては、すべての人が自動化プロセスに関与することがあげられます。手作業や反復作業から解放し、ヒューマンエラーを解消すること、そして、改善のためのラボレーション促進を実現することがゴールです。組織に対するインパクトでは、属人化の排除が大きなテーマでしょう。システムと人を切り離して属人化を防ぐことで、生産性向上とイノベーションにフォーカスすることが可能になります。

 自動化することで副次的に得られるのは、コンプライアンス、セキュリティの維持、品質の向上です。自動化された手順はレビュー済みのものですから、それらを利用することで自ずとコンプライアンスやセキュリティの強化につながりますし、ヒューマンエラーも起きにくくなるため、品質の向上に寄与することになります。

 レッドハットでは、自動化を支援する運用管理ツールが、Ansible 1つであるべきだとは考えていません。現在、チケット管理システムや承認ワークフローなど、多くの自動化ツールが存在します。日本では祝祭日と連動して業務パッチを実行するといった仕組みを導入している企業も多いでしょう。

自動化における「Ansible」の位置づけ

 Ansibleは、システム側の自動化の仕組みですから、既存のツールと連携することも可能です。

 とはいえ、開発に携わる立場であれば、いまある自動化ツールが、今後、マーケットに残り続けるのかどうかがポイントになります。自動化のために学んだ知識やノウハウが、数年後に使えなくなるといったことがないかを検討すべきでしょう。レッドハットという会社は、自動化ツールに依存した収益構造ではありませんし、Ansibleのダウンロード数、モジュール数が急速に増えていることからもわかるように、市場の認知度と人気は高い状態が続いています。レッドハットという会社が継続的なサポートする点を考慮すると、安心して採用できるツールではないでしょうか。

機能も使い勝手も異なるAnsible EngineとAnsible Tower

 Ansibleの中核部分を構成するAnsible Engineは、シンプル、パワフル、エージェントレスの3つのキーワードをコンセプトに開発されました。シンプルという点では、誰もが読めるテキスト形式のPlaybookという記述方式を使っていること、パワフルという点では、モジュールが豊富にあって、サーバーやネットワーク、ストレージなどの対象物を自在に操作できること、エージェントレスという特徴は、対象物のOSが持っている標準的なアクセスパスを使うため、特にエージェントを導入する必要がない点に集約されています。

 対してAnsible Towerは、組織として自動化に取り組むためのツールとして位置づけられます。複数の管理者がグループとなって運用するためのノウハウも組み込まれていますので、運用プロセスも現在の基準にフィットします。公的な運用基準を導入している企業であれば、Ansible Towerを使うべきでしょう。認証情報をAnsible Towerのデータベースに保存し、アクセス権限を設定してSSHやクラウドサービスのトークンといった認証情報を隠蔽化して管理するといったことも可能です。

 組織の中のすべての関係者が関与できる。そんな自動化を実現するために、Ansibleが提供するのは、Playbookの存在です。Playbookは、実行可能な手順書と考えて言えます。プログラミングの知識がなくても読むことができます。例えば、運用担当者や、品質管理の担当者でも、Playbookから手順を確認することができるのです。

 Ansible Engine、Ansible Towerのどちらも同じPlaybookを使いますが、Ansible Engineは、基本的にLinuxのコマンドラインツールで実装されているため、コマンドラインからPlaybookを読み込み、指示や制御を行うことになります。Ansible Towerでは、WebUIを提供しています。認証認可の仕組みを使って、適切な権限を持ったそれぞれの管理者が対象のサーバーに指示を出すこともできますし、APIを経由して、他の自動化ツールから呼び出すこともできるようになっています。これがAnsible Engineとの大きな違いでしょう。

Ansible Engine とは

Ansible Tower とは

Ansible Automationの現状と、Ansible Towerの特徴的な機能

 現在、Ansible Towerには、800種類以上ものモジュールがバンドルされています。モジュールが豊富にあり、しかも増え続けているのは、各ベンダーが、自社製品に対応したモジュールをつくってレッドハットに提供し、レッドハットはサポートと長期的なメンテナンスを提供するという形の、いわばエコシステムができあがっているためです。これは、サードパーティ製品の対応モジュールを、そのサードパーティ自らがつくるというオープンソースでしかできない仕組みでしょう。Ansible Towerは、モジュールを使うことで、LinuxやWindowsを含むほとんどのOS、ネットワーク製品、クラウドサービスや仮想化インフラを操作できるようになっています。

Ansible Tower

 Ansible Towerでは、ブラウザでログインすると、ダッシュボードという管理画面が表示されます。管理者は、この画面で、Ansibleと制御対象の健康状態を確認することができ、ホストの登録や、Playbookの実行、認証認可、ロールベースのアクセスコントロール、カタログ管理、Playbookの登録などが可能です。

 下部の階層では、SSHの秘密鍵や各種サービスのトークンの情報をAnsible Towerのデータベースに登録したうえで、一般ユーザーに見られないようにしたまま、Playbookの実行時に紐付けることができる機能なども提供する権限管理、Playbookに加え、モジュールを直接呼び出して簡単な操作を一回だけ実行するといった操作も可能なジョブコントロール、監査の機能に重点をおいた可視化機能、失敗した場合のロールバック機能も持つジョブのワークフロー機能などを提供しています。

Ansible Towerの機能

自動化プロジェクト、その成功ためのポイントとは

 自動化プロジェクトを成功させるためのポイントは3つです。それぞれをステージングし、ステージごとに取り組むことが重要でしょう。まず最初のステージは、テストと確認です。多くのヒューマンリソースを消費する作業ですから、この部分をプレイブック化することで強力に効率化を推進することができます。

 第二のステージは、人や組織のプロセスを見直すことです。Ansibleを使い始めると、当たり前のようにやっていた作業が不要になることがあります。例えば、コンプライアンスに合っているかどうか人手で確認するといった作業など、過去に何か問題があったことで増えたルールは、プロセスを見直すことで不要になります。こうしたルールの整理を行うことで、大幅な工数の削減が可能になります。

 最後のステージはサービス化ですが、Red Hat CloudFormsから、Ansibleのジョブテンプレートを利用することで、動作が確認された環境を他の担当者と共有することを可能にするもの、いわば、自動化の成果をサービスとして全社的に共有する仕組みといえます。この3つのステージを実現することで、自動化は成功に近づきます。

テストと確認を自動化する

人や組織のプロセスを見直す

サービス化する

様々な課題解決の切り札となる、自動化の実現

 Ansibleは、世界のカジノのバックエンドをサポートするAmelco社において、デリバリー期間の短縮、CI/CDの実現などに寄与した事例を持っています。また、イギリス陸軍では、LinuxとOracle DBを対象物として、パッチの適用の最適化を実現し、NASAでは、nas.govの更新時間の大幅短縮に寄与するなど、多くの企業や団体で、自動化をサポートしていますし、NECアメリカでは、AnsibleとNEC製のSDNモジュールを組みあせてデプロイの自動化を行い、顧客へのサービス提供に要する時間の、大幅な短縮を実現しています。

 こうした事例だけでなく、Ansibleを活用することで、コストやスピード、品質といった様々な課題を解決することが可能になります。自動化のポイントなど、今回紹介した内容を参考に、自動化促進に取り組んでいただければと思います。

Red Hat Ansible Automation

お問い合わせ