3.10 自動化
自動化ではOSSであるAWXを利用しています。自動化は、ワークフローの延長で、Playbookと連携することによりジョブの自動実行が可能になります。また、ジョブの実行結果を確認することもできます。
GitLabのリポジトリに登録されている「Playbookβ.yaml」というPlaybookをAWXにひもづけ、実行させるまでの流れを例として、AWXで必要な以下の手順について次項に示します。
- 認証情報の登録
- プロジェクトの設定
- インベントリーの登録
- ジョブテンプレートの登録
- ジョブの実行結果の確認
これらの登録や設定の操作を行うためには、それぞれの操作に合わせたAWXの組織が持つロールを割り当てられたユーザーである必要があります。
ロールの詳細については、「組織管理」やAWXのマニュアルを参照してください。AWXのマニュアルおよびバージョン、エディションについては付録 「OSSのバージョンおよびエディション、参照先のマニュアル」を参照してください。また、組織の概要や組織の作成や各ロールの割り当てについては「組織の設定」、「組織管理」を参照してください。
Playbookのファイルをリポジトリに登録する方法については「YAMLファイルのGitLab登録方法(GUI)」、「YAMLファイルのGitLab登録方法(CUI)」を参照してください。
なお、本アプリケーションでは、ジョブ実行のための認証情報の登録、インベントリーの登録、プロジェクトの設定、ジョブテンプレートの登録、および実行結果の確認、および実行環境の登録以外の機能については未サポート機能になります。使用しないでください。実行環境の登録については「カスタム実行環境のAWXへの登録」を参照してください。
Playbookの定義例は次の通りです。この例では、PlaybookからAPIを実行するため、Ops Iトークンを取得しています。
<定義例>
hosts: all
gather_facts: false
tasks:
- name: Get secret from Vault
set fact:
## {{ lookup('env', '<パラメータ名>') }} の形式でopsi_tokenの値を取得
my_secret: "{{ lookup('env', 'opsi_token') }}"
- name: Get job templates with token
uri:
url: "Ops IのURL/api/v1/practice-contexts"
method: GET
headers:
Content-Type: application/json
## 取得したトークンを使用
X-OpsI-Token: "{{ my_secret }}"
validate_certs: no
return_content: yes
register: result
- debug:
var: result.content
節構成
3.10.1 認証情報の登録
3.10.2 プロジェクトの設定
3.10.3 インベントリーの登録
3.10.4 ジョブテンプレートの登録
3.10.5 ジョブの実行結果の確認