イベントレポート

Ansibleで実現する
基盤設定の自動化ガイド

 究極の効率化、コスト削減、ガバナンス強化などが期待されるITの自動化。幅広い領域に対応し自動化そのものを標準化するAnsible。多くの自動化ソリューションがある中、シンプルなエージェントレス方式を採用し、高度なコーディングスキルが不要なツールとして注目されるAnsibleの魅力を、このほど大阪で開催されたセミナーから紹介します。

セッション 1

エンタープライズITの自動化を実現する
Red Hat Ansible Automation

藤村 聡
レッドハット株式会社
プロダクトソリューション本部
シニアビジネスデベロップメントマネージャー
藤村 聡

高まる自動化への関心と現状の課題

いくつかの調査で、企業が優先的に取り組むシステム課題として『ITインフラの自動化』を挙げるなど、近年、運用自動化への関心が高まっています。一方、すでに運用自動化に取り組んでいるケースでも、システムごとに異なるツールやスクリプトを使うなど、属人・サイロ化された自動化になっている場合が多く、目指すべき究極の効率化は実現できていないのが現状です。サイロ化された自動化の場合、ノウハウが共有できず、それぞれのエンジニアが独自に自動化を学ぶため、学習コストの増加や適用範囲の局所化、ノウハウの属人化を招き、組織間の連携や共有は困難です。

こうした課題に応えるソリューションがAnsibleです。夜間対応や休日対応に費やされる時間や頻度を極限まで減らすとともに、コンテナを活用したAgileなアプリケーション開発・リリースに伴うネットワークやファイアウォールの設定変更などの効率化を実現。人的ミスの低減によるコスト削減、セキュリティガバナンスの強化も可能です。実際、アプリケーションのリリース作業が約10分の1に、仮想マシーンの払い出し作業が従来の12日間から10分へ、データセンターのメンテナンスも60時間から10分への短縮を実現したという事例もあります。

また、近年のAnsibleへの関心の高まりにより、設定ファイル「Playbook」のサンプル集も充実。ゼロからPlaybookを作成することなく、専用サイトで検索したPlaybookをカスタマイズして利用することで効率的な開発が可能です。

自動化のもたらす効果

効率的で安全な自動化を可能にするAnsible

Ansibleは、コマンドラインで自動化できる動作エンジンとしての「Ansible Engine」と、GUI/権限管理/履歴管理などを行う自動化プラットフォームとしての「Ansible Tower」で構成。Ansible Engineは、誰もが読める標準化された言語で自動化できるシンプルさ、サーバー、ネットワーク機器、仮想化基盤、パブリッククラウドなどを1つのツールで自動化できるパワフルさ、対象とする機器にエージェントのインストールを必要としないエージェントレスが特徴。既存のパラメーターシートや手順書をPlaybookに置き換えることで、サーバーの構築や構成変更の自動化を可能にします。

Playbookは、YAMLという汎用フォーマットで記述されるテキストファイルのため、Excel にパラメーターを書くように作成することができ、インフラ作業で使用頻度の高い2000弱の操作コマンドがモジュール形式で提供されています。パブリッククラウド、プライベートクラウド、Linux、Windowsなどの端末にくわえ、ネットワーク機器やストレージなどエージェントのインストールが不可能な対象機器まで、一つのツールで管理することが可能です。

一方、Ansible Towerは、権限管理や認証情報の保管、APIによる外部連携、複数のパーツ化したPlaybookを組み合わせて実行するといった機能を提供。GUIによる自動化の管理、履歴管理、ロールベースの権限管理により、組織で運用するための自動化・集中管理を強力に支援します。Ansible TowerからAnsible Engineを呼び出して操作することで、効率的で安全な自動化環境の実現が可能です。

Ansible Automationの全体像

標準化、共通化により組織全体の自動化を実現

Ansibleを導入し自動化への取り組みがスタートする当初はPlaybookの開発が必要になりますが、一定の期間を経て標準化されることで、Playbookの新規開発は減少します。しかしAnsibleの有用性が認知・浸透されるに伴って、さらに他の部門への適用も検討され始めた場合、Playbookの開発数も再び増加します。ただ、全社的な共有と標準化が最終的に終われば、自動化対象のノード数の増加に比較し開発数は減少、それ以上増えることなく安定化します。自動化されたノード数とPlaybook数のギャップは、自動化の効果が最大に達していることを示します。

開発数(Playbook数)と適用ノードの関係イメージ

Ansibleの導入と標準化では、組織内に従来存在した膨大な数の手順書から共通化が可能なパーツを抽出し使い回すため、こうした流れをたどることが多くなります。例えば、「プライベートクラウド上にサーバーを構築」→「ソフトウェアをインストール」→「設定する」といった3つのPlaybookがパーツとしてあった場合、同様の作業をパブリッククラウド上で行いたい場合、「サーバーの構築」にあたるPlaybookだけを変更すれば良いので、自動化した手順数に対してPlaybookの数が少なくなります。実際導入企業からは、特定のシステムにしか使えないと思っていた手順書でも、精査するとパーツの共通化が可能な部分が多かったといった声も聞かれました。

Ansibleは、基本的に標準化という考え方に基づいています。対象機器によってやり方も、使うスクリプトも異なるといったサイロ化の発生要因を排除し、組織内で共通化・標準化された自動化を実現。作業者と認証情報、作業者と操作ログをそれぞれ切り離して管理することができるので、自動化の作成者が運用担当者に実行権限だけを提供し、編集は行わせないといった権限の付与も可能です。

また、ソースコードマネジメントシステムとの連携も可能で、間違えたPlaybook、バージョンの古いPlaybook、接続先が違うインベントリ情報などを誤って使ってしまうといったトラブルを防ぎ、構成管理データベースを使うことで、対象機器を選別した上で自動化を行うことも可能になります。

Ansible は「自動化手法の標準化」を実現

高い汎用性で、多様な領域の自動化を支援

Ansibleを活用することで、例えば仮想マシンの払い出しであれば、アプリ担当者はインフラ担当に依頼することなく自分の欲しいスペックをパラメーターで指示し、ボタンクリックだけですぐにサーバーを手に入れることも出来ます。スイッチングデバイスの設定など反復作業が多いネットワーク管理も、最低限の人数で行うことができ、リリース作業や夜間パッチの適用作業の自動化も可能になります。

こうした機能を最大限に活用することで、ポータル画面からカタログに応じたサーバー環境も構築できます。監視システムと連携してエラー処理を自動化し、電子承認ワークフローと連携させてファイアウォールの一時解放のプロセスもシンプルに自動化することができます。もちろん、ここで紹介した機能以外にも、Ansibleが適用可能な領域は多岐に渡り、日々の運用の中で、その可能性を広げていただければと思います。

あらゆる自動操作のハブとして利用する例

このセッションの資料はこちらからダウンロードできます

資料ダウンロード

セッション 2

『Ansible Automation』による自動化の実現プラン

小林 善宏
株式会社システナ
事業戦略統括部 プリセールス担当課長
小林 善宏

注目が集まる構成管理ツール

エンドユーザーやアプリケーション担当者からのインフラ部門に対する要求は、障害対応や問い合わせ対応だけでなく、新しいシステムインフラの構築やアプリケーションのリリースへの迅速な対応など多岐に渡ります。さらに、「止められないシステム」の増加により運用対象となる機器が増加し、インフラ担当への負担は大きくなっているのが現状です。しかしながら、インフラ構築や運用のスペシャリストであるエンジニアの増員は容易ではなく、結果的に限られたメンバーによる深夜作業や休日出勤が増えることになります。Ansibleをはじめ、ChefやPuppetなど構成管理ツールへの注目が高まっている背景には、こうした状況を改善しようとする「働き方改革」があるのでしょう。

構成管理ツールにおけるシステナの注目点

構成管理ツールのなかで、システナがAnsible Automationに注目するのは、深夜対応や休日出勤、ヒューマンエラーに起因する障害対応などのコストを大きく削減できること、業務部門やエンドユーザーからの要求に対応した運用管理のスピードアップができること、さらにITにおけるガバナンスを支援できることが理由です。

例えば、Playbookによる自動実行で、夜間や休日対応の負荷は軽減され、エンドユーザーが求める各種の環境をより早く提供できます。また、誰が、いつ、どこの環境へ、何を実行したのか、その結果が成功(または失敗)したのかといった実行履歴の記録による証跡確認とともに、それぞれの作業の実行権限を明確に設定することが可能なため、権限がない作業が間違って実行されたり、誤った環境に適用されたりといったコンプライアンス違反を回避して運用におけるガバナンスを実現できるのも魅力です。

インフラ担当は、より創造的な業務に注力

Ansible Towerでは、権限を部門ごとに分け、さらに部門内の誰が実行できるのかといった詳細な権限設定が可能です。

例えば、PCを持ち出すことが多い営業部門であれば、部門の責任者が自身の権限で暗号化を行うといったように、業務上の役割と権限にそって明確に実行権限を設定することができます。また、ITの専門知識がなくても、Ansible TowerのGUI画面をブラウザから使用して、サーバーを構成するといった作業実行はもとより、その実行権限と実行対象となるサーバー・PCも定義可能です。その結果、こうした作業に忙殺されがちなインフラ担当のIT技術者は、日常の運用はAnsibleに任せて、IoT導入などをはじめとする攻めのIT構築に取り組むことができるでしょう。

Ansible Towerダッシュボード画面

自動化において留意すべきポイント

構成管理の自動化を実現する際に留意する点として、自動化する作業そのものを簡潔にする必要があります。例えば、サーバー構築の際に、そのサーバーにインストールする必要がある製品全ての作業を一度に実行するPlaybookをつくってしまうと、非常に限定的なサーバー環境を実現する自動化になってしまいます。これでは必要なパターンの全てを作成することが必要になり非効率であるため、Ansible Towerのワークフロー機能でPlaybookを組み合わせて実現できるように単一の作業に自動化の範囲を絞り込むこと、ミドルウェアの導入や初期設定といったOS などに依存しない作業を洗い出して自動化を行うことが有効です。

また、Playbook作成時に、どう自動化を行えば、部品化や標準化によって他のシステム環境で利用が可能になるのかを考えることも必要でしょう。例えばアプリケーションサーバーの中にデータベースを組み込みたいといった場合に、アプリケーションサーバーの設定に データベースの設定実行で影響がでないように、部品で定義する設定内容や部品が持つ役割として何を対象範囲にして標準化するのかを考えるとよいでしょう。

Playbookの作成にあたっては、サンプルが非常にたくさん公開されているので、これらを活用して作成にかかる時間そのものの圧縮も心がけていただきたいと思います。

このセッションの資料はこちらからダウンロードできます

資料ダウンロード

Red Hat Ansible Automation

お問い合わせ