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で、
今回はここに操作対象ホストサーバのアドレスを追記する。
●モデュール
コマンドのような、操作が書かれたもの。
●プレイブック
スクリプトのようなもので、モジュールを複数組み合わせ、操作対象ホストにいろいろな操作を行うもの。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についてでした。