早速サンプル
- hosts
[docker_host]
docker_host01
- sample1.yml
- hosts: docker_host
connection: local
tasks:
- name: Create container
docker: image=centos:centos6 name=web01 ports=80:80 expose=80 tty=yes
- 実行
$ ansible-playbook -i hosts.yml sample2.yml
結果
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c9af58da34d9 centos:centos6 "/bin/bash" 13 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp web01
指定したコンテナが作成されている事が確認できました。
手法は、PlayBook中にconnection: localと記載する事です。
connection: localとする事で、AnsibleはLoclhostに接続しDockerコマンドを発行しています。
こちらと組み合わせる事で、
コンテナの作成→コンテナのプロビジョニングと一連の動作がAnsibleから行えると思います。