YuZakuroです。
この記事はPython Advent Calendar 2014の9日目の記事です。
概要
Ansibleとは
AnsibleというのはPythonで書かれたプロビジョニングツールです。有名なものにChefがありますが、その仲間だと思ってもらえるとわかりやすいのではないでしょうか。
なぜAnsibleを使うのか
Chefは非常に強力で、人気があり、それ故にドキュメントも豊富です。しかし、強力であるが故にわかりづらく、学習コストが高くなってしまいます。Chefは学習コストが高くて使いにくいツールだと言いたいわけではありません。Chefは非常に良いツールなのです。
対してAnsibleはChefほど強力ではありません。しかし、Chefよりもずっとシンプルで簡単です。
Ansibleの良い所
-
非常にシンプルです。
-
SSHを使用するため、管理されるサーバーにAnsibleをインストールする必要がありません
-
自作モジュールを作る際には、入出力フォーマットにさえ従えば好きな言語で作成できます。
サンプル
Ansibleでは、Playbook(chefでのレシピのようなもの)をyamlを使用して以下のように書くことができます。
- hosts: test-server
sudo: yes
tasks:
- name: apacheのインストール
yum: name=httpd state=installed
- name: apacheを実行
service: name=httpd state=running enabled=yes
まとめ
世の中には高性能で便利なツールがたくさんありますが、その機能が全部いると必要なことはほとんどありません。
Chefは非常に良いツールですが、Ansibleでも十分な場合が多いとおもいます。ぜひ一度使ってみてください。