てくなべ (tekunabe)

ansible / network / automation

[Ansible] 「つまずき Ansible 【Part9】Ansible Tower か AWX」ふりかえり

はじめに

2020/07/04 に、YouTube Live で「つまずき Ansible 【Part9】Ansible Tower か AWX」という配信をしました。 実際に作業しながらエラーと戦って進めるシリーズです。

tekunabe.connpass.com

今回は、こまで作ったインベントリファイルやPlaybookなどを AWX に載せて実行しました。

やったことや、つまずいたエラーと原因、対処をふりかえります。

動画

youtu.be


■ やったこと

インベントリの作成

以下のインベントリファイル相当の設定を AWX のインベントリとして定義。

[ios]
rt01 ansible_host=192.168.1.11

f:id:akira6592:20200704211459p:plain
インベントリの作成

認証情報の作成

以下のグループ変数ファイルのうち、認証情報に当たる部分を定義。

---
# 一般的な変数
ansible_network_os: ios
ansible_connection: network_cli

# 認証情報ここから
ansible_user: ansible
ansible_password: p@ssword

ansible_become_method: enable
ansible_become_password: secret 
# 認証情報こここまで

ansible_become: true

f:id:akira6592:20200704211536p:plain
認証情報の作成

プロジェクトの作成

サンプル用に用意した githubリポジトリを指定したプロジェクトを作成。

Playbookの内容は以下。

---
- hosts: rt01
  gather_facts: false

  tasks:
    - name: no shut  Gi0/3
      ios_interfaces:
        config:
          - name: GigabitEthernet0/3
            description: test desc
            enabled: True

    - name: set ip address
      ios_l3_interfaces:
        config:
          - name: GigabitEthernet0/3
            ipv4:
              - address: 10.0.0.1/24

    - name: enalbe ospf
      ios_config:
        parents:
          - router ospf 1
        lines:
          - network 10.0.0.0 0.0.0.255 area 0
      tags:
        - ospf

    - name: save
      ios_config:
        save_when: modified
      tags:
        - save

f:id:akira6592:20200704211623p:plain
プロジェクトの作成

ジョブテンプレートの作成、実行

ここまで作成した、インベントリ、認証情報、プロジェクト、Playbook の組み合わせを定義。

f:id:akira6592:20200704211703p:plain
ジョブテンプレートの作成

ジョブテンプレートの改善

Playoobk 内で、インターフェース設定がベタ書きだった箇所を

            description: "{{ desc }}"

のように変数化。

これに伴い、AWX の Survey 機能で、ジョブテンプレート実行時に対話的に変数を設定できるようにした。

f:id:akira6592:20200704211418p:plain
Survery化

f:id:akira6592:20200704211736p:plain
実行結果


■ ジョブテンプレート実行時のつまずき

Playbook を更新したのに反映されない

原因

プロジェクトの SCM更新プション起動時のリビジョン更新 のチェックを入れ忘れた。

f:id:akira6592:20200704211945p:plain
チェック入れ忘れた

対処

プロジェクトの SCM更新プションの 起動時のリビジョン更新 のチェックを入れて再実行した。

Part10 にむけて

AWX の続きか、インベントリ関連を検討中です。