なぜ構成管理はAnsibleがいいのか?~『Ansible徹底入門 クラウド時代の新しい構成管理の実現』より (1/2)|翔泳社の本

なぜ構成管理はAnsibleがいいのか?~『Ansible徹底入門 クラウド時代の新しい構成管理の実現』より

2017/02/24 07:00

 構成管理ツールの新しい選択肢として登場したAnsible。エージェントレスや再利用性の高さといった特徴を備えるAnsibleは、なぜクラウドコンピューティング時代に適しているのでしょうか。翔泳社が2月16日に刊行した『Ansible徹底入門 クラウド時代の新しい構成管理の実現』より、一部内容を紹介します。

※『Ansible徹底入門 クラウド時代の新しい構成管理の実現』より一部を抜粋(記事掲載に合わせ改変)。

前書き

 2013年の春先、私は悩んでいました。その当時、開発を進めていたコンテナ型PaaSにある新機能を追加しなければならなかったからです。その新機能は大まかにまとめると「コンテナ内に存在するWebアプリケーションを外部の環境に『そのまま元と同じように動く状態で』エクスポート可能にする」といったものでした。

 はじめのうちは、そこまでハードルは高くないだろうと踏んでいたのですが、PaaS内での自動セットアップは種々の特別な前提の元に成り立っており、外部環境でそのまま再現できるものではありませんでした。さらに仮にそれができたとしても、利用ユーザーによって環境が書き換えられていた場合「環境をそのまま」エクスポートすることはできません。

 また、必要に応じてユーザーが自分でエクスポート用スクリプトに手を加えられるような仕組みも必要になりますが、既存のスクリプトはPythonとシェルスクリプトが複雑に絡みあっており、とても「見てもらえれば分かりますよ」といえる代物ではありません。

 結局のところ当初の目論見に反し、一から新しい自動環境セットアップ用の仕組みを用意する必要が出てきたのです。

 2013年当時、環境セットアップの自動化といえばChefかPuppetといった空気で、このエクスポート機能も最初はこのどちらかを採用するつもりでいました。しかし「操作対象へのエージェントインストールが必須」、「プログラミング言語に慣ている人でないと手が出しづらい」といった点がネックとなり、ほかによい選択肢がないものかと探していて見つかったのが、まだ登場して間もないころのAnsibleです。

 Ansibleはネットワーク経由でアクセスさえできればエージェントは不要であり、YAML形式で書かれたコード(Playbook)はプログラマーでない人でも読み書きが簡単です。「これぞ探し求めていたものだ!」とすぐさまAnsibleを使っての実装を進め、無事エクスポート機能を完成させることができました。それからは自分で環境のデプロイを行う際にもAnsibleは手放せないものになっています。

 あれから数年がたち、クラウドコンピューティングがITインフラの基本となり、IT活用に要求されるスピード感もどんどん加速する今日、Ansibleのような構成管理技術はシステムの開発と運用に携わるすべての人たちに欠かせないものになってきています。

 そこで本書では、初めてAnsibleに触れる人たちに向けた解説とチュートリアルに加え、特に実用上の参考になるであろう各クラウド基盤(OpenStack/AWS/Azure)への活用ノウハウ、最新機能でありながら大きな注目を集めるDockerコンテナとの連携など、これからAnsibleを使っていくにあたり重要になるであろう内容を1冊にまとめました。本書が読書の皆様のAnsible活用の助けとなることを願っております。

 最後に、本書の執筆にご尽力いただきましたエキスパート執筆陣の皆さん、出版に携わった関係各位に感謝いたします。

2017年1月 廣川英寿