てくなべ (tekunabe)

ansible / network automation / 学習メモ

ansible

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[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…

[Ansible] 所属するグループ内に失敗したホストがあればPlayをとめる

この記事は Ansible Advent Calendar 2023 の 11日目の記事です。 はじめに 今回の Advent Calendar 8日目の記事で @usagi_automate さんが、「所属するグループ内に失敗したホストがあれば処理スキップしたい」という記事(以下、元記事)を書かれていまし…

[Ansible] Jinja2 テンプレートによる生成結果をansible.builtin.template ルックアッププラグインで表示する

この記事は Ansible Advent Calendar 2023 2日目の記事です。 はじめに ある時、Jinja2 テンプレートを書いていて、試行錯誤しながら結果がどうなるか確認したい時がありました。 ansible.builtin.template モジュールで、ファイルを生成してから確認する形…

[Ansible] ansible.utils.fact_diff フィルターで変数間のdiffをする(モジュールではなく)

この記事は Ansible Advent Calendar 2023 1日目の記事です。 はじめに 先日リリースされた ansible.utils コレクションのバージョン 3.0.0 と 2.12.0 で、ansible.utils.fact_diff フィルタープラグインが追加されました。 (3.0.0 からは ansible-core 2.1…

[Ansible] Ansible 公式ブログ以外の redhat.com 上の Ansible 記事

はじめに Ansible には The Inside Playbook (https://www.ansible.com/blog) という公式ブログがあります。 Ansible に関する公式ソースで即時性のある情報源として、とても重宝しています。 割と最近気づいたのですが、他にも redhat.com ドメインのブログ…

[Ansible/EDA] ansible.eda.webhook イベントソースプラグインでトークンによる認証をかける

はじめに これまで何度かansible.eda.webhook イベントソースプラグインを使って、Webhook 経由で何かを動かすということを試してみました。 このイベントソースプラグインは認証機能を持たせることもできるので、トークンによる認証を試してみました。 検証…

[Ansible/EDA] ansible-rulebook 1.0.1 で run_job_template のみ Automation Controller に接続確認するようになった

はじめに これまで ansible-rulebook では、どんな action でも連携先の Automation Controller に接続確認しにく仕様がありました。 ansible-rulebook 1.0.1 で、action が run_job_template のときのみ接続確認する改善が行われました。 Release v1.0.1 · …

[Ansible/EDA] EDA Controller のプロジェクト更新とアクティベーションの再開を REST API で操作する

はじめに 以前の記事で、EDA Controller の REST API の操作を試しました。お作法はなんとなく分かったので次のお題にうつります。 もともと API を使いたくなったきっかけにもなるのですが、Rulebook の書き方を試行錯誤しているとき、 リポジトリ上の Rule…

[Ansible/EDA] EDA Controller の REST API のお作法とプロジェクト、アクティベーション作成

はじめに Automation Controller と同じく、EDA Controller にも REST API が備わっていることを知りましたので、ちょっと触ってみました。 本記事では、API の叩き方を調べ方と、API でのプロジェクトとアクティベーションの作成の仕方について扱います。 …

[Ansible/EDA] Automation Controller との連携に EDA Controller が必要かどうか考える

はじめに 以前の記事 で、Palo Alto ファイアウォールと EDA Controller、Automation Controller の連携を試しました。 記事の中でも触れていますが、EDA Controller が本当に必要かどうかは考えず、とりあえず手を動かしてみた趣旨でした。 連携を考えるう…

[Ansible] Palo Alto ファイアウォールから Automation Controller のジョブテンプレートを実行する(EDA Controller なし)

はじめに 前回の記事(以下、EDAありの記事)で、EDA Controller を使い、Palo Alto ファイアウォールの設定変更したらコンフィグを git にバックアップする仕組みを作ってみました。 作っている途中、EDA Controller を経由しなくても同等のことが実現でき…

[Ansible/EDA] EDA Controller に設定されている連携先 Automation Controller のURLを確認、変更する

はじめに EDA Controller から Automation Controller のジョブテンプレートを実行するといった連携ができます。 そのためには、EDA Controller 側に、Automation Controller の URL を指定する必要があります。 インストール時であればインストーラー の in…

[Ansible/EDA] Automation Controller のジョブテンプレート側で、EDA Controller 側のイベント情報を参照できる ansible_eda 変数

はじめに EDA Controller 側から run_job_temolate アクションを利用すると、API 経由でAutomation Controller のジョブテンプレートを実行できます。 (なお、ansible-rulebook 1.0.0 現在、ワークフロージョブテンプレートは実行できません。機能追加予定 …

[Ansible/EDA] EDA Controller ではユーザー「eda」が DE(Decision Environment)を扱う

はじめに Automation Controller では、awx というユーザーで EE (Execution Environment) で pull などしてました。 AAP 2.4 で追加された EDA Controller だとどうなんだろうと調べてみました。 環境 EDA Controller 1.0.0 バージョン番号は rpm のファイ…

[Ansible/EDA] Palo Alto ファイアウォールの設定変更したらコンフィグを git にバックアップする仕組みを作ってみた

はじめに 以前の記事で、 paloaltonetworks.panos コレクションを含む Decision Environment (DE) をビルドしました。 せっかくなので、paloaltonetworks.panos コレクション内の logs イベントソースプラグインを使って、Palo Alto のファイアウォールと、 …

[Ansible] ansible-builder はコレクションが依存しているパッケージもインストールしてくれる

はじめに Ansible の Execution Environment(EE、Playbookを実行するコンテナイメージ)をビルドするツールとして、ansible-builderがあります。 正直、私はこれまで「Dockerfile / Containerfile を yaml で記述できるちょっとしたラッパーツール」くらい…

[Ansible/EDA] カスタム の Decision Environment (DE)を ansible-builder でビルドする

はじめに EDA Controller では、Rulebook を実行するために Decision Environment(画面上の文言は "決定環境" )が必要です。実態は利用するコンテナイメージの指定です。Automation Controller が Playbook を実行するために、Execution Environment(EE、…

[Ansible] docs や expamles がリポジトリ移行。WinRM セットアップスクリプトがリンク切れに

はじめに Ansible の コミュニティドキュメントを、リポジトリansible/ansible から分けて ansible-documentation に移す動きが進んでいます。 この記事では、これまでの経緯や今のところ分かっている影響をまとめます。 経緯 分かっている範囲では、発端は…