てくなべ (tekunabe)

ansible / network automation / 学習メモ

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

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

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

はじめに 2022/06/15-17(現地展示期間として)に開催されたInterop Tokyo 2022に参加してきました。 毎年のネットワークのお祭り的な位置づけとして、毎年楽しみにしています。去年と比べて来場者数はだいぶ増えたようです。 今年も ShowNet のさまざまな機…

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

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

[Ansible] Automation Controller に適用したライセンス情報をAPIで削除する

はじめに Automation Controller にライセンスを適用するモジュール ansible.controller.license も動作確認するときに、一度適用したライセンス情報を削除したいことがありました。ですが、モジュールでも画面の操作でも削除はできなさそうでした。 一方、A…

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

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

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

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

HashiCorp Vault の動的シークレット機能で AWS の一時的 な IAM ユーザーを作成してみた

はじめに Software Design 2022年5月号の Vault の連載の記事は「動的シークレットで安全性を高めよう」という内容でした。 興味が湧いたので、HashiCorp Learn の Dynamic Secrets も合わせて読んだうえで、試してみました。 AWS の IAM ユーザーの一時的に…

[AWS] アタッチされていない EBS ボリューム一覧を AWS CLI で表示する

aws

EC2 インスタンス削除時に、自動でEBS ボリュームも削除されるつもりだったのにうっかり残っていた、という経験はありますでしょうか。 このようなとき、アタッチされていない EBS ボリュームの一覧を取得したいときがあるかもしれません(ありました)。 AW…

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

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

[Ansible] ansible-navigator 2.0.0 新機能ピックアップ Part 2: その他編

はじめに 先日、ansible-navigator 2.0.0 がリリースされました。 Release v2.0.0 · ansible/ansible-navigator · GitHub 前回の記事で、追加されたサブコマンドを取り上げました。 tekunabe.hatenablog.jp 今回はそれ以外の気になったものを取り上げます。 …

[Ansible] ansible-navigator 2.0.0 機能ピックアップ Part 1: 追加サブコマンド編

はじめに 先日、ansible-navigator 2.0.0 がリリースされました。 github.com ansible-navigator は、Playbook 実行や実行環境の管理などの機能を持つ TUI ツールです。 2.0.0 では、実行環境のビルドや ansible-lint を呼び出す機能などの追加や、設定ファ…

[Ansible] azure.azcollection.azure_rm インベントリプラグインで停止中のVMも対象にする

はじめに Ansible から Azure の VM の情報を取得して動的にインベントリを生成できる azure.azcollection.azure_rm インベントリプラグインという便利なものがあります。 こちらの issueを見てなるほどと思ったのですが、デフォルトだと実行中(running)で…

[Ansible] Ansible から HashiCorp Vault のシークレットを取得する

はじめに 前回の記事で、HashiCorp Vault の kv シークレットエンジンを使ってシークレットの登録をしました。 今回は、そのシークレットを Ansible から取得して表示したり、機器への接続パスワードに利用することを試します。 Ansible の community.hashi_…

HashiCorp Vault によるシークレットの登録と確認を気軽に試してみた

はじめに Software Design 2022年4月号で始まった連載「HashiCorp Vaultではじめるシークレット管理」を読んで、HashiCorp Vault(以下 Vault)に興味を持ちました。 他、HashiCorp Learn の Vualt のコンテンツも参照してみました。 あくまでお試しレベルです…

[Ansible] Ansible 3 以降のモジュール一覧のページ

はじめに Ansible のモジュールの一覧を確認したいときは、よく公式ドキュメントを参照します。Ansible 2.9 までは、Module Indexというページがあり、さらにカテゴリごとのページに飛べます。また、All modules というページでは全モジュールの一覧が表示さ…

[Ansible] スキップされたタスクの結果は is skipped でもあり is succeeded でもある

はじめに Ansible では、タスクの実行結果を変数に保存し、その結果を後続のタスクで確認する機能があります。 docs.ansible.com そういえばどうなんだろうシリーズといいますか、「スキップされたタスクって succeeded 扱いだっけ?」と思ったことがありま…

[Ansible] もくもく会コンテンツのリポジトリにある資料「Ansible Best Practices」

Ansible ユーザー会では定期的にもくもく会というハンズオンイベントを開催しています。 次回は 2022/04/21 です。 コンテンツは以下のリポジトリにあります。 github.com 先日見つけたのですが、Ansible Best Practicesという資料がありました。 こうかいて…

[Ansible] Automation Controller 上で実行環境コンテナ内のコレクション一覧を確認する(やや力技)

はじめに AAP 2.x になってから、Ansible の実行環境が Python の venv から、コンテナに変わりました。 コンテナの中に、利用するコレクションを仕込んでおくわけですが、Automation Controller を触ってるときに、コンテナ内のコレクション一覧を確認した…

Backlog の Git 機能の課題とプルリクエスト連携機能をためした

はじめに タスク管理ツール(SaaS)である Backlog にはGit ホスティング機能があります。 https://support-ja.backlog.com/hc/ja/categories/360002262194-Git-Subversion プルリクエスト機能もあるため、課題と関連付けできると経緯をトレースできていいな…

firewalld の Intra Zone Forwarding の機能有無やデフォルト値

はじめに firewalld の firewall-cmd --list-all の結果で、forward という項目がある環境とない環境があることに気が付きました。forward-ports とはまた別物です。 0.9.0で導入された、Intra Zone Forwarding という機能のものによるようです。 気になった…