てくなべ (tekunabe)

ansible / network automation / 学習メモ

2019-11-01から1ヶ月間の記事一覧

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

■ はじめに Ansible には、Playbook 実行時に予めどのような変更がせれるかを、実際に変更を加えることなくチェックできる、check モード (Dry-run)という機能があります。 これまでは、通常実行時も 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] ロール呼び出しに指定したタグはロールの各タスクに継承される(roles/import_role)

問題 突然ですが、問題です。 以下のようにタグのついた 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…

Cumulus Linux の仮想アプライアンス「Cumulus VX」を Vagrant で構築する

■ はじめに つい最近、ホワイトボックススイッチ向けのネットワークOSであるCumulus Linux に、仮想アプライアンス「Cumulus VX」があることを知りました。 この記事では、Vagrant と Virtual Box を利用し、4 台の Cumulus VX を構築、接続、設定して、疎通…

[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…

[ACI] オブジェクトの階層構造を Web で確認できる「Object Store」

はじめに 以前の記事で、WebUI で開いているオブジェクトの DN (Distinguished Name) を調べる方法 をご紹介しました。 今回は、階層構造などを含めてもっと詳細に確認できる画面「Object Store」をご紹介します。 環境 Cisco DevNet Sandbox (APIC 4.1) ■ …

[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…

[ACI] WebUI で開いているオブジェクトの DN (Distinguished Name) を調べる(画面右上の Show Debug Info )

aci

はじめに APIC の API を叩く処理を書いているときに、BD、EPG などの各オブジェクトの DN (Distinguished Name)を知りたい場面はないでしょうか。 便利なことに、APIC Web UI で調べたいオブジェクトを開いて、右上のギアアイコンから「Show Debug Info」を…

[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 をリクエストしたの…