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で、
今回はここに操作対象ホストサーバのアドレスを追記する。

●モデュール
コマンドのような、操作が書かれたもの。

●プレイブック
スクリプトのようなもので、モジュールを複数組み合わせ、操作対象ホストにいろいろな操作を行うもの。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についてでした。

この記事を書いた人