てくなべ (tekunabe)

ansible / network automation / 学習メモ

ansible

[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や、リポジ…

[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を最後にリリースが止まっています。 コミュニティとして…

[Ansible] cisco.ios.ios_config モジュールの冪等性に関する警告 "To ensure idempotency and correct diff the input configuration lines should be similar to how they appear if present in the running configuration on device" について

はじめに Cisco IOS のネットワーク機器に任意のコンフィグを投入する、cisco.ios.ios_config というモジュールがあります。 本モジュールを使ったPlaybookを実行して changed になると、以下のような冪等性に関する警告が表示されます。 % ansible-playbook…

[Ansible] ansible 6.0.0 で ansible-community コマンドが追加された

少しややこしい ansible まわりのバージョン表記 ansible 2.10 から、ansible-base(2.10)や、ansible-core(2.11から)というコア部分のパッケージと、各種コレクションも含むパッケージ(Ansible community packageと呼ばれたりします)が登場しました。 pip …

[ansible] copy や template モジュールで相対パスが指定されたらどこを探すか

Ansibleもくもく会 2022.6に参加しました。 そこで、copy モジュールの src オプションで相対パスで指定されたファイルはどこから探してくるか、という話題がありました。 files ディレクトリを先に探しに行くことは知っていたのですが、細かく公式ドキュメ…

[Ansible] aws_ec2 インベントリープラグインのinclude_filtersのand/or条件の指定方法

はじめに AWS上のEC2インスタンスの情報を動的にインベントリとして利用できる、amazon.aws.aws_ec2というインベントリープラグインがあります。 その中に、include_filtersというオプションがあり、Nameタグの情報などで抽出条件を指定できます。 include_f…

[Ansible] 変数を利用する際にクォーテーションで囲う必要がある理由

はじめに Ansibleもくもく会 2022.5にて、質疑応答を担当するメンターにて参加させていただきました。 "" で書こう意味について質問いただいたので、分かる範囲でお答えしました。その内容についてまとめます。 ディクショナリと区別するために "" で囲う Pl…

[ansible] あのモジュール、どのコレクションにいった?を探す

はじめに Ansible(-base) 2.10 から、多くのモジュールはコレクションという管理、配布方式に移行しました。 その関係で「前あったあのモジュール、プラグインはどのコレクションにいったんだ?」と気になることがあるかもしれません。 正確には、しれません…