てくなべ (tekunabe)

ansible / network automation / 学習メモ

2019-01-01から1年間の記事一覧

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

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

CentOS 8 を VirtualBox にインストールする場合は「Server with GUI」以外を選択しないと画面が乱れる

■ はじめに CentOS 8 をVirtualBox にインストールしようとしたら、終盤に以下のような乱れた画面になってしまいました。 乱れた画面 これは、実際は LICENSING の画面のようです。 Tab + Enter を駆使してどうにか切り抜けた方もいらっしゃいました。 本来…

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

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

ネットワーク自動化Pythonライブラリ netmiko、NAPALM が Python 2系サポートの最終バージョンをリリース

はじめに ネットワーク自動化Pythonライブラリである、netmiko、NAPALMが、Python 2系 サポートの最終バージョンをリリースしました。それぞれ、netmiko 2.4.2、NAPALM 2.5.0 です。 次回のリリースからは Python 3.6 以降のみのサポートととしています。 バ…

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

[Ansible] CentOS 8 に Ansible をインストールする(Python 3 + venv + pip)

■ はじめに CentOS 8 では、システムで利用する Python が Python 3 になったり、デフォルトでは python コマンドが利用できなかったりと、CentOS 7 とは Python 事情が異なります。そのため、Ansible を pip でインストールする場合も、CentOS 7 とは少し手…

[Ansible] 利用する Python をタスクごとに切り替える方法(ansible_python_interpreter をタスク変数で指定)

■ はじめに Ansible では、ターゲットノード(SSH接続先)で利用する Python を ansible_python_interpreter という変数で明示的に指定できます。 この変数は、インベントリ変数や host_vars の他にも、タスク変数としても指定できます。そのため、タスクご…

[Ansible] Cisco ACI モジュールの REST API ログイン処理の流れ

はじめに Ansible には Cisco ACI 対応のモジュールが多数用意されています。 ACI の REST API を利用しているのだろうな、という予想はすぐついたのですが、実際のログインの処理を覗いてみたくなりました。 ACI モジュール共通だと思いますが、ここでは代…

Visual Studio Code 上のコードをパワポにコピペするとシンタックスハイライトしたままペーストできる

はじめに タイトルのままですが、 Visual Studio Code(以下、VS Code) 上のコードをパワポにコピペすると、シンタックスハイライトしたままペーストできます。 パワポで資料を作る際、サンプルコードを貼る場合に便利です。 シンタックスハイライトしない…

[Ansible] Collection 管理の mazer は Ansible 2.9 で非推奨に、ansible-galaxy collection サブコマンドに統合へ

はじめに Ansible 2.8 から Ansible Collection という新たな配布方式が、Experimental support という位置づけではじまりました。 ロールだけでなく、モジュール、プラグインもまとめて配布できるのが特徴です。 galaxy.ansible.comでも、Type を Collectio…

[Ansible] 見知らぬ Ansible 環境に入った時に確認したいこと

はじめに 「ここに Ansible があります。あなたはこの環境を使います。」と言われた時、何をすればよいでしょうか。 この記事では、自分で管理していない環境の Ansible を使う事になった場合に、環境を調査するためのコマンドを紹介します。 以下ツイートの…

[Ansible] Visual Studio Code で Playbook を書く時に便利な拡張たち

はじめに Visual Studio Code(以下、VS Code)で Ansible の Playbook を書く時に、私が便利に利用させてもらっている拡張をご紹介します。 「自分は Windows で VS Code 使ってて、Ansible は SSH 先の Linux だから関係ないや。」という方も、最後の「Rem…