LoginSignup
35
48

More than 3 years have passed since last update.

Docker内でAnsibleの勉強をしよう

Last updated at Posted at 2017-09-26

概要

先にDockerをある程度使いこなせて、これからAnsibleを勉強しようとしている方向けです。
勉強用のゲスト環境をvagrant + VMで作るのって気が引けませんか?私はそうなりました・・・
なので、せっかくDockerを覚えたならゲスト環境をDockerで構築したくなりませんか?
ということでDockerでゲスト環境とAnsible実行環境を1つにまとめました.。
また、Dockerの特性を活かして、Ansibleの勉強で汚した環境を躊躇なく捨てて常にクリーンな環境で勉強できるのが、Dockerならではと思います。

以下はこちらのコードをベースに説明していきます。

※コンテナにsshサーバを導入していますが、あくまでも勉強用に導入しています。
※すぐに学習始められるようにゲスト環境用のsshキー(パスキーなし)をあえて入れます。
(変えたい場合は再生成し、イメージを再ビルドしてください)

コンテナの構成

  • centos7、ubuntu20 ・・・ ゲスト環境(CentoOS派とUbuntu派がいると思いますのでw)
  • myansible ・・・ ubuntuベースのAnsible実行環境(2.9.x)

myansibleコンテナでansibleコマンドを実行し、各ゲスト環境を更新する流れです。

起動方法

以下のコマンドでゲスト環境とansible実行環境が起動されます。
なお、VSCodeのRemote Containerにも対応しておりますので、
該当の手順で起動することも可能です。

> docker-compose up -d

Ansibleコンテナにログイン


> docker exec -it myansible bash

疎通確認

myansibleコンテナの/myansible配下で以下のコマンドを実行

root@myansible:/myansible# ansible-playbook -i hosts book.yml

実行結果
以下の様に表示されればOKです!


PLAY [all] ***************************************************
TASK [Gathering Facts] ***************************************
ok: [ubuntu20]
ok: [centos7]

TASK [debug] *************************************************
ok: [centos7] => {
    "msg": "hello from centos7 !!"
}
ok: [ubuntu20] => {
    "msg": "hello from ubuntu20 !!"
}

PLAY RECAP ****************************************************
centos7      : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
ubuntu20     : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

playbookの実行

playbooksをmyansibleコンテナの/playbooksにマウントしているので、
playbooks内にplaybookなどを作成し、ansibleコマンドを実行してください。

ゲスト環境が増えた場合

  1. docker-compose.ymlの新たなゲストとなるサービスを追加
  2. playbooks/hostsに手順1で追加したサービス名を追加

参考

https://kizawa.info/docker-sshlogin
https://docs.docker.com/engine/examples/running_ssh_service/#build-an-eg_sshd-image

35
48
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
35
48