ansibleお試し

ansible_HP

ansibleという構成管理ツールを試してみました。 っていっても簡単な動作確認程度のものでしかないですが。。。

◇ansibleサーバ構築

サーバ構築に使ったものは以下
・VMWare Workstation 14 Player
・CentOS-7-x86_64-Minimal-1708.iso

サーバ用のVMのインストールとかは省略

ansibleはPython2.6以上が要件とのことなので CentOS7のインストール後Pythonバージョンを確認したところ Python 2.7.5が入っていた。

ansibleをインストールしていく。

$ sudo yum -y install epel-release
$ sudo yum -y install ansible

この2コマンドでansibleのインストールが完了。 MinimalのCentOSイメージを今回使用したが、 結構簡単にインストールができた。

ついでに操作対象とするテスト用ホストサーバも 同じものOSイメージで作成。 操作対象のホストサーバはPython2.4以上が要件となっている。 (VMを作成するだけで要件を満たしている。)

◇動かしてみる

動かしすために ansibleについて3つのこと簡潔に説明する。

●インベントリ
操作対象とするホストのアドレスを記述するしたもの。 デフォルトファイルは/etc/ansible/hostsで、 今回はここに操作対象ホストサーバのアドレスを追記する。

●モデュール
コマンドのような、操作が書かれたもの。 基本モデュールは、以下URLの公式サイトに結構な数が記述されている。 http://docs.ansible.com/ansible/latest/list_of_all_modules.html

●プレイブック スクリプトのようなもので、モジュールを複数組み合わせ、操作対象ホストにいろいろな操作を行うもの。yamlで記述する。

今回は次のようにし、ansibleサーバから操作対象ホストへスクリプトを実行する操作を行ってみた。
1.操作対象サーバにファイルに”Hello World”と書き込むスクリプトを用意する。
test.sh
#!/bin/sh
echo "Hello World" > /home/root/test.txt

2.ansibleサーバのインベントリ(/etc/ansible/hosts)に対象サーバのアドレスを記述する。
/etc/ansible/hosts
[client]
192.168.145.129 (操作対象ホストのアドレス、ポート指定しない場合はデフォルトでsshの22ポートが対象となる)

3.ansibleサーバにプレイブックを作成する。
/etc/ansible/test.yml
- hosts: client (インベントリに記述した[client]グループのホストを対象)
tasks:
- name: test
command: /home/root/test.sh

4.3で作成したプレイブックを実行してみる。
$ ansible-playbook -i hosts test.yml --ask-pass
うまく設定ができていれば、操作対象ホスト側で、1で作成したスクリプトが実行され、/home/root/text.txtファイルが作成され、中に”Hello World”と記述されているはず。

◇まとめ

今回は簡単にスクリプトを実行させるだけでしたが、結構いろいろなことが出来るものらしい。操作対象ホストも複数同時に指定できるみたいですし、DBのインストールなどをプレイブックにまとめて以後コマンド一つでインストールさせるなど使い方は様々みたい。

個人的には使いこなせるか微妙で、直でホストをいじりたくなりそうでした。
そんな感じで今回はansibleについてでした。