てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] インベントリ変数、set_fact、include_vars などで定義した変数の評価タイミング

この記事は、Ansible Advent Calendar 2022 (Adventar 版) の 18日目の記事です。 はじめに あらためて考えると「あれ、どうだっけ?」となることの一つに、変数の評価タイミングがあります。 インベントリ変数や、Play変数、vars_files 、set_fact、include…

[Ansible] AWS 系コレクションは 2つある(amazon.aws、community.aws)

この記事は、Ansible Advent Calendar 2022 の 14日目の記事です。 はじめに もともと Ansible 本体とセットだったモジュール類の多くが、ansible(-base) 2.10 でコレクションに移行しました。 少しややこしく感じるかもしれませんが AWS の各種リソースを操…

[Ansible] ansible-config dump コマンドで設定を JSON や YAML で表示する (ansible-core 2.14.0 から)

この記事は Ansible Advent Calendar 2022 6日目の記事です。 はじめに ansible-core 2.14.0 で、ansible-config dump コマンドにで出力フォーマットを指定する -f、--format オプションが追加されました。 ansible community package のバージョンとしては …

[Ansible] Ansible動画 をみんなで観て語る会 #6 参加レポート(Introducing Ansible Network Validated Content)

この記事は Ansible Advent Calendar 2022 4日目の記事です。 はじめに 2022/12/01 に開催開催された「Ansible 動画 をみんなで観て語る会 #6」参加しました。 ansible-users.connpass.com どんなことをどんな流れでやっていったのか、レポートします。 Ansi…

Cloudflare Zero Trust を API で操作してみた(トークン作成・Gateway ポリシー取得・追加)

この記事は エーピーコミュニケーションズ Advent Calendar 2022 の1日目の記事です。 はじめに Cloudflare Zero Trust が 50ユーザーまで無料というプランがあるとのことで、試すにちょうどいいと思って少し触っていました。 触ってまもなく、API あるかな…

[Ansible] paramiko と ansible-pylibssh のどっちが使われたか確認する方法

はじめに ネットワークモジュールが長らく内部的に利用している SSH クライアントライブラリとして、paramiko があります。 最近は ansible-pylibssh というもの新しいものもあります。登場した経緯は Ansible の公式ブログの記事に書かれています。 そして…

[Ansible] 「ansible-pylibssh not installed, falling back to paramiko」という警告の意味と対処

はじめに 最近のバージョンの Ansible で Cisco IOS などのネットワーク機器に操作する Playbook を実行すると、以下のような警告(WARNING)を見かけたことはないでしょうか、 [WARNING]: ansible-pylibssh not installed, falling back to paramiko エラー…

[Ansible] AnsibleをバージョンアップしたらCisco IOSに対するPlaybookが認証エラーになった原因と対処

はじめに 先日、Ansible 4系から 6系にバージョンアップしたら、今まで正常に動いていた Cisco IOS に対して処理する Playbook が動かなくなる現象に出会いました。 以下のように、認証エラーです。 fatal: [sw01]: FAILED! => {"changed": false, "msg": "F…

[Ansible] Python から Playbook を実行できる ansible-sdk をためしてみた

はじめに 最近、ansible/ansible-sdk というリポジトリが公開されました。 Python から Playbook を実行できるようです。とりあえず気になるので試してみました。 リポジトリ内にサンプルの Python スクリプトと、Playbookが入ってるので試すだけならかなり…

[Ansible] Playbook ならぬ Rulebook、イベントドリブンな ansible-rulebook を試してみた

はじめに 先日 Ansible の公式ブログで、Event-Driven Ansible という言葉が含まれるブログが次々と投稿されました。 Introducing the Event-Driven Ansible developer preview Getting Started with Event-Driven Ansible It takes a community: how partne…

[Ansible/AAP] 書籍「Demystifying Ansible Automation Platform」はAAPの全体と自動化と応用が学べる貴重な書籍

はじめに 2022/09/30 に Ansible Automation Platform の Automation Controller を中心とした各プロダクト、サービスについて解説している「Demystifying Ansible Automation Platform」という書籍が発売されました。 demystifying と言う言葉は今回はじめ…

[Ansible/AAP] Ansible Automation Platform のツール・プロダクト群を学べる書籍「Demystifying Ansible Automation Platform」が発売された

はじめに 2022/09/30 に、Ansible Automation Platform(AAP)について解説された書籍(洋書)「Demystifying Ansible Automation Platform」が発売されました。 Ansible をとりまくツールやプロダクト群を学んだり、Automation Controller (旧Ansible Towe…

[AWX/React] はじめて AWX の UI を修正するまでにやったこと(React何もわからん状態から)

はじめに AWX の UI (画面)で一部修正したい箇所があり、修正してPRを出したところマージしていただきました。 github.com AWX の UI 修正は今回が初めてでした。特にフロントエンドは分からないことが多い状態からでしたが、どうにか無事にマージしていた…

[Ansible] VS Code の Ansible 拡張でファイル内容によって関連付けされるようになった

はじめに 以前の記事で、VS Code の Ansible 拡張で「ファイル名やモードライン」によって、ファイルが関連付けされるようになったことを書きました。 tekunabe.hatenablog.jp その後のアップデートで、バージョン 0.14.0では、ファイルの内容までチェックし…

[Ansible] netbox.netbox.nb_inventory インベントリプラグインの token でJinja2テンプレートが使えるようになった

はじめに リリースされたばかりの netbox.netbox コレクション 3.8.0で、こんな changelog がありました。 Allow netbox api access token to be templated by @TWitzenrath in #806 パッと見では分からなかったのですが、元の PR #806を見ると、netbox.netb…

[Ansible] モジュールのオプションのデフォルト値をカスタマイズできる module_defaults

はじめに Playbookではモジュールにオプションを指定してさまざまな処理を自動化していきます。 Playbookを書いていくうちに、このモジュール(またはコレクション単位)のこのオプションにはいつも同じ値を設定する、というときはないでしょうか。 たとえば…

[Ansible] ansible-galaxy collection install コマンドは複数のコレクションを指定できる

はじめに コレクションをインストールするには ansible-galaxy collection install コレクション名やアーカイブファイル名前 という書式が一番シンプルかなと思います。 docs.ansible.com 複数のコレクションをいっぺんにインストールしたい場合は、]require…

[Ansible] VS Code の Ansible 拡張でファイル名やモードラインで関連付けされるようになった

はじめに VS Code で Ansible の Playbook を作成するときに便利な、Ansible という拡張があります。モジュール名やキーワードを自動補完してくたり、ansible-lint と連携してくれたり、とても便利な拡張です。 marketplace.visualstudio.com この拡張を有効…

[Ansible] どのバージョンの Python に対応しているかまとめた表ができた

Ansible のどのバージョンで、どのバージョンの Python をサポートしているか、ぱっと出てきますでしょうか。それはマネージドノード側の話でしょうか、コントロールノード側の話でしょうか。 私は、ansible-core 2.11 をよく触ってる時期があって、Python 3…

[AWX/Ansible] 開発用に AWX の UI と API の環境を別々につくってみた

はじめに AWX のユーザーインターフェイスを少し修正したい機会があって、どうやって試す環境を作れるのだろうと調べていました。 このあたりは公式ドキュメントがしっかりしていて、以下のページが非常に参考になりました。 UI を用意: https://github.com/…

Ansible には日本語の公式ドキュメントがある(現状 ansible-core 2.13まで)

結構検索したときにもヒットしますが、Ansibleに日本語の公式ドキュメントがあります。 2020年に公開されました。 docs.ansible.com バージョンスイッチャーに、最近のバージョンがないので 2.9 までしかない、と思われるかもしれません。私もそう思っていま…

[Ansible] ドキュメントを修正、ビルド、確認してプルリクエストを出すまでにやったこと

はじめに Ansible のドキュメントは Sphinx で生成されるようになっています。 これまでちょっとした文言修正は、ちゃんとビルドして確認してこなかったのですが、先日書式レベルで修正したことがありました。そのため、ビルドする方法をしらべて試しました…

[ansible] 各コレクションを管理しているリポジトリの調べ方

はじめに コレクションの不具合を調べたりする際、どのリポジトリで管理されてるかを特定する必要があります。その方法はいくつかありますが、2つご紹介します。 コレクション詳細ページから コレクション詳細ページ(azure.azcollection であればここ)に、…

[ansible] 未リリース状態のコレクションをインストールする

インストール方法 コレクションは各リポジトリで開発が進んでいて、適宜リリースされます。 リリースされたものは ansible-gallaxy collection install コレクション名 でインストールできます。 一方、バグ修正されたり、機能追加されたけどまだリリースさ…

[ansible] ansible-core 2.14 でコントロールノードで Python 3.9 以上が必要になる模様

こんな変更がありました。 github.com コントロールノードで Python 3.9 以上を必要とするようになるようです。これまでは 3.8 以上でした。 devel ブランチへのマージのみです。おそらくこのまま行けば、2022年11月リリース予定の ansible-core 2.14が、こ…

[ansible] AAP (Ansible Automation Platform) が指すもの

私や私の周辺では、Ansible Automation Platformのことを、よく略して AAP と呼んでいます。 しかし、人によって AAP が指す範囲が微妙に違うように感じることがあります。 特に AAP 2 のリリース以降です。AAP は AAP 1 時代から AAP ですが(変な言い方で…

[Ansible] pip install ansible で一緒にインストールされるコレクション群はどこで議論されて決まるのか

議論される場所 Ansible community package (pip install ansible でインストールされる方)は、ansible-core に加えて、さまざまなコレクションがインストールされます。 インストールされるコレクションは、公式ドキュメントの Collection Indexや、リポジ…

JANOG50 Meeting in Hakodate 参加・登壇レポート

はじめに ■ 参加プログラム 運用を変化しながら継続していくための8つの極意 スプリンターネット ネットワーク自動化の対応チャレンジ NETCON Wrap-up オープンマイク ■ 登壇プログラム ネットワーク自動化に必要なデータとその管理方法と活用方法とは? 横…

[Ansible] ansible 2.9 でコレクションの一覧とバージョンを grep で表示する

ansible 2.9 では、コレクション一覧を表示する ansible-galaxy collection list コマンドが利用できません(ansible-base 2.10から)。 そのため、コレクションの一覧やバージョンを確認するには、別の方法が必要です。 デフォルトのコレクションインストー…

[Ansible] ansible 2.9 を取り巻く現状(2022年7月現在)

コミュニティとしてはすでに EOL Ansible 2.10 で大きくパッケージング、配布の方式が変わったからなのか、前のバージョン Ansible 2.9 の開発がしばらく続いていました。ですが、2021年10月の 2.9.27を最後にリリースが止まっています。 コミュニティとして…