てくなべ (tekunabe)

ansible / network automation / 学習メモ

2023-01-01から1年間の記事一覧

[Ansible/EDA] AAP2.4 の EDA Controller と Automation Controller をインストールして連携を試す

はじめに Red Hat Ansible Automation Platform (AAP) 2.4 がリリースされました。 www.ansible.com 大きなアップデートの一つに、 Event-Driven Ansible Controller の登場があります。 本ブログでもこれまで、AAP のプロダクトとしてではなく ansible/eda-…

[Ansible] EDA (Evnet-Driven Ansible) Controller / eda-server 経由で Automation Controller のジョブテンプレートを実行してみる

はじめに 前回の記事で、eda-server をデプロイしてログインできるところまで確認しました。 今回は、Webhook をイベントソースとしてAutomation Controller のジョブテンプレートを実行する仕組みを試します。 以降、念のため AAP のプロダクトとして EDA C…

[Ansible] EDA (Evnet-Driven Ansible) Controller / eda-server を docker compose でデプロイして画面を探索してみる

はじめに Event-Driven な Ansible を実現するために去年から ansible-rulebook が登場しました。 今年は先日の AnsibleFest での発表頃から更に話が進み、Event-Driven Ansible の実行基盤とも言える、EDA (Evnet-Driven Ansible) Controller の足音が聞こ…

Interop Tokyo 2023 に参加してきました

はじめに 2023/06/14-16(現地展示期間として)に開催されたInterop Tokyo 2023に参加してきました。 今年も ShowNet のさまざまな機器や、気になるブースやセッションがありましたので、いくつかまとめます。 ※ 口頭で聞いた内容を思い出しながら書いた記述…

[Ansible] FQCN でモジュールを指定しないと困るケース

はじめに 多くのモジュールがコレクションに移行してから、モジュール名は namespace.collection.module_name のようにどのコレクションのモジュールなのかを指定ができるようになりました。ここではこの指定方法を FQCN と呼びます。 Ansible本体 (ansible-…

[Ansible] 「つまずき Ansible 【Part37】Ansible Lightspeed を試してみる」ふりかえり

はじめに 2023/06/03 に、YouTube Live で「つまずき Ansible【Part37】Ansible Lightspeed を試してみる」という配信をしました。 つまずき Ansible 【Part37】Ansible Lightspeed を試してみる - connpass タスクの name に自然言語で処理を書くと、AIがタ…

[Ansible] AI で Playbook を生成する Ansible Lightspeed のクローズドベータ申込みとお試し

はじめに 先日の AnsibleFest 2023のキーノートでも発表がありましたが、AI で Playbook を生成する Ansible Lightspeed が2023年後半に提供予定されています。 以前から、申し込めばクローズドベータ版が利用できるようだったので、申し込みをして待ってい…

[Ansible] インベントリファイルにおける INI と YAML の比較

はじめに スタティックなインベントリファイルの書き方には、INI 形式や YAML 形式、などがあります(ansbile.buitlint内の一覧はこちら)。 シンプルに定義する分には INI 形式が好みです。一方で、少し込み入ってきた場合は、YAML のほうが良いかなと思い…

[Ansible] dict のようで dict でない値にキーを指定してエラーが発生した場合の対処(from_jsonフィルター)

はじめに コマンドの出力結果などで dict らしき出力を受け取った後、その中の値から必要な値を抽出する機会がときどきあります。 ところが、たとえば、キーを指定して dictらしき結果.キー名 を指定すると、以下のようなエラーまってしまうことがあります。…

[Ansible] AnsibleFest 2023 のキーノートで気になったポイント(Ansible Ligthspeed、Event-Driven Ansible)

はじめに 2023/05/23-25(現地時間)、ボストンで Red Hat Summit 2023 と AnsibleFest 2023 が開催されました。今年からこの 2つのイベントが合同開催の扱いになったようです。 私は現地には行っていませんが、3つのキーノートが YouTube Live で見れました。…

[CML] Refplat ISO のデータはディスクにコピーが必要になってた

はじめに 自宅で利用している CML(Cisco Modeling Labs)のバージョンが 2.1 のままバージョンアップできずにいました。バージョンアップするにも、最新の 2.5 系にはすんなりバージョンアップできなさそうだったのと、トポロジーファイルも保存済みだった…

[CML] 新規デプロイ時にディスクサイズを拡張しておく

cml

はじめに CML (Cisco Modeling Labs) は、使っていくとディスク容量をまぁまぁ食っていきます。 デフォルトは 32 GB で、そのうち 10GB はOS類で専有するという説明もあります。 The default hard disk capacity is set to 32 GB, and 10 GB of that space …

[Ansible] Playbookの実行結果(エラー含む)を改行付きで表示する(デフォルトのコールバックプラグイン編)

はじめに 先日、community.general.yaml コールバックプラグイン を使って、Playbook の実行結果を改行付きで表示させる方法を投稿しました。 tekunabe.hatenablog.jp ふと、デフォルトの ansible.builtin.default コールバックプラグイン でも似たようなこ…

[VSCode] エディターの表示のみ倍率変更(拡大/縮小)できるようにする設定 "editor.mouseWheelZoom": true

はじめに Visual Studio Code (VS Code ) では、表示の拡大/縮小操作ができますが、デフォルトでできる操作の場合はメニューやターミナルも倍率が変更されます。 個人的には、エディターのみ倍率変更したい機会のほうが多いので、それができればなーと思って…

[Ansible] Playbookの実行結果(エラー含む)を改行付きで表示する(community.general.yaml コールバックプラグイン編)

はじめに Ansible のエラーメッセージは、改行のない JSON で表示されるため読みにくいという意見を見かけました。確かにデフォルトだとそうです。 Ansible は Playbook 実行結果をコールバックプラグインという仕組みで扱われます。いくつか種類があるので…

[Ansible] pre-commit を使って git commit 前に自動で ansible-lint する

はじめに 先日の記事で、ansible-lint コマンドの即時性を高めるには別途仕組みが必要な旨を書きました。今回は、自動化の仕組みとして pre-commit を使って仕込んでみます。 だいぶシンプルな設定に抑えています。 導入 venv への pre-commit のインストー…

[ansible] ansible-core 2.15 で vars 直下にリストで変数定義すると Deprecated(非推奨)で警告が表示される

はじめに 2023年5月にリリース予定の ansible-core 2.15 で、vars ディレクティブ直下にリストで変数を定義する方法が Deprecated(非推奨)として警告が表示されるようになります。ansible-core 2.15 の Porting Guide にも掲載されています。 言葉にすると…

[Ansible] VS Code の Ansible 拡張経由で ansible-lint する際のチェック範囲

はじめに VS Code には、Ansible Playbook を書く際に便利な拡張があります。 marketplace.visualstudio.com とても便利な拡張で様々な機能があり、ファイル保存時に自動で ansible-lint を実行することもできます。 Playbook の保存時に、そのPlaybook を起…

[Ansible] ansible-navigator 経由で ansible-lint するには基本的に EE 内に ansible-lint が必要

はじめに ansible-navigator は、Playbook を実行するだけでなく ansible-lint を呼び出す機能もあります。 タイトル通り、多分 EE 側に ansible-lint が必要だろうと思っていたものの、一応確かめてみようと思ったので試しました(結果タイトル通りでした)…

[Ansible] ansible-lint でファイル名と無視したいルールを指定する .ansible-lint-ignore

はじめに ansible-lint 6.13.0 で、無視するルールを定義するファイル が導入されました。 定義ファイル名は .ansible-lint-ignore または .config/ansible-lint-ignore.txt です(個人的には後者が好み)。ファイル名の先頭の . 有無や、拡張子の有無が異な…

[Ansible] ansible-lint 経由の yamllint と、直接 yamllint する場合とではデフォルトルールが異なる

はじめに ansible-lint にはは、yamllint を呼んで YAML としてのチェックをする機能があります。 たとえば、1行あたりの文字数が何文字以内であるべきか、真偽値はどう指定するべきか、などのルールです。 うすうす感じていた(?)のですが、ansible-lint …

[Ansible] ansible-navigator で vars_prompt のような対話式入力を有効する --enable-prompts オプション

はじめに ansible-navigator 3.0.0 で、vars_prompt ディレクティブや ansible.builtin.pause モジュール のような、ユーザーの入力を待つ機能と組み合わせて使うためのオプション --enable-prompts (短縮形は --ep )が追加されました。 該当 changelog: A…

[Ansible] インストールされているコレクションから requirements.yml を生成する(Playbook編)

はじめに pip でいう pip freeze で requirements.txt のフォーマットを出力できるのと同じように、Ansible のコレクションでもコレクションの一覧を requirementst.yml のフォーマットで出力できれば便利かもしれないなと思いました。 ansible-galaxy colle…

[Ansible] quay.io/ansible/ansible-runner のイメージの廃止予定と今後の動き(2023年3月地点)

quay.io/ansible/ansible-runner とは venv でははく、コンテナベースの Ansible の実行環境が登場してしばらく経ちました。 AAP を利用するときは registry.redhat.io/ansible-automation-platform-21/ee-supported-rhel8 のようなイメージを見かけますが、…

[Ansible/Azure] azure.azcollection.azure_rm インベントプラグインで、対象リソースグループを環境変数で指定する

はじめに Ansible から Azure の VM の情報を取得して動的にインベントリを生成できる azure.azcollection.azure_rm インベントリプラグインでは、従来から include_vm_resource_groups オプションで、どのリソースグループに所属する VM かを絞り込みできま…

[Ansible/Azure] azure.azcollection コレクションの利用時の Python パッケージ不足によるエラー集

はじめに 各種 Azure リソースを操作する azure.azcollection コレクションのモジュールやプラグインを利用する場合は、依存 Python パッケージをインストールする必要があります。 上手くインストールできてなかったり、認識できていなかったりするとエラー…

[Ansible/Azure] azure.azcollection.azure_rm インベントプラグインでプライベートIPアドレスを接続先にする

はじめに Ansible から Azure の VM の情報を取得して動的にインベントリを生成できる azure.azcollection.azure_rm インベントリプラグインという便利なものがあります。 こちらの issue で、プライベートIPアドレスを接続先にするにはどうしたらよいかとい…

[Ansible] Playbook実行ログにモジュールのオプション値を表示させる設定 DISPLAY_ARGS_TO_STDOUT

はじめに たまに、Ansible の設定項目一覧を眺めるのですが、結構前からあるけど知らない設定を見つけることがあります。 今回は、DISPLAY_ARGS_TO_STDOUT という設定項目。Playbook の実行ログに、モジュールに与えたオプション値を表示させるもののようで…

YAML におけるノルウェー問題(The Norway Problem)

いろいろな書き方ができる真偽値 たとえば Ansible の Playbook では、真偽値を指定する時に、true/false 、yes/no などいろいろな書き方ができてしまいます。 去年、Ansible のコミュニティでは、ドキュメント上どう統一するのがいいかの投票がありました。…

[Ansible] インベントリの警告「[WARNING]: No inventory was parsed (略)」の表示有無を切り替える設定 INVENTORY_UNPARSED_WARNING

はじめに ansible-core 2.14.0 の changelog を眺めてて始めて気がついたのですが、INVENTORY_UNPARSED_WARNING という設定項目が追加されていました。 インベントリファイルを読み込めなかったときに表示される警告、[WARNING]: No inventory was parsed, o…