てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] ロールの vars や defaults 配下の main.yml は「main ディレクトリ」でもいい

はじめに Ansible のロールでは、ロールの変数を vars/main.yml に、デフォルト値を defaults/main.yml に定義するというのが基本的なディレクトリ、ファイル構造です。 いつのバージョンからかはわかりませんが、それぞれ main.yml ではなくて main ディレ…

[Ansible/Terraform] Terraform 入りの Execution Environment (EE) をビルドする定義ファイル例

はじめに Ansible を Execution Environment (EE: コンテナベースの Ansible 実行環境)を利用していて、Ansible から EE の中の Terraform を呼び出す場合、EE の中に Terraform をインストールしておく必要があります。 AWX の標準の EE である quay.io/a…

[Asnible] Playbook の品質改善プルリクを出してくれる Ansible code bot を試してみた

はじめに AnsibleFet 2024 のキーノートで、Ansible code bot というものを知りました。 動画の 17:45 頃から。 GitHub 上の Playbook の品質上の修正提案のプルリクエストを出してくれる bot です。 おもしろそうだったの試してみました。 手順 スクショを…

Red Hat Summit 2024 のキーノートで気になったキーワード

はじめに 2024/05/6-9 (現地時間)、デンバーで Red Hat Summit 2024 と AnsibleFest 2024 が開催されています。 このうち、AnsiblefFest のキーノートについては以下の記事でふれました。 tekunabe.hatenablog.jp 本記事では、Red Hat Summit 側のキーノート…

[Ansible] AnsibleFest 2024 のキーノートで気になったポイント(事例、Event-Driven Ansible、Policy as Code など)

はじめに 2024/05/6-9 (現地時間)、デンバーで Red Hat Summit 2024 と AnsibleFest 2024 が開催されています。去年からこの 2つのイベントが合同開催になりました。 私は現地には行っていませんが、両イベント合計4つのキーノートを YouTube Live で見れま…

[Ansible] meta/argument_specs.yml による Role argument validation の注意点

はじめに Ansible にはロールの実行に必要な変数のバリデーションができる「Role argument validation」という機能があります。ansible-core 2.11 から利用できます。 どのような変数が必須か、どういう値を取りうるか(選択肢)を、各ロールの meta/argumen…

[Terraform/AAP] Terraform で Automation Controller を設定する ansible/aap プロバイダーを試す

はじめに Terraform から AAP (厳密には Automation Controller)の設定を操作する ansible/aap プロバイダー 1.0.0 が 2024/05/01 にリリースされました。 registry.terraform.io これまでも、Terraform から Playbook を呼び出す ansible/ansible プロバ…

[Ansible] ハンドラー名はユニークにしておいた方が良い理由と検証

はじめに Ansible には、タスクのステータスが changed のときだけ実行したい処理を定義するために、ハンドラーという機能があります。 docs.ansible.com ハンドラーには、通常のタスクと同様に name を指定できます。ハンドラーで指定した name をこの記事…

[Ansible/AAP] AAP のドキュメントから Ansible 2.9 の記載がなくなってきている

いよいよという感じですが、AAP (Ansible Automation Platform)のドキュメントから Ansible 2.9 の記載がなくなってきています。 たまたま、Before / After のキャプチャーが撮れたので載せておきます。 たとえば、システム要件のページ。 Before (Ansible 2…

[Ansible/AAP] Automation Controller へのマニフェストファイル適用時にエラー「Request failed with status code 413」になる現象と対処

はじめに Automation Controller にライセンスを適用する方法には以下の2つがあります。 予め作成したマニフェストファイル(zip)をライセンス適用画面でアップロード ライセンス適用画面でユーザー名 / パスワードを入力してライセンスを選択 このうち、1 …

[Ansible] IOS-XR 向けのタスクがエラー「No existing session」になる原因のひとつ

はじめに Ansible のネットワークモジュールでたまに見かけるエラー "msg": "No existing session" は、個人的に切り分けが難しいエラーの一つだと思っています。 先日は IOS-XR に対する Playbook で、認証系の誤りによってこのエラーが表示されたことがあ…

3級 テクニカルライティング試験[TW]を受けてきました

はじめに 以前から文章に対する苦手意識がありました。 分かりやすく誤解されにくい文章を書くには?レビューで指摘したあの件、合っていたのかな?などなど・・。 何かのタイミングで体系的にテクニカルライティングを学んで見たいと思っていて、気になって…

JANOG53 Meeting アーカイブ視聴レポート

はじめに 2024/01/17-19 に福岡県福岡市の博多国際展示場&カンファレンスセンターで JANOG53 Meeting が開催されました。 現地は私のチームの他の人に行ってもらいました。また、ストリーミングもなしということでしたので、アーカイブが公開(ありがとうざ…

[Ansible] 「つまずき Ansible 【Part38】ネットワークモジュールを VS Code でデバッグしたい」ふりかえり

はじめに 2024/02/04 に、「つまずき Ansible【Part38】ネットワークモジュールを VS Code でデバッグしたい」という配信をしました。 tekunabe.connpass.com cisco.ios コレクションのモジュールのような、ネットワーク機器に接続して操作するとき、Playboo…

[Ansible] ansible-lint で hosts ディレクティブに変数が含まれると発生するエラーの対処案2つ

はじめに hosts: "{{ targets }}" のように、hosts に変数を利用していると、ansible-lint のチェックで変数未定義のエラーになってしまいます。 $ ansible-lint debug.yml WARNING Listing 1 violation(s) that are fatal syntax-check[specific]: The fiel…

[Ansible] 公式ドキュメントのあのページ、どこにいった?を探す

はじめに コレクションというモジュール類の管理単位がだいぶ浸透してきてると思いますが、それに伴ってか、ドキュメント上にも変化が見られます。 もともとAnsible本体側にあったページがコレクション側に移動してたりします。 コレクション側に移動してい…

[TTP] スペース含めて値を取得する

ttp

はじめに ネットワーク機器の show コマンドのパーサーとして TextFSM や TTP (Template Text Parser) を使い分けています。 個人的には TTP が直感的に使える一方で、ちょっとしたことでつまずくことがあります。 例えば今回紹介する、スペースを含めて値を…

[Ansible] 組織内でのみ使うコレクションの名前空間「local」が公式ドキュメントに明示された

そもそもコレクションとは Ansible は現在、モジュール類の管理はコレクションという単位でまとめられています。 このコレクションは「名前空間(namespace).コレクション名」という形式で識別されます。例えば、ansible.utisl や cisco.ios などです。 コレ…

[Ansible] コレクションが置いてある場所を基準に分類してみる

はじめに コレクションの分類の仕方にはいろいろな観点があります。 例えば、どこからそのコレクションを入手できるか、マネージドノードはどいういう特性か(サーバー、ネットワーク、クラウドなど)などです。 最近私の周りで少し話題になったので、この記…

[Ansible] ロールの実行に必要な変数のチェック「だけ」する(ロールの処理自体はしない)

はじめに 以前の記事でもご紹介しましたが、ロールの実行に必要な変数をチェックする「Role argument validation」という機能があります。 tekunabe.hatenablog.jp ロールの meta/argument_specs.yml というファイルに、どういう変数が必須か、型は何かなど…

[Ansible] antsibull の発音とスペル

はじめに Ansible の周辺にはさまざまなツールがあります。 その中に、antsibullや antsibull-docs、antsibull-changelogのように、antsibull という言葉を含むツールがあります。 この antsibull (よくスペルを間違えます)が、なぜこのようなスペルなのか…

[Ansible] assert モジュールと ansible.utils.fact_diff フィルターを組み合わせてエラーメッセージをわかりやすくする

はじめに 以前の記事でもご紹介した、ansible.utils.fact_diff フィルター のちょっとした活用方法です。 ansible.utils.fact_diff 「モジュール」ではなく「フィルター」なので、別のモジュールのオプションに組み込めます。 この特性を活用して、ansible.b…

[Ansible] パス文字列からディレクトリ名や親ディレクトリ名を遡って抽出する

はじめに Ansible には、パス文字列からディレクトリを抽出するための ansible.builtin.dirname というフィルターがあります。 正規表現などのパターンマッチングするより、こういう専用のフィルターがあるならそれを使うのが良いかなと思います。 応用する…

「Pythonとネットワークの自動化基礎検定」を受験してきました

はじめに 周囲のエンジニアは息を吸うように色々受験(そして合格)されているようなのですが、私はしばらく何もやっていませんでした。確か直近は、4年前の DevNet Associates(失効)。 久々に、なにかやってみとうと思っていたところ「Pythonによるネット…

[Ansible] コミュニティから公開されている Execution Environment(ただし2023年12月現在用途は限定的)

はじめに ここ数年で、Ansible をコンテナ上で動かそうという動きが加速しています。 logmi.jp そうは言われても、自分でビルドするにはまだハードルが・・、という方もいらっしゃるかもしれません。Ansible Community として GitHub Container Registory で…

[Ansible] ansible-core 2.16 で --ask-vault-passowrd と同機能の -J が使えるようになった

はじめに ansible-vault で暗号化したファイルを復号してPlaybook内で利用する際、復号パスワードを対話的に入力するためのオプションとして、--ask-vault-password、--ask-vault-pass があります。 ansible-core 2.16.0 でこれらと同じ用途として -J オプシ…

[Ansible] 2023年の Ansible 関連リリースや動向まとめ

この記事は Ansible Advent Calendar 2023 の 24日目の記事です。 はじめに リリース AAP 2.4 リリース EDA(Event-Driven Ansible)が GA Red Hat Ansible Lightspeed with IBM watsonx Code Assistant が GA AAP 1.2 のサポート終了 ansible-core 2.14.0 …

[Ansible] ansible-core 2.16 からタスクの成功を条件とするリトライには until が不要になった

この記事は Ansible Advent Calendar 2023 の 18日目の記事です。 はじめに これまで、retries を指定していても until の指定がない場合は、リトライ処理が行われませんでした。 ansible-core 2.16 (Ansible community Package としては 9)で、タスクの成功…

[Ansible] 2023年の新しい Ansible Galaxy はコレクションのバージョン指定でドキュメントが参照できて便利

この記事は Ansible Advent Calendar 2023 の15日目の記事です。 はじめに 今年、Ansible Galaxy のサイトがリニューアルしました。 galaxy.ansible.com 各コレクションのバージョンごとのドキュメントが参照できるようになりました。 Red Hat 社提供の Auto…

[Ansible] ansible-core 2.16.1 などに入った変更による assert モジュールのエラー「Conditional is marked as unsafe, and cannot be evaluated.」

はじめに ansible-core 2.16.1、2.15.7、2.14.12 で、破壊的な変更が入りました。 ansible-core 2.16.1 の changelog より引用 assert - Nested templating may result in an inability for the conditional to be evaluated. See the porting guide for mor…