概要
docker-compose で動作している AWX から、同じく docker-compose で動作する CentOS7 を5台追加します。
前提
Ansible AWX が動作していること。
手順
以下の docker-compose.yaml を実行します。
この時、docker network ls で事前に確認していた awx が
動作するネットワークにCentOS7 を参加させることで AWX と
CentOS7 の間で通信が可能になります。
# docker network ls
NETWORK ID NAME DRIVER SCOPE
f85aa36a3ee1 awxcompose_default bridge local ★ AWX のネットワーク
af68638ee18c bridge bridge local
ba0fb50601f0 host host local
812f8bdace1c none null local
#
各CentOS7のネットワーク設定と、
networks:
- awxcompose_default
末尾のネットワーク自身の設定がポイントです。
networks:
awxcompose_default:
external: true
docker-compose.yaml は以下の通りです。
version: '2'
services:
centos7-1:
container_name: centos7-1
hostname: centos7-1
image: solaris64sparc/centos7:systemd-sshd-selinux
ports:
- "10001:22"
privileged: true
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
networks:
- awxcompose_default
centos7-2:
container_name: centos7-2
hostname: centos7-2
image: solaris64sparc/centos7:systemd-sshd-selinux
ports:
- "10002:22"
privileged: true
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
networks:
- awxcompose_default
centos7-3:
container_name: centos7-3
hostname: centos7-3
image: solaris64sparc/centos7:systemd-sshd-selinux
ports:
- "10003:22"
privileged: true
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
networks:
- awxcompose_default
centos7-4:
container_name: centos7-4
hostname: centos7-4
image: solaris64sparc/centos7:systemd-sshd-selinux
ports:
- "10004:22"
privileged: true
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
networks:
- awxcompose_default
centos7-5:
container_name: centos7-5
hostname: centos7-5
image: solaris64sparc/centos7:systemd-sshd-selinux
ports:
- "10005:22"
privileged: true
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
networks:
- awxcompose_default
networks:
awxcompose_default:
external: true
docker-compose で実行
次のように、フォルダを作成し docker-compose.yaml を配置し CentOS7 を起動させます。
# mkdir centos7
# vi docker-compose.yaml
→ 上記 docker-compose.yaml を貼り付け。
# docker-compose up -d
AWX からホストを追加
ログイン後、画面左側メニューから「インベントリー」をクリックし、「+」をクリックします。
「インベントリー」と「スマートインベントリー」が表示されるので
「インベントリー」をクリックします。
新しくインベントリを作成するため、「新規インベントリー」画面で、
「名前」に centos7 を入力、「組織」は「Default」を選択し、
「保存」をクリックします。
「ホスト」をクリックします。
ホストに対象を追加するため「+」をクリックします。
「ホストの作成」画面で「ホスト名」に「centos7-1」と入力し、「保存」をクリックします。
ここで指定するホスト名は上記のdocker-compose.yaml で指定した hostname を指定します。
docker-compose 内では名前解決ができるので、それを利用しています。
ホストの追加ができたら「ホスト」をクリックして一覧に戻ります。
一覧に「centos7-1」が追加されていることが確認出来たら、
再び「+」をクリックして残りのホストも追加していきます。
以下のように、docker-compose.yaml で定義した CentOS7 が追加できました。
認証情報の登録
次に、登録したホストの認証情報を追加します。
画面左側メニューから「認証情報」をクリックし、「+」をクリックします。
「新規の認証情報」画面で、「名前」に「CentOS7 root」、「認証情報タイプ」に「マシン」、
「ユーザ名」にroot、「パスワード」に「P@ssw0rd!」を入力し、画面右下の「保存」を
クリックします。
※ この CentOS7 の root のパスワードは「P@ssw0rd!」に設定されています。
以上で認証情報の登録は終了です。
インベントリに対してコマンドを実行してみる
ログイン後、画面左側メニューから「インベントリー」をクリックし、「centos7」をクリックします。
「ホスト」をクリックします。
「centos7-1」~「centos7-5」にチェックを入れ、「コマンドの実行」をクリックします。
「コマンドの実行」画面で、
「モジュール」で「shell」を選択、「引数」に「uname -n」を入力し、
「マシンの認証情報」で「CentOS7 root」を選択し、「起動」をクリックします。
実行結果が表示され、各CentOS7のホスト名が表示されています。
これで疎通の確認ができました。
以上です。