てくなべ (tekunabe)

ansible / network automation / 学習メモ

2020-02-01から1ヶ月間の記事一覧

Cisco DevNet Associate Exam v1.0 (DEVASC 200-901) に合格しました

はじめに 2020/02/24 にシスコ認定技術者試験の制度が大きく改定されました。 それに伴い新しく始まった、ネットワーク自動化、プログラマビリティに関する資格である DevNet Associate Exam v1.0 (DEVASC 200-901) を受験して合格しました。 この記事では私…

[Ansible] Junos の interface の状態を debug で表示する(display json 編)

はじめに 以前の記事で、gather_facts を利用して Junos のインターフェースの状態を取得して debug で表示するという Playbook をご紹介しました。 tekunabe.hatenablog.jp 今回は普通に show interfaces terse コマンドを利用します。ただし、せっかく JSO…

[Ansible] Junos の interface の状態を debug で表示する(gather_facts 編)

はじめに 以下の記事で、Junos のインターフェースの状態を取得して debug で表示するという Playbook が紹介されていました。 qiita.com 面白いネタだなと思って、拝見しました。特に、以下のディクショナリをループする書き方が参考になりました。 with_it…

[Ansible] 最初の文字だけ大文字に変換する capitalize フィルター

capitalize フィルターは、最初の文字だけ大文字に変換するものです。 Ansible の公式ドキュメントの Filter ページには載っていませんが、Jinja2 のドキュメントに載っています。 以下に、使用例を紹介します。 --- - hosts: localhost gather_facts: false…

ネットワーク設定自動化で、いつ、何を確認するか(JANOG45 の Fastly さんの発表から学ぶ)

はじめに JANOG45 Meeting in Sapporo で、Fastly の土屋さんから「急成長を支えるFastlyスケーラブル・グローバルネットワーク」という発表がありました。 www.janog.gr.jp シンプルさを追及した設計や、自動化の話があって大変興味深いものでした。 なかで…

[Ansible] 見やすい json に整形するには to_nice_json フィルターが nice で便利

はじめに Ansible には、テキストデータの内容を整形するための多数のフィルターがあります。 json 形式に変換するフィルターもいくつかあり、そのなかで to_nice_json フィルターは、人にとって見やすく整形するのにとても便利です。 公式ドキュメントでは…

[Ansible] パターン表記したインベントリの確認は ansible-inventory コマンドが便利

はじめに Ansible のインベントリファイルでは、効率よく定義するためにパターン表記ができます。 例えば、 web_[1:3] は web_1 web_2 web_3 と同じです。 この様にパターン表記を利用した場合、うまく解釈されるかどうか事前に確認したくなるのではないでし…

[Ansible] set_fact の利用を減らしたい時に考えること

はじめに set_fact モジュールは、Playbook 内のタスクとして、新たな変数を定義できるモジュールです。 便利といえば便利なのですが、プログラムでいう変数の代入のようなことをタスクで実現させるには、少々大げさに感じることがあります。 set_fact モジ…

[Ansible] OSPF 設定後にネイバーが張られるまで待つ(until の活用)

はじめに Ansible には、指定した条件を満たすまでタスクを繰り返す until というループ機能があります。 until を利用すると、ネットワーク機器に設定を投入した後に、期待した状態になるまで待つ、といった処理を Playbook で実現できます。 この記事では…

[Ansible] 変数名を変数で指定する

はじめに vars lookup pluginは、変数名を引数にして変数の値を取得できます。 この性質を利用すると、変数名を変数で指定して、その値を取得できます。 簡単な例でご紹介します。 サンプル Playbook 値を取得したい変数名を、var_name 変数の値で指定します…

[Ansible] ネットワーク機器のコンフィグ生成ツールとしての Ansible

はじめに Ansible にはネットワークモジュールが多数用意されていて、ネットワーク機器に接続してコマンドを実行できます。 では、機器に接続できない環境で投入コンフィグを準備するにはどのようにすればよいでしょうか。 それには template モジュールが利…

ケーブルの接続先を追う時に面ファスナー(マジックテープ/ベルクロ)を使うと便利

はじめに ケーブルを追っていく方法を紹介した以下ツイートの補足です。 機器につながってるLANケーブルや電源の先っちょをおっていくとき、普通に指でやると途中でわからなくなっちゃったりしますが、マジックテープ的なものをくくりつけて、つるつるーーっ…

[Ansible] httpd.conf を編集後にファイルの検証処理を挟む方法

はじめに Ansible の lineinfile や replace などのファイルを編集するモジュールには validate オプションを備えているものがあります。 validate オプションには編集後のファイルの妥当性を検証するコマンドを指定します。 これにより、編集に問題がなけれ…

[Ansible] lookup plugin 名は大文字小文字を意識しておいた方が良い(2.10から区別される)

はじめに Ansible には lookup plugin という仕組みがあり、ファイルの内容を取得したり、指定したURLの情報を取得したりできます。(一覧はこちら) たとえば、file という lookup plugin であれば、 lookup("file", "ファイル名") のような形式で指定しま…