Playbookのすにぺっと
タイトルの通りのすにぺっと。pipのところがイマイチですが、ひとまずこれで通った。以下はVirtualBox上のVMをvagrant upした後に適用したもの。
- 対象ホスト:Ubuntu14.04
- Dockerをインストール
- Dockerイメージの起動
sample.yml
---
- hosts: all
vars:
myuser: docker
user: vagrant
sudo: yes
tasks:
- name: Install python-pip
apt: pkg=python-pip state=latest update_cache=yes
- name: Install Docker
shell: wget -qO- https://get.docker.com/ | sh creates=/etc/default/docker
- name: Add a docker user
user: name={{myuser}} shell=/bin/bash password=$1$3FCsXQtq$EKWn6gqWXj6Gto9ogr.1s. groups=sudo,docker append=yes
- name: Set a public key for docker user
authorized_key: user={{myuser}} key="{{ lookup('file','./files/secret.key.pub') }}"
- name: Upgrade pip
command: /usr/bin/easy_install -U pip
- name: install docker-py # 1.2.x has a bug
pip: name=docker-py version=1.1.0
- name: Run a phusion/baseimage container
docker:
name: test-container
image: phusion/baseimage:latest
pull: missing
command: "/bin/bash"
state: started
tty: True
ansible-playbook の完了後、コンテナが起動した。
docker@vagrant-ubuntu-trusty-64:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25b9a48b3568 phusion/baseimage:latest "/bin/bash" 52 seconds ago Up 51 seconds test-container
docker@vagrant-ubuntu-trusty-64:~$
docker@vagrant-ubuntu-trusty-64:~$ docker exec -it test-container bash
root@25b9a48b3568:/#
考察中
コンテナのビルドはDockerfileでやらせて(作っておいて)、AnsibleはRunだけさせるような感じがシンプルかな。コンテナに対してもAnsibleでプロビジョンするのもできなくないけど、わかりずらくそこはダルそう。できるだけ運用なんかシンプルな方がいい。