「OpenStack Days Tokyo 2017」レポート:進化を続けるOSS自動化ツール「Ansible」の最新動向

Ansibleは、コマンドラインから実行できるシンプルで使いやすい自動化ツールだ。「進化を続ける運用自動化ツール」をテーマに「Ansible Core」と「Ansible Tower」を紹介した本セッションは、立ち見が壁際にずらりと並び、Ansibleへの注目度やコミュニティの活発さを物語っていた。

シンプルで対象を問わない自動化ツール、Ansible Core


レッドハット
カスタマーエクスペリエンス&エンゲージメント
エンタープライズクラウドサポート
ソフトウェアメンテナンスエンジニア
齊藤秀喜氏

 2017年7月20日~21日の2日間にわたり開催された「OpenStack Days Tokyo 2017」に、レッドハット カスタマーエクスペリエンス&エンゲージメント エンタープライズクラウドサポート ソフトウェアメンテナンスエンジニアの齊藤秀喜氏が登壇。「進化を続ける運用自動化ツール」をテーマに講演した。

 システム運用は基本的に手順書をバイブルとして行うものだが、この手順書を手作業で実行するのでなく、例えばスクリプトにコマンドを並べていけば自動化することができる。とはいえスクリプトにはスキルの差が出たり、多種多様な管理対象への対応が難しい上に、自動化しづらい部分が残ってしまうなどの課題もある。こうした「ありがち」な自動化の課題に対するツールとして開発されたのがAnsibleだ。

 「Ansibleは、コマンドラインから実行できるシンプルで使いやすい自動化ツールです。管理対象となるシステムへのエージェント導入も不要で、SSHでのログインに対応していれば基本的に何でも対応します。楽をしたいところ、手の届きやすいところから自動化していくことができます」(齊藤氏)

 こうした機能はAnsibleの機能のコアであり、文字どおり「Ansible Core」と呼ぶソフトウェアが持つものだ。コマンドラインから単発の指示を与えて実行させることもできるが、YAML形式で書かれた手順書「Playbook」を与えれば、その内容を自動的に実行してくれる。Playbookを充実させていくだけで、自動化できる範囲が広がっていく。

 「Ansible Coreは、『何も持たない』ことも特徴の一つ。構成情報(インベントリ)なども、OpenStackのようなIaaS基盤が持っている前提で作られており、都度ダイナミックに取得していくためリソースが動的な対象にも柔軟に対応できます。実際の操作にはターゲットにPython形式のコードを送り込むためPythonの実行環境が必要ではありますが、Ansible Coreは終了前に実行ファイルを消去する処理も行い、管理対象の環境を汚染しない点もポイントです。Playbookの実行は記述されている順序通りに行いますが、最近のバージョンでは途中に別のPlaybookをインクルードして実行させるといったこともできるようになっています」(齊藤氏)

 Ansibleの動作には、氏が説明したようにインベントリを何らかの形で管理する仕組みのほか、「モジュール」と「プラグイン」も組み合わせることができる。モジュールは特定ターゲットの特定機能ごとに作られており、例えば主要クラウドプロバイダやOpenStackを対象としたもの、MySQLやPostgreSQLなどのRDBMS、各社ネットワーク機器など多彩なターゲットに対応する。一方のプラグインはAnsible Coreに機能を追加するもので、例えばPlaybookをプロファイリングするプラグインなどがある。

Ansible CoreをエンハンスするAnsible Tower

 Ansible Coreは単独でも優れた自動化ツールといえるが、シンプルかつ強力ゆえ使い方によってはリスクや課題もある。

 「例えば、100台のサーバに一括して『rm -r /』を実行させるなどということも簡単にできてしまい、大事故にもつながりかねません。扱いには注意が必要です。また、先に説明したようにコマンドラインのツールのため、最近のRERTfulなAPIの仲間には入れません。こうした部分に対応するのが、Ansible Towerです」(齊藤氏)

 Ansible Towerは、Ansible Coreを組織として管理するための機能を備えたソフトウェアだ。Ansibleの実行サーバを複数立ててそれぞれの動作を管理でき、各Playbookの実行状況も外から見えないようにできる。権限情報も管理しておりLDAPのようなアカウント管理システムとの連携も可能、ジョブテンプレートやワークフロー機能により複数Playbookの順次実行や条件分岐も可能。さらに、RESTful APIを備え他のツールからの管理も受け付けることができる。Ansible Coreにさまざまなエンハンスを行うソフトということになるが、現在では開発元を買収したレッドハットのプロダクトとして管理されており、Ansible Coreとは違ってオープンソースではないため、利用するには、サブスクリプションの購入が必要となっている。

 「Ansible Coreを使えば、手近なところから自動化していくことができます。さまざまな条件を加味したスクリプトを書いていくよりずっといい。しかもAnsibleのPlaybookはスクリプト言語で記述されたコードよりも、メンテナンス性に優れています。また、Ansible Coreの管理については独自実装でもよいのですが、Ansible Towerを使っていただけばより良い結果になることでしょう」(齊藤氏)

提供:レッドハット株式会社
[PR]企画・制作 朝日インタラクティブ株式会社 営業部  掲載内容有効期限:2017年11月30日
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]