Docker で Ansible サーバーを用意する

はじめに

こんにちは。Gustavです。
epel-release をインストールしておけば yum で簡単にインストールできる Ansible ですが、あえて Docker イメージを作成することにしました。

Dockerfile

これです。
branch でバージョン毎に作成するようにしています。 github.com
(たぶん)最小限のインストールになっているかと思います。
※利用する Ansible モジュールによっては pip モジュールが不足する可能性があります。

build image

git clone して、イメージを作成します。

[root@docker ~]# git clone https://github.com/g40244/docker-ansible.git -b ansibleX.X
[root@docker ~]# cd docker-ansible
[root@docker docker-ansible]# docker build --no-cache -t centos:ansibleX.X .

let's ansible

イメージが作成できたら、コンテナを起動するだけです。
Playbook を配置するため、-v オプションを使って Docker ホストのディレクトリをマウントしておくことをお勧めします。

[root@docker docker-ansible]# docker run -ith ansible --name ansibleX.X -v /root/ansible:/root/playbooks centos:ansibleX.X /bin/bash
[root@ansible ~]#

コンテナが起動したら、localhostping を実行してみましょう。
"inventory"なんてファイルはありませんし、たくさん WARNING は出ますが "pong" が表示されれば問題ありません。

[root@ansible ~]# ansible -i inventory -m ping localhost
localhost | SUCCESS => {
    "ping": "pong"
}
[root@ansible ~]#

Enjoy Ansible !!