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トークンを取得しています。
<定義例>

- name: get_license_automation_usage
  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 ジョブの実行結果の確認