2022年2月26日土曜日

Ansible AWXでGitHubに配置したPlaybookを実行する

先日以下記事にて、Ansible AWXをMinikube環境にインストールする手順を記載した。

今回はインストールしたAnsible AWXを使って、実際にPlaybookを実行する手順を記載する。

なお、私のインストールしたAnsible AWXでは設定が不足しているのかローカルに保存したPlaybookの実行ができないため、今回はAnsible AWXでGitHubに配置したPlaybookを実行する手順を記載する。

環境

今回利用するAWXのバージョンは以下の通り。インストール手順は前回の記事を参照いただきたい。

  • AWX : 19.5.0

また、GitHubは私のアカウントの以下リポジトリを使用する。

Playbookとしてwin_ping.ymlというYAMLを以下の通り作成した。win_pingによるWindows ServerへAnsibleからの疎通確認を実施するシンプルな内容となっている。

---
- name: Test win_ping
  hosts: all

  tasks:
    - name: Test win_ping
      win_ping:

Ansible AWXでPlaybookを実行する手順

1. プロジェクトの作成

左メニューの「リソース」→「プロジェクト」→「追加」ボタンを選択する。

ここでは、Ansible AWXでPlaybookの取得方法を定義する「プロジェクト」を作成する。今回は以下の通り設定した。

設定項目 設定値 説明
名前 GitHub Test 任意の名前を指定。
ソースコントロール認証情報タイプ Git GitHubやGitLabを使用する場合は「Git」を指定。Git以外にもSubversionなどが指定可能。
ソースコントロールのURL https://github.com/tech-mmmm/ansible-test.git Playbookを配置しているGitHubのリポジトリのURLを指定。
ソースコントロールブランチ/タグ/コミット main GitHubのリポジトリのブランチ名を指定。

プロジェクト作成後、GitHubに配置されているPlaybook情報を読み込む必要がある。作成したプロジェクトの左側にある「同期」ボタンを押して同期処理を実行しよう。問題なく同期できればStatusが「成功」となる。

2. インベントリーの作成

左メニューの「リソース」→「インベントリー」→「追加」ボタン→「インベントリーの追加」を選択する。

ここでは、Playbook実行対象のホストを指定する「インベントリー」を作成する。インベントリー自体は名前のみ指定すれば問題ない。

設定項目 設定値 説明
名前 Test Inventory 任意の名前を指定。

3. ホストの作成

作成したインベントリーを選択し、「ホスト」タブ→「追加」ボタンを三択する。

ここでは、実際の実行対象の「ホスト」を追加する。

設定項目 設定値 説明
名前 192.168.11.81 Playbook実行対象となるホスト名またはIPアドレスを指定する。
変数 JSON 「YAML」または「JSON」を選択する。今回は「JSON」を指定する。
変数の詳細 以下を参照。 ポート番号の指定、接続プロトコルとしてWinRMを利用、証明書検証をスキップするため変数を指定する。
{
  "ansible_port": 5986,
  "ansible_connection": "winrm",
  "ansible_winrm_server_cert_validation": "ignore"
}

4. 認証情報の作成

左メニューの「リソース」→「認証情報」→「追加」ボタンを選択する。

ここでは、Playbook実行時のユーザ名、パスワードのセットとなる「認証情報」を指定する。

設定項目 設定値 説明
名前 Test User 任意の名前を指定。
認証情報タイプ マシン 各種認証情報のタイプを指定できる。今回のようにWindows ServerやLinuxのホストを対象とする場合は「マシン」を指定する。
ユーザー名 ansible Playbook実行対象のユーザー名を指定。今回は「ansible」とした。
パスワード 指定したユーザのパスワード 上記で指定したユーザのパスワードを指定する。

5. ジョブテンプレートの作成

左メニューの「リソース」→「テンプレート」→「追加」ボタン→「新規ジョブテンプレートの追加」を選択する。

これまでに作成した「プロジェクト」、「インベントリー」、「認証情報」を利用して、ようやく実際にPlaybookを実行するための「ジョブテンプレート」を作成することができる。

設定項目 設定値 説明
名前 Test Job 任意の名前を指定。
ジョブタイプ 実行 「実行」または「チェック」を選択できる。今回は「実行」を指定する。
インベントリー Test Inventory 作成したインベントリーを指定する。
プロジェクト GitHub Test 作成したプロジェクトを指定する。
Playbook win_ping.yml 実行するPlaybookを指定する。もし何も表示されない場合は、きちんとGitHubの情報が連携されてないため、再度設定を確認しよう。
認証情報 Test User 作成した認証情報を指定する。

6. Ansible AWXでPlaybookを実行

それでは実際にジョブテンプレートを起動してPlaybookを実行してみよう。

作成したジョブテンプレートの左側にある「テンプレートの起動」ボタンを押すことでジョブテンプレートを実行できる。

実行結果がすべて「OK」となっており、問題なくPlaybook実行に成功していることを確認できる。

以上で、Ansible AWXを用いたPlaybookの実行は完了となる。

0 件のコメント:

コメントを投稿

人気の投稿