15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWX (Ansible TowerのOSS 版) 事始め

Last updated at Posted at 2019-03-02

AWX事始め個人的備忘録

1. 想定

やってみること

  • ローカル環境で playbook を作成してVMマシンで実行・確認しながら開発を行う。
  • 作成した Playbook ファイルを GitLab サーバのブランチへ Push する。
    (イベントリーファイルは push しなくても良い)
  • AWXサーバの設定を行う
  • AWXサーバからターゲットサーバへ ansible-play を実施する。

Playbook のあるGitリポジトリ

  • git@GitLabサーバ:ansible/getting-started.git

実行する Playbook

  • simple-playbook.yml
---
- name: simple-playbook
  hosts: all
  become: true
  tasks:
    - name: htop をインストール
      yum:
        name: htop
        state: present

2. 構成

image.png

3. AWX設定概要

  • GitLab にある Ansible のリポジトリを AWX サーバへクローンする設定

  • 「認証情報」設定 ・・・ AWXサーバとGitLabサーバのSSH接続用キーペアの秘密鍵を登録する

  • 「プロジェクト」設定 ・・・ GitLabの情報を登録する

  • AWX からターゲットサーバへ Playbook を実行する設定

  • 「認証情報」設定 ・・・ AWXサーバとターゲットサーバのSSH接続用キーペアの秘密鍵を登録する

  • 「イベントリー」設定 ・・・ ターゲットサーバの情報を登録する

  • 「テンプレート」設定 ・・・ ターゲットサーバに実施する playbook の情報を登録してジョブを作成

4. 設定

4.1 GitLab にある Ansible のリポジトリを AWX サーバへクローンする設定

事前設定・確認

  • AWXサーバからGitLabサーバへのSSH接続を許可する
  • AWXサーバとGitLabサーバのSSH接続用キーペアを作成/用意する

認証情報の設定 (キーペアの秘密鍵を登録)

認証情報 → 緑の+アイコン
image.png

image.png
名前:認証情報設定の名前。ここでは「infra-gitlab」とする。
組織:「Default」で
認証情報タイプ:「ソースコントロール」を選択
ユーザー名:ここでは「git」
SCM秘密鍵: AWXサーバとGitLabサーバのSSH接続用キーペアの秘密鍵を登録

「保存」する

プロジェクトの設定 (GitLabの情報を登録)

プロジェクト → 緑の+アイコン
image.png

image.png
名前:プロジェクトの名前。ここでは「simple-playbook」とする。
組織:Defaultで
SCMタイプ:「Git」を選択
SCM URL:ここでは、git clone で sshプロトコルを使うので、「git@gitサーバのURL:グループ名/プロジェクト名.git」という感じで設定する。
SCM ブランチ/タグ:master
SCM 認証情報:上で作成した「infra-gitlab」を選択

「保存」すると、自動的に git clone が始まる

しばらくして、git clone が正常に完了すると緑色に点灯する
image.png

(補足)クローンしたリポジトリが保存される場所

  • デフォルトでは、AWXサーバ内の aws_task コンテナ内に保存される。
  • 保存場所をAWXサーバの例えば「/var/lib/awx/projects」に変更したい場合は、AWXインストール時に、"awx/installer/inventory" ファイルの project_data_dir の項目で設定する。

(補足)awx_task コンテナ内に保存した場合の確認方法の例

  • awx_task コンテナIDを確認

下の実行例では、awx_task のコンテナIDは 60532b491b02awx_task

# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                 NAMES	
60532b491b02        ansible/awx_task:3.0.1       "/tini -- /bin/sh -c…"   28 hours ago        Up 4 hours          8052/tcp                                              awx_task	
ab0a300b8b86        ansible/awx_web:3.0.1        "/tini -- /bin/sh -c…"   28 hours ago        Up 4 hours          0.0.0.0:80->8052/tcp                                  awx_web	
ee85e1253a44        memcached:alpine             "docker-entrypoint.s…"   28 hours ago        Up 4 hours          11211/tcp                                             memcached	
d3b8fc7e2425        ansible/awx_rabbitmq:3.7.4   "docker-entrypoint.s…"   28 hours ago        Up 4 hours          4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp   rabbitmq	
49f720cc0d5b        postgres:9.6                 "docker-entrypoint.s…"   28 hours ago        Up 4 hours          5432/tcp                                              postgres	
  • awx_task コンテナ(コンテナIDは 60532b491b02) にログインする
# docker exec -it 60532b491b02 /bin/bash
[root@awx awx]#	
  • リポジトリ確認
[root@awx awx]#	 ls /var/lib/awx/projects/
_11__simple_playbook  _11__simple_playbook.lock	

4.2 AWX からターゲットサーバへ Playbook を実行する設定

事前設定・確認

  • AWXサーバからターゲットサーバへのSSH接続を許可する
  • AWXサーバとターゲットサーバのSSH接続用キーペアを作成/用意する

認証情報の設定 (キーペアの秘密鍵を登録)

認証情報 → 緑の+アイコン
image.png

image.png
名前:認証情報設定の名前。ここでは「aws-dev」とする。
組織:「Default」で
認証情報タイプ:「マシン」を選択
ユーザー名:ここでは「ec2-user」
SCM秘密鍵: AWXサーバとターゲットサーバのSSH接続用キーペアの秘密鍵を登録
秘密鍵のパスフレーズ:必要に応じて

「保存」する

イベントリーの設定 (ターゲットサーバの情報を登録)

イベントリー → 緑の+アイコン → イベントリー
image.png

image.png
名前:イベントリー設定の名前。ここでは「ansible-target」とする。

ホスト → 緑の+アイコン
image.png

image.png
ホスト名:ターゲットサーバのグローバルIPアドレスを設定する。
組織:ここでは「ansible-target01」とする。

「保存」する

テンプレートの設定 (playbook の情報を登録してジョブを作成)

テンプレート → 緑の+アイコン → ジョブテンプレート
image.png

image.png
名前:テンプレート設定の名前。ここでは「test-template」とする。
ジョブタイプ:「実行」を選択
イベントリー:「ansible-target」を選択
プロジェクト:「simple-playbook」を選択
PLAYBOOK:「sample-playbook.yml」を選択
認証情報:「aws-dev」を選択

「保存」する

ジョブを実行

ロケットアイコンをクリック
image.png

image.png

15
17
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
15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?