ansibleを使ってみるのは簡単です。ローカルマシンへのインストールもYAMLファイルで記録しておけば再構築も簡単にできるようになります。
シンプルな例として、Webサーバをインストールしてみましょう。
インストール
まずは、ansibleをインストールします。CentOS7の場合は、下記のようにEPELリポジトリを追加してインストールするスクリプト install_ansible.sh をまずは用意します。
#!/bin/sh curl http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm -O epel-release-7-5.noarch.rpm rpm -ivh epel-release-7-5.noarch.rpm yum install -y python-devel python-crypto python-pip python-tools sshpass gcc pip install ansible
実行します。
$ sudo sh install_ansible.sh
ちなみに、Ubuntuなら下記のとおり。
$ sudo apt-get install python-dev $ sudo pip install ansible
コマンドの確認
インストールしたら、動作確認をしましょう。
$ ansible --version ansible 1.9.1 configured module search path = None $ ansible-playbook --version ansible-playbook 1.9.1 configured module search path = None
Inventoryの作成
対象となるマシンを一覧にします。 /etc/ansible/hosts へ記載するか、次のように環境変数へファイル名を指定するかします。ここでは$HOME/workspace/ansible/etc/hostsというファイルを用意したとしています。
$ export ANSBLE_HOSTS=$HOME/workspace/ansible/etc/hosts
web.ymlファイルの作成
Webサーバをインストールするためにweb.ymlファイルを作成します。次の例ではyumモジュールを使っているのでCentOS7で動作確認をしました。aptモジュールもあるので、Ubuntuではそちらを使うと良いでしょう。hosts: 127.0.0.1、connection: local と指定するとローカルホストを対象にして実行します。
- hosts: 127.0.0.1 connection: local vars: http_port: 80 max_clients: 100 tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: ensure apache is running (and enable it at boot) service: name=httpd state=started enabled=yes handlers: - name: restart apache service: name=httpd state=restarted
実行するには次のようにします。これで、apacheがインストールされて起動されます。
$ ansible-playbook web.yml
yumコマンドでインストールするよりも面倒なので、導入をするのは少し面倒な感じもありますが、playbookの資産が増えてくると、何かと便利になりそうです。scriptモジュールやshellモジュールもあるので、インストールスクリプトがあるなら、それを実行するように指定して完了ということもできます。
簡単ですね。