レッドハットの構成管理ツール「Ansible」は、オンプレミスだけでなくクラウドも含む運用管理のIT自動化を可能にするツールだ。運用チームはもちろん開発チーム、さらにはマネージャーなどにも恩恵をもたらすという。レッドハットのソリューションアーキテクト、平初氏に聞いた。
プログラマー以外にも読みやすい構成管理ツール、Ansible
近年のエンタープライズIT環境にはさまざまな基盤が用いられ、オンプレミスとパブリッククラウドを組み合わせたハイブリッド環境も一般的になってきた。この基盤上で多数の仮想マシンやコンテナが稼働し、運用が複雑になってきている一方、ITには瞬敏さが求められている。こうした組織にとって、運用の自動化は、もはや必須となってきている。
過去にもさまざまな形でIT運用の自動化が試みられてきたが、例えばスクリプトによる自動化では担当者個人に依存しがちで、属人化による懸念が生じる。組織としての運用を可能にする統合運用管理製品も存在するが、既存の製品では運用対象となる環境や要件の変化に対応させるための作り込みが必要で、ユーザー企業単独での運用自動化には遠かった。
そうした背景から作られたのが、コードとして記述された作業内容を自動処理する方式の、オープンソース系の構成管理ツールだ。コードで記述することは、サーバ、ネットワーク、クラウド等の運用にもプログラム開発と同様の管理手法を取り入れることが可能になることでもあり、DevOpsの取り組みにも大きく貢献する。その主なツールとして知られているのは、PuppetやChef、そしてAnsibleだ。

レッドハット
テクニカルセールス本部
パートナーソリューションアーキテクト部
ソリューションアーキテクト
平初氏
「Ansibleは後発ですが、PuppetやChefの弱点を克服している点が大きな特徴です。例えば、Ansibleに作業を指示する『Playbook』は、コードというより自然言語に近い記述方法のYAML形式を用いており、他の2つに比べてプログラマー以外にも読みやすくなっており、『実行可能な作業指示書』といった感覚です」と、平氏は説明する。

※クリックすると拡大画像が見られます
またAnsibleは、PuppetやChefと異なりエージェントレスという点も大きな特徴だ。Ansibleからは、対象に応じたインタフェース(主にSSH、対象がWindowsの場合にはWindowsリモート管理を利用)を通じて構成管理を行うため、対象に余計な負荷を与えない。もちろん、エージェントにまつわる脆弱性などを意識する必要もない。
「エージェントのインストールも不要なので、スモールスタートやPOC的な使い方、さらには単体でのオーサーも可能です。実はレッドハットも、『Red Hat OpenShift Container Platform』や『Red Hat Ceph Storage』など一部製品のインストーラに、Ansibleの実行エンジン『Ansible Core』を組み込んで利用しています。これらの製品は複数ノードにまたがってインストールを行いますが、インストール台数などの設定をPlaybookのパラメータとして与えることで柔軟な対応を実現できます。しかもAnsibleは冪(べき)等性、あるべき姿を実現することができる仕組みも有しており、何らかのエラーで途中終了した場合でも、再実行することにより正常な状態を実現していくことが可能です」(平氏)