てくなべ (tekunabe)

ansible / network / automation

ansible

[Ansible] Network Resource Module の state: overridden の使い所を考えてみた

これは Ansible 3 Advent Calendar 2019 の9日目の記事です。 ■ はじめに Ansible 2.9 から Network Resource Module という新しいタイプのモジュールが続々と追加されています。 config オプションで設定内容を指定し、state というオプションで4種類の操…

[Ansible] Junos のスタティックルート設定モジュール junos_static_routes の概要と state オプションの仕様

これは Ansible 3 Advent Calendar 2019 の8日目の記事です。 ■ はじめに 開発中の Ansible 2.10 では、Juniper Junos 向けのスタティックルート設定モジュール junos_static_routes モジュール (末尾 s あり)が追加されます。 Ansible 2.9 から続々と追加…

[Ansible] YAML のキー重複時の挙動を DUPLICATE_YAML_DICT_KEY で設定する

これは Ansible 2 Advent Calendar 2019 の7日目の記事です。 はじめに Playbook は YAML というフォーマットで記述します。ときどき、ミスによって YAML のディクショナリのキーの重複して書いてしまうこともあるかと思います。 これまではキーの重複時は、…

[Ansible] リスト内の要素の重複を排除してユニークにする unique フィルター

これは Ansible 2 Advent Calendar 2019 の5日目の記事です。 はじめに Ansible には、値に対して様々な処理をするフィルターがあります。 unique フィルターは、リスト内の要素の重複を排除してユニークにするフィルターです。 簡単なサンプルでご紹介しま…

[Ansible] 変数の値が指定の範囲内の数値であることを assert モジュールでチェックする

これは Ansible 2 Advent Calendar 2019 の3日目の記事です。 ■ はじめに assert モジュールの that オプションで >= や <= などを利用することで、数値の範囲をチェックできます。 この記事では、簡単なサンプルをもとに説明します。 ■ 【要件1】 1〜1000 …

[Ansible] ansible-doc コマンドで Collection のモジュールのドキュメントを表示する

■ はじめに Ansible 2.9 から Ansible Collection という新しいコンテンツ配布形式が始まりました。(Ansible 2.8では実験的サポート) ロールのほかにも、モジュールやプラグインを含めて配布できるのが特徴です。 Collection でインストールするものは、An…

[Ansible] check モードの実行ログに [CHECK MODE] という印をつける方法

■ はじめに Ansible には、Playbook 実行時に予めどのような変更がせれるかを、実際に変更を加えることなくチェックできる、check モード (Dry-ryn)という機能があります。 これまでは、通常実行時も check モード実行時も、実行ログ上は特に変わりはありま…

[Ansible] Ansible 2.9 からデフォルトでネットワークの fact も収集される

■ はじめに fact といえば、サーバー系モジュールの場合は、gather_facts: yes(デフォルト)で収集されましたが、ネットワークモジュールの場合は事情が異なりました。 具体的には、gather_facts: yes では、Ansible コントロールノード自身の fact が収集…

[Ansible] role の vars ディレクトリ配下に複数の変数ファイルを配置してまとめて読み込む方法

■ はじめに role を構成する際、vars ディレクトリ配下に main.yml を作成して、変数を読み込ませます。 普通に考えると、vars/main.yml という1つのファイルしか読み込めなさそうですが、複数のファイルに分割しておきたいこともあるかもしれません。 公式…

[Ansible] Playbook の書き出しを - hosts か hosts か迷ったら

■ はじめに このツイートの詳細です。 めちゃくちゃわかります。Playbook は Play をまとめたもの、と意識するようになってから、 - hosts がぱっとでてくるようになりました。 https://t.co/E6VX3oRPF8— よこち(yokochi) @ Ansible実践ガイド 第3版 (@akira…

[Ansible] Ansible Tower / AWX の設定済みオブジェクトをエクスポート、編集、インポートする(ワークフロー編)

はじめに Ansible Tower / AWX で画面から設定を続けていくと、自動化したくなるのではないでしょうか。 これから新たに設定する分は、Ansible で Ansible Tower / AWX の各オブジェクトを管理できる tower_* モジュールを利用するのも手かと思います。 では…

[Ansible] ロール呼び出しに指定したタグはロールの各タスクに継承される

問題 突然ですが、問題です。 以下のようにタグのついた Playbook、role があるとします。 tag_playbook.yml - hosts: localhost gather_facts: no roles: - role: testrole tags: - tag_parent roles/testrole/tasks/main.yml - name: task1 debug: msg: "t…

[Ansible] Ansible Tower / AWX のワークフロー定義を YAML で表示する(tower-cli編)

はじめに Ansible Tower / AWX では、ワークフロービジュアライザーという画面で、ワークフローを可視化できます。 ワークフローの定義 ビジュアル的に可視化されていると直感的で分かりやすいです。一方で、複数のワークフロー定義を比較したいなどの場合、…

[Ansible] Ansible で Ansible Tower / AWX のワークフローを作成する(tower_workflow_template モジュール編)

■ はじめに Ansible には Ansible Tower の各オブジェクトを管理するモジュールがあります。 ワークフローを管理するモジュールは tower_workflow_template です。 環境 Ansible 2.9.0 AWX 7.0.0 ■ 環境の準備 Ansible 側に ansible-tower-cli が必要なので…

[Ansible] ネットワーク機器に接続する条件はバージョンやコネクションブラグインによって異なる

はじめに Ansible では、ネットワークモジュール向けに主に以下の専用コネクションプラグインが用意されています(組み合わせはこちら)。 network_cli netconf httpapi Ansible のバージョンや、利用するコネクションプラグインによって、ネットワーク機器…

[Ansible] F5 BIG-IP への接続確認には ping モジュールではなく bigip_* を利用するしかないのではという話

はじめに 先日開催された Ansibleもくもく会 (サーバ編 & NW編)2019.11では、ネットワーク編の環境として F5 BIG-IP の環境を割り当ていただきました。 書いていく Playbook は、こんな感じものでした(引用元)。 --- - name: GRAB F5 FACTS hosts: f5 co…

[Ansible] Ansible 2.9 リリース、便利機能や注意点まとめ

■ はじめに ■ 共通 Ansible Galaxy / Ansible Collections 制御 / 変数 その他 ■ Package ■ Service ■ Cloud、VMware ■ Network ■ Windows ■ Database ■ Storage ■ Crypto ■ まとめ おまけ ■ はじめに 2019/10/31 に Ansible 2.9.0 がリリースされました。60…

[Ansible][ACI] Vault で暗号化した秘密鍵を署名ベースの認証方式で利用する

【目次】 はじめに ■ 秘密鍵の暗号化(Ansible Engine / Ansible Tower 共通) ■ Ansible Engine の場合 Playbook 実行 ■ Ansible Tower の場合 準備: 認証情報(Credential)の登録 1. file lookup plugin を利用する方法 Playbook 実行 2. インベントリ変…

[Ansible][ACI] モジュールの冪等性と check モード(dry-run)の対応について

■ はじめに Ansible の ACI モジュールの冪等性とcheck モード(dry-run)の対応について、簡単なサンプルをもとにご説明します。 環境 Cisco DevNet Sandbox (APIC 4.1) Ansible 2.9.0 ■ 冪等性あり すべて自分で検証したわけではないですが、APIC REST API…

[Ansible] Fortigate (fortiosモジュール)を httpapi コネクションプラグイン経由で触ってみた

はじめに Ansible 2.8 以降、400以上大量に増えている fortios モジュール。Ansible 2.9 では httpapi コネクションプラグインにも対応しました。 httpapi コネクションプラグインに対応することにより、以下のようなメリットがあります。 Playbook がスッキ…

[Ansible][ACI] EPG に紐付けされている Contract 一覧を取得する(aci_rest モジュール版)

■ はじめに 以前の記事 [Ansible][ACI] EPG に紐付けされている Contract 一覧を取得する - てくなべ (tekunabe)で、aci_epg_to_contract モジュール を利用して、EPG に紐付けられている Contract 一覧を取得するサンプルをご紹介しました。 一方で、aci_re…

[Ansible][ACI] EPG に紐付けされている Contract 一覧を取得する(aci_epg_to_contract モジュール版)

■ はじめに aci_epg_to_contract モジュール は、EPG に対して Contract を紐付けれられます。state オプションに query を指定することで、紐付けされている Contract 一覧を取得できます。 この記事では簡単なサンプルをもとにして説明します。 環境 Cisco…

[Ansible] ansible-plyabook コマンドに複数の Playbook を指定すると連続で実行される

はじめに たまたま気がついたのですが、ansible-plyabook コマンドに複数のPlaybook を指定すると連続で実行されます。 公式ドキュメントの ansible-playbook コマンド説明ページや、ヘルプには以下のような記載があります。 usage: ansible-playbook [-h] […

[Ansible] Cisco ACI モジュールの state: query でオブジェクトの情報を取得する

【目次】 ■ はじめに ■ 使い方 基本的な使い方 特定の Tenant 情報を取得 補足: query の条件に使用される値と使用されない値がある 全 Tenant 情報を取得 少し応用的な使い方 パターン1. 何も指定なし パターン2. Tenant のみ指定 パターン3. Tenant、AP を…

[Ansible] Cisco ACI モジュールの署名ベース認証方式の仕組みと準備とPlaybookの書き方

【目次】 ■ はじめに 前提環境 (参考)パスワードベース認証方式の制限 ■ 仕組み 予めしておくこと リクエストごとに行っていること ■ 環境準備の手順 Ansible 側でユーザー側で証明書(公開鍵)と秘密鍵を生成する APIC 側でユーザーの証明書を登録する 手…

[Ansible] ACIモジュールでリクエストしたURLを知るには output_level: debug を指定する

■ はじめに Ansible には多数のACIモジュールがあり、内部で APIC の REST API を叩く仕様です。 通常時はあまり意識する必要がないかも知れませんが、デバッグ時など細かい情報を知りたい場合「このタスクでどのような REST API の URL をリクエストしたの…

[Ansible] 「Ansible 実践ガイド 第3版」執筆中にあげた issue、出会った issue

book.impress.co.jp はじめに こちらの記事でお伝えしましたが、この度「Ansible 実践ガイド 第3版」の「5-3 ネットワーク機器の構成管理」を執筆させていただきました。 この記事では、裏話的な、執筆中に GitHub にあげた issue や、出会った issue をご紹…

[Ansible] 公式ドキュメントに優先順に関する総合的なページができた(設定、コマンドライン引数、Playbook Keywords、変数)

はじめに 2019年7月、Ansible の公式ドキュメントに、優先度に関する総合的なページができていました。 docs.ansible.com 左メニューのここから 対象は以下の4つです。 設定 コマンドライン引数 Playbook Keywords 変数 今まで、変数の優先順位や、ansible.c…

[Ansible] モジュールのオプションのデフォルトを自分で指定できる module_defaults

■ はじめに Network Features Coming Soon in Ansible Engine 2.9 を見ているときにたまたま知ったのですが、モジュールのオプションのデフォルトを自分で指定できる module_defaults というディレクティブがあります。 タスクごとに、毎回指定しているよう…

[Ansible] AWX を RHEL 8 にインストールする(HTTPS化もあり)

■ はじめに Red Hat Enterprise Linux 8 (以下、RHEL 8)に、Ansible Tower のアップストリームである AWX をインスールする手順をまとめます。 環境 RHEL 8.0 on AWS EC2 t2-medium (ami-0520e698dd500b1d1) Python 3.6.8 デプロイ方法 docker-compose AWX …