LoginSignup
4
9

More than 5 years have passed since last update.

Amazon LinuxをDockerで起動してansibleを適用する

Posted at

Ansibleの検証するのにいちいちEC2でAmazonLinuxを起動しないといけないのは面倒なので、dockerで試してみた。

Dockerの準備

Docker for Macのインストール

Get started with Docker for Mac

Amazon ECR registryにログイン

$ $(aws ecr get-login | sed 's/\-e none //g')
Login Succeeded

イメージを取得

$ docker pull amazonlinux:latest
latest: Pulling from library/amazonlinux
c9141092a50d: Pull complete
Digest: sha256:2010c88ac1e7c118d61793eec71dcfe0e276d72b38dd86bd3e49da1f8c48bf54
Status: Downloaded newer image for amazonlinux:latest

ansible-playbook適用対象として起動しておく

$ docker run -itd --name example amazonlinux:latest

ansible側の準備をする

$ ansible --version
ansible 2.2.1.0
  config file = /Users/example/.ansible.cfg
  configured module search path = Default w/o overrides

docker-pyをインストール

$ pip install docker-py

inventory/docker.pyをプロジェクト内に取得

$ curl https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/docker.py -o inventory/docker.py
$ chmod 755 inventory/docker.py

playbookを作成

example.yml
---
- hosts: example # 先ほどdocker runで指定したnameの値を指定
  connection: docker
  user: root
  tasks:
  - name: ping
    ping:

実行

$ ansible-playbook example.yml -i inventory/docker.py

PLAY [example] *****************************************************************

TASK [setup] *******************************************************************
ok: [example]

TASK [ping] ********************************************************************
ok: [example]

PLAY RECAP *********************************************************************
example                    : ok=2    changed=0    unreachable=0    failed=0

注意点

Amazon Linux AMIとAmazon Linux Container Imageは標準で入っているモジュールが違うので、注意が必要。

4
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
9