はじめに
2020/07/04 に、YouTube Live で「つまずき Ansible 【Part9】Ansible Tower か AWX」という配信をしました。 実際に作業しながらエラーと戦って進めるシリーズです。
今回は、こまで作ったインベントリファイルやPlaybookなどを AWX に載せて実行しました。
やったことや、つまずいたエラーと原因、対処をふりかえります。
動画
■ やったこと
インベントリの作成
以下のインベントリファイル相当の設定を AWX のインベントリとして定義。
[ios] rt01 ansible_host=192.168.1.11
認証情報の作成
以下のグループ変数ファイルのうち、認証情報に当たる部分を定義。
--- # 一般的な変数 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
プロジェクトの作成
サンプル用に用意した 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
ジョブテンプレートの作成、実行
ここまで作成した、インベントリ、認証情報、プロジェクト、Playbook の組み合わせを定義。
ジョブテンプレートの改善
Playoobk 内で、インターフェース設定がベタ書きだった箇所を
description: "{{ desc }}"
のように変数化。
これに伴い、AWX の Survey 機能で、ジョブテンプレート実行時に対話的に変数を設定できるようにした。
■ ジョブテンプレート実行時のつまずき
Playbook を更新したのに反映されない
原因
プロジェクトの SCM更新プションの 起動時のリビジョン更新
のチェックを入れ忘れた。
対処
プロジェクトの SCM更新プションの 起動時のリビジョン更新
のチェックを入れて再実行した。
Part10 にむけて
AWX の続きか、インベントリ関連を検討中です。