てくなべ (tekunabe)

ansible / network automation / 学習メモ

ansible

[Ansible] FQCN で省略系のモジュール名を指定できる仕組み(cisco.ios.ios_config を cisco.ios.config で)

この記事は、Ansible Advent Calendar 2021 (Adventar版) 20日目の記事です。 はじめに 先日 Ansible もくもく会に参加させていただきました。(参加レポート) ネットワーク編のコンテンツでは、たびたび cisco.ios.config のような、少しモジュール名を省…

[Ansible] 新コンテツの Ansible もくもく会に参加してみた

この記事は、Ansible Advent Calendar 2021 (Adventar版) 17日目の記事です。 はじめに ひさびさに開催された Ansible もくもく会に参加しました。 ansible-users.connpass.com 今回から新しいコンテンツ。環境は Ansible Automation Platform 2.0 Early Acc…

[ansible] ansible-builder で Automation Hub 経由のコレクションをインストールしたイメージをビルドする

この記事は、Ansible Advent Calendar 2021 (Adventar版) 16日目の記事です。 はじめに ansible-builder では、requirements.yml にインストールしたいコレクションを指定し、Execution Environment 定義ファイル(デフォルトでは execution-environment.yml…

[Ansible] Cisco IOS の allowed vlan の 範囲表記をリストにバラす vlan_expander フィルター

この記事は Ansible Advent Calendar 2021 の12日目の記事です。 はじめに Cisco IOS の機器などで、インターフェースへのトランクVLANの割り当て時に以下のように、範囲指定を含めて指定ができます。 interface GigabitEthernet1/3 switchport trunk allowe…

[ansible] ansible-runner で ansilbe-playbook コマンドのオプションを指定する --cmdline オプション

この記事は、Ansible Advent Calendar 2021 (Adventar版) 11日目の記事です。 はじめに ansible-playbook コマンドのオプションを ansible-runner経由の Playbook 実行(ansible-runner run コマンド) でも指定したいことはないでしょうか。 以下のように、…

[ansible] ansible-runner で複数のインベントリファイルを扱う

この記事は、Ansible Advent Calendar 2021 (Adventar版) 10日目の記事です。 はじめに ansible-runner では、インベントリやPlaybook、設定などの資材類のディレクトリ構造の基本が決まっています。 ansible-runner.readthedocs.io インベントリは inventor…

[ansible] ansible 関連のリリース情報まとめRSS(ansible、molecule、各種コレクションなど)

はじめに Ansible のニュースレターである The Bullhorn の Issue #34で知ったのですが、ansible や molecule、それから各種コレクション(おそらくansible community package内)のリリース情報をまとめて取得できる RSS フィードがあります。 特にコレクシ…

[Ansible] Ansible 2.9 で インストールしたcollection のバージョン一覧を表示する(jq利用)

はじめに Ansible 2.9 には ansible-galaxy collection list のような、コレクションの一覧を表示するコマンドがありません。 おそらく、各コレクションの MANIFEST.json の version を見るしかないかと思います。 例: ansible.utils 2.4.0 の MANIFEST.json…

[Ansible] 設定項目やディレクティブ、コマンドのプションなどの索引ページ

たまたま見つけたのですが、Ansible の公式ドキュメント上に、設定項目やディレクティブ、コマンドのプションなどの索引ページがあることを知りました。 docs.ansible.com ざっと見てみて「こんなのあったっけ?」という新発見につながったりしそうな気がし…

[Ansible] 「つまずき Ansible 【Part34】ansible-core 2.11.0 の changelog を眺める」ふりかえり

はじめに 2021/05/01 に、YouTube Live で「つまずき Ansible 【Part34】ansible-core 2.11.0 の changelog を眺める」という配信をしました。 connpass.com 今回は、先日リリースされた ansible-core 2.11.0 の changelog の中で個人的に気になったところを…

[Ansible] 親サブネットから利用可能な子サブネットを求める ipsubnet フィルター

はじめに Ansible には、IP アドレスを扱うための様々なフィルターがあります。 docs.ansible.com その中に ipsubnet というフィルターがあります。 このフィルターにはいくつか機能があり、例えば「10.0.0.0/24」内で /25 で区切ったときの N 番目のサブネ…

[Ansible] 「つまずき Ansible 【Part33】VS Code で Playbook を書きやすくしたい」ふりかえり

はじめに 2021/03/13 に、YouTube Live で「つまずき Ansible 【Part33】VS Code で Playbook を書きやすくしたい」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 tekunabe.connpass.com 今回は、VS Code にイ…

[Ansible] 「つまずき Ansible 【Part32】凡ミスTOP5」ふりかえり

はじめに 2021/02/27 に、YouTube Live で「つまずき Ansible 【Part32】凡ミスTOP5」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 tekunabe.connpass.com 今回は、私がよくやりがちな Playbook 上のミスを6個…

[Ansible] 「つまずき Ansible 【Part31】Katacoda Ansible 101 をやってみる」ふりかえり

はじめに 2021/02/13 に、YouTube Live で「つまずき Ansible 【Part31】Katacoda Ansible 101 をやってみる」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 tekunabe.connpass.com 今回は、先日の Ansible Nig…

[Ansible] 「つまずき Ansible 【Part30】Ansible 3.0.0b1 を少し探る」ふりかえり

はじめに 2021/02/07 に、YouTube Live で「つまずき Ansible 【Part30】Ansible 3.0.0b1 を少し探る」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 今回は、まだベータですが先日リリースされた Ansible 3.0.…

[Ansible] 「つまずき Ansible 【Part29】フィルター」ふりかえり

はじめに 2021/02/06 に、YouTube Live で「つまずき Ansible 【Part29】フィルター」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 今回は、値を変換したり抽出したりするフィルターをいくつか試しました。 参…

[Ansible] cisco.ios.ios_ping モジュールに size と df_bit オプションを追加しました

はじめに Cisco IOS のネットワーク機器 から 指定の宛先に ICMP による Ping を実行する cisco.ios.ios_ping というモジュールがあります。 指定した宛先などのオプションに基づいて ping コマンドを生成し、IOS の機器上で実行して結果を表示します。 [Ans…

[Ansible] 「つまずき Ansible 【Part28】ping 系モジュールを試す」ふりかえり

はじめに 2021/01/30 に、YouTube Live で「つまずき Ansible 【Part28】ping 系モジュールを試す」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 今回は、ping や ios_ping や win_ping などの ping 系モジュ…

[Ansible] 「つまずき Ansible 【Part27】ネットワーク機器の状態確認をしたい」ふりかえり

はじめに 2021/01/23 に、YouTube Live で「つまずき Ansible 【Part27】ネットワーク機器の状態確認をしたい」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 今回は、以下の記事を参照しながら、ネットワーク…

[Ansible] 「つまずき Ansible 【Part26】ansible.cfg を触る」ふりかえり

はじめに 2021/01/17 に、YouTube Live で「つまずき Ansible 【Part26】ansible.cfg を触る」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 今回は、設定ファイルである ansible.cfg で、何かを設定変更する試…

[Ansible] UNIX タイムスタンプを任意の日付時刻フォーマットに変換する strftime

はじめに 1609948923 のような UNIX タイムスタンプを、2021/01/07 01:02:03 のようなフォーマットに変換する方法です。 これをやりたい機会があって調べてたのですが、思いの外目当ての情報ににたどり着けず・・。 結局ちゃんと公式ドキュメントに書いてあ…

[Ansible] 「つまずき Ansible 【Part25】assert で期待値確認をしたい」ふりかえり

はじめに 2021/01/09 に、YouTube Live で「つまずき Ansible 【Part25】assert で期待値確認をしたい」という配信をしました。 実際に作業しながら(ときには)エラーと戦って進めるシリーズです。 今回は、条件式を与えて期待値のチェックなどができる、as…

[Ansible] AWS CloudShell でも Ansible したい

はじめに 先日、AWS CloudShell が利用できるようになりました。 aws.amazon.com www.publickey1.jp とても気軽に使えて良いなと思ったので Ansible をインストールして、AWS 上のリソースを操作できるか使えるか試してみました。 Playbook の実行、ad-hoc …

[Ansible] NetBox のタグを定義する netbox_tag モジュールの使い方

はじめに NetBox では、デバイスやIPアドレスなど様々なオブジェクトにタグを付けることができます。 NetBox 2.8 までは、タグは予め定義は不要だったのですが、NetBox 2.9 から事前の定義が必要になりました。逆にいうと未定義のタグを適用できません。 こ…

[Ansible] git config に相当する git_config モジュールを試す

はじめに git の設定を行う git config コマンドに相当する git_config モジュールがあります。 というより、最近存在を知りました。簡単な例ですが、まとめます。 動作環境 ansible 2.9.14 Playbook git config --global user.email sakana@example.com git…

[Ansible] ansible-galaxy コマンドの参照先を Automation Hub に変更する

はじめに ansbile-galaxy コマンドは role や collection のインストールなどを行います。 デフォルトでは、Ansible Galaxyを参照します。 設定を変更することで、Automation Hub (レッドハット社提供の配布サービス) に変更できます。 ansible.tower collec…

[Ansible] 「つまずき Ansible 【Part24】2020年のふりかえり」ふりかえり

はじめに 2020/12/26 に、YouTube Live で「つまずき Ansible 【Part24】2020年のふりかえり」という配信をしました。 tekunabe.connpass.com 普段は実際に作業しながら(ときには)エラーと戦って進めるシリーズです。が、今回は2020年最後ということで、今…

[Ansible] Ansible 実行環境としての Python とスクリプト実行環境としての Python の指定を合わせる

はじめに ネットワークモジュールを中心に使っていると、ターゲットノードではなくコントロールノード(Ansible実行サーバー)の Python を利用することが多いです。 あくまで個人の主観ですが、Ansible 自体の実行環境としての Python (ansible_playbook_py…

[Ansible] true か false か null かで返す値を変える ternary フィルター

はじめに ternary フィルターは、対象の値が true か false かに応じて別の値を返します。 Jinja2 の if をいれる必要はありません。 この記事では、簡単なサンプルでご紹介します。 環境 ansible 2.9.14 true か false か この2値で分ける方法です。 Playbo…

[Ansible] ホストを動的にグループ化する group_by モジュール

はじめに group_by モジュールは、Playbook 実行中に動的にグループ化できます。 用途は色々考えられますが、この記事では、複数台の Cisco IOS 機器のバージョンを収集した上で、特定のバージョン飲みを対象とする Play を実行する例をご紹介します。 環境 …