Help us understand the problem. What is going on with this article?

Ansible AWXのホストとしてdocker-composeでCentOS7を追加する

概要

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 は以下の通りです。

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 からホストを追加

ログイン後、画面左側メニューから「インベントリー」をクリックし、「+」をクリックします。

スクリーンショット (3).png

「インベントリー」と「スマートインベントリー」が表示されるので
「インベントリー」をクリックします。

スクリーンショット (4).png

新しくインベントリを作成するため、「新規インベントリー」画面で、
「名前」に centos7 を入力、「組織」は「Default」を選択し、
「保存」をクリックします。

スクリーンショット (10).png

「ホスト」をクリックします。

スクリーンショット (11).png

ホストに対象を追加するため「+」をクリックします。

スクリーンショット (12).png

「ホストの作成」画面で「ホスト名」に「centos7-1」と入力し、「保存」をクリックします。
ここで指定するホスト名は上記のdocker-compose.yaml で指定した hostname を指定します。
docker-compose 内では名前解決ができるので、それを利用しています。

スクリーンショット (13).png

ホストの追加ができたら「ホスト」をクリックして一覧に戻ります。

スクリーンショット (14).png

一覧に「centos7-1」が追加されていることが確認出来たら、
再び「+」をクリックして残りのホストも追加していきます。

スクリーンショット (15).png

以下のように、docker-compose.yaml で定義した CentOS7 が追加できました。

image.png

認証情報の登録

次に、登録したホストの認証情報を追加します。
画面左側メニューから「認証情報」をクリックし、「+」をクリックします。

スクリーンショット (5).png

「新規の認証情報」画面で、「名前」に「CentOS7 root」、「認証情報タイプ」に「マシン」、
「ユーザ名」にroot、「パスワード」に「P@ssw0rd!」を入力し、画面右下の「保存」を
クリックします。

※ この CentOS7 の root のパスワードは「P@ssw0rd!」に設定されています。

スクリーンショット (6).png

以上で認証情報の登録は終了です。

インベントリに対してコマンドを実行してみる

ログイン後、画面左側メニューから「インベントリー」をクリックし、「centos7」をクリックします。

スクリーンショット (22).png

「ホスト」をクリックします。

スクリーンショット (23).png

「centos7-1」~「centos7-5」にチェックを入れ、「コマンドの実行」をクリックします。

スクリーンショット (24).png

「コマンドの実行」画面で、
「モジュール」で「shell」を選択、「引数」に「uname -n」を入力し、
「マシンの認証情報」で「CentOS7 root」を選択し、「起動」をクリックします。

スクリーンショット (19).png

実行結果が表示され、各CentOS7のホスト名が表示されています。
これで疎通の確認ができました。

image.png

以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away