zaki work log

作業ログやら生活ログやらなんやら

Ansible

Ansible BuilderをGitLab RunnerのCIで起動してEEコンテナイメージの自動ビルド(Red Hat認証込み)

本エントリは「Ansible Advent Calendar 2025」の18日目のエントリです。 今回はおそろしく速いシリーズじゃないです。 EEカスタムイメージのビルドについては、GitHub Actionsを使った自動ビルドと、AWSのCodeDeployを使った自動ビルドは以前試してみてたけ…

AnsibleでID番号の自動採番をdifferenceフィルターやbreak_whenを使って実装

本エントリは「Ansible Advent Calendar 2025」の17日目のエントリです。 IDの採番という業務でありがちだけど割とマニアックな処理を実装してみたけれど、13日目の穴埋めに投下したエントリに続いて速度ネタになってしまった(笑) やりたいこと 何が難しい?…

mise + uv構成で外部と分離されたAnsible環境の構築

本エントリは「Ansible Advent Calendar 2025」の13日目のエントリです。 ちなみにEmacs育ちなのでCtrl-a/e/n/pなどの基本的なカーソル移動は(bashでも使うので)当然、Ctrl-x 4 aでChangelogドキュメントの自動作成など、たいていの操作は(脳は忘れてるけど)…

[AAP 2.4/2.5/2.6] 自己署名証明書などのinsecureなコンテナレジストリからイメージをpullするワークアラウンド

2025.12.16:AWXの場合を追記 AAP(Ansible Automation Platform)のAutomation Controller標準機能の設定で(Container Registryの認証情報でSSL検証をオフにしておけば)できると思っていたら実はできなかったので、回避策について調べてみた。 結論としては、…

Ansible BuilderでEEコンテナのイメージビルドの際にAutomation Hubのトークン情報を定義ファイルに書かないためのポイント

Ansible Builderを使ったイメージビルドでAutomation Hub(console.redhat.com)のコレクションをインストールする場合の定義ファイルについて。 条件として、各定義ファイル内に認証情報を記述せずに実行時に外部から指定し、バージョン管理対象のファイルに…

Automation Hub( console.redhat.com )のコレクションをansible-galaxyでインストールする手順

手順をあまりよくわかっていなかったのでまとめた。 認証設定 インストール 参考 EEのイメージビルドする場合 認証設定 ansible.cfgに記載する。 以下はパブリックアクセスできるAnsible Galaxyと、Automation Hubを併用する場合。 [galaxy] server_list = r…

[AAP 2.5] AAP上のユーザーを作成するタスクはansible.platformコレクションを使う

AAP 2.5からControllerとPlatform Gatewayに分かれた関係で、ユーザー作成周りの処理(エンドポイント)に変更があり、以前までのモジュールだとAAP 2.5に対しては正常に動作しなくなっている。 結論としては、「組織」「チーム」「ユーザー」に関する操作はan…

[Ansible] splitフィルター

何を今頃という感じもあるけど、ansible-core 2.11で split フィルターが導入されている。 それ以前(2.10以前)はPythonのsplit()組み込み関数を文字列変数に使うしかなかったので、よりAnsibleっぽい書き方ができるようになっている。 docs.ansible.com フィ…

miseを使用した外部と分離されたプロジェクト固有のAnsible環境を整える (venvのみ)

おそらくpipxやuvを完全に理解したらもっと良い構成にできるかもしれないけど、今はこれが精一杯。 ※ 2025.12.13追記:uv連携バージョンを以下にアップしました。 zaki-hmkc.hatenablog.com miseで直接ansibleやansible-coreをインストールできるけど、依存…

[Proxmox VE / Ansible] VM作成のためのテンプレートを作るAnsible Playbook

以前まとめた以下の「テンプレートの作成」をAnsibleで自動化する、という話。 zaki-hmkc.hatenablog.com 作業するのは年に数回なんでいつも心温まる手作業だったけど、コマンドの実行回数が6回くらいあってさすがに回を重ねるとダルくなってきたため、シェ…

[Ansible] awx.awx.schedule_rrulesetルックアッププラグインのlist/strの型不一致エラー(警告)を回避するansible core 2.18(awx.awx 24.6.1)におけるワークアラウンド

AWX/AAP上にジョブテンプレートのスケジュールを定義するこんなplaybook - name: create schedule awx.awx.schedule: name: sample job template schedule unified_job_template: sample job template rrule: "{{ query('awx.awx.schedule_rruleset', start_…

[NetBox / Ansible] NetBoxインベントリプラグインでホストのエンドポイントとAPIトークンを外部から変数指定する

NetBoxのダイナミックインベントリは以前さわったときに使い方を以下にざっくりまとめてた。 zaki-hmkc.hatenablog.com 今回はインベントリファイルというより接続情報の書き方についておさらい。 基本的な書き方 環境変数を使った外部からの変数指定 AWX/AA…

[AAP/AWX] コンテナーグループを作成するAnsibleプレイブック

以前まとめた以下の「[AWX / AAP] ジョブの実行をリモートのKubernetesクラスタで行う」内容はwebのUIで手動で設定するものだったが、本記事ではこの設定操作をplaybookで自動化する方法についてのメモ。 zaki-hmkc.hatenablog.com 大きな流れとしては以下の…

[Ansible] 別ユーザー(非root)権限でのタスクの実行 (become)

Ansibleでroot権限でタスクを実行したい場合はbecomeキーワードを使えばいいが、本質的にはこの仕組みは任意のユーザー権限でタスクを実行するもの。 root権限で処理されるのは、いくつかの関連パラメタを省略するとデフォルトでroot権限で動くようになって…

[Ansible] リモートでの実行時に必要なpipパッケージインストールを含むプレイブック実装 (とPEP668の回避策)

Ansibleでタスクを実行するリモートホストで追加のPythonパッケージが必要な場合に、プレイの中でまずpipでパッケージを入れるタスクを実行した上で依存パッケージが必要なタスク実行を一気通貫で処理する、というもの。 ありがちな例としては、ローカルホス…

[Proxmox VE] AnsibleプレイブックでPVEのVM作成やクローンをより効率化する (community.general)

AnsibleのCommunity.GeneralコレクションにはProxmoxVEを操作するためにモジュールがいくつか含まれており、これを使ってVMを作ったり、作成済みテンプレートからクローンしたりできる。 特にクラウドイメージを使ったVMのクローンにおける追加パッケージイ…

[Ansible / Jinja2] 「{{ sample }}」 という文字列を出力するためのエスケープ記述

お題:以下の内容のテキストを出力したい。 {{ username }} {{ password }} Jinja2で変数参照する際は、{{ 変数名 }} と記述するため、{はそのままでは出力することはできません。 2通りの方法があるのでそのやり方についてメモ。 詳細はJinja2のEscapingの…

[Ansible] password_hashフィルター使用時はpasslibパッケージを入れておく

Ansibleクックブックの「2-3-3 パスワードをハッシュ化する」にも載っているpassword_hashフィルターで発生したエラーについて簡単にまとめ。 docs.ansible.com Ansible10 (ansible-core 2.17)の場合 Ansible9 (ansible-core 2.16)の場合 どういうこと? 環…

[Ansible] community.general.slackモジュールでSlack通知を行うタスク

先日AAP/AWXの通知機能でSlack連携をまとめたので、ついでにPlaybookのタスクから任意のメッセージを通知する方法について。 使うモジュールは以下 docs.ansible.com たとえばAAP/AWX構築Playbookで資材内にSlackのトークンを持っているのであれば、ついでに…

[Ansible / AAP / AWX] 通知機能を使ってジョブの実行状態をSlackへ通知する

AAP(Controller)とAWXには「通知」の機能の一つ(連携先の一つ)としてSlackにジョブの起動・終了(成功・失敗)等を通知することができる。 大まかな流れは以下の通り。 Slackに投稿用botを用意しトークンを作成 作成したトークンを使ってAWX/AAPに通知リソース…

コンテナ化されたAAPのContainerized Ansible Automation Platform (tech preview)を試してみた(AAP 2.4)

最近AAPのインストーラーの新しいバージョンをダウンロードしようとしたら、見慣れない「Tech Preview: Ansible Automation Platform 2.4 Containerized Setup」というインストーラが(日付を見る限り1月の時点ですでに)あったので試してみた。 access.redhat…

AWXのバックアップ・リストアが付属のpostgresql-15-c9s:latestでうまくいかないときのワークアラウンド

原因 現在標準のquay.io/sclorg/postgresql-15-c9s:latestはUID 26で動くので、「UID 26のユーザーがRead/Writeできない領域のボリュームへのバックアップ」が失敗する。 例えば↓のような「rootか特定のUIDでないと書き込めないNFSサーバー領域」とかね。 ro…

[Ansible Builder / AWS] CodeCommit + CodeBuild 環境でEEの自動ビルドとECRへpush (起動は手動)

プライベートではGitHub Actions使ったEEの自動ビルドを1年前に試したけど、業務だとCodeCommit環境を使ってたりするので、せっかくなのでAWSのサービスを使ったビルド環境を試してみた。 初めに軽く検索した感じだと、CodeBuildではコンテナで処理がされる…

(4/11追記) arm64版AWXをデプロイするだけなら自前のビルドは全く不要になってる件の補足とまとめ

2024.04.11追記 forum.ansible.com AWX 24.2.0とAWX Operator 2.15.0がリリースされ、GitHub Container Registryにしかなかったarm64版awxイメージがquay.ioからもpullできるようになりました。 image repository tag awx-operator quay.io/ansible/awx-oper…

[追記あり] 2024年3月現在のAWXのarm64ビルドの状況 (AWX 24.0.0 / Operator 2.13.1)

2年前にKubernetesで動くAWXをarmアーキテクチャのホストで動かそうとした際には、armプラットフォーム用のコンテナイメージが何一つ用意されてなく全部自前でビルドしてた。が、2024年現在、状況が結構変わってかなり簡単になってたので、今時点でどうすれ…

Ansibleからterraform applyを実行するタスクの実装

Terraformでインフラをプロビジョニングしたあとに上物に対してAnsibleで何か(アプリをインストールしたりデータを投入したり)処理をするようなことが多いので、AnsibleからTerraformを実行するようにして一発で処理できるようにするにはどうするか実装を確…

[Ansible / AWX / AAP] ログアグリゲーター設定でジョブの実行ログをLogstash経由でsyslogサーバーへ転送する

ロギング設定にログアグリゲーターを指定して、リモートのsyslogへジョブの実行履歴を転送してみます。 通常AWX・AAPではDBに記録されたジョブの実行履歴などはスケジュールのCleanup Job Scheduleで設定された期限が過ぎたら削除されるので、基本的にはUIで…

[Ansible / AAP / AWX] EEのコンテナイメージ作成にAnsible Builderは必ずしも必要ないかを確認してみた (小ネタ)

AAPやAWXでジョブ実行に必要なExecution Environments(EE)を作るために通常はAnsible Builderを使ってコンテナイメージをビルドするが、要件を満たせばDockerfileを直接書いて自前でビルドしても動くのでは…と思ったので確認してみた。 結論としては、以下が…

[Ansible / AAP / AWX] AnsibleでAAPリソースの作成を自動化する

本エントリは「エーピーコミュニケーションズ Advent Calendar 2023」の24日目のエントリです。クリスマスイブは一切関係ないネタです。 Ansible Automation PlatformのAutomation Controller(旧Ansible Tower / 以下AAP)やAWXはGUIでAnsibleを実行すること…

[Ansible] kubernetesコネクションプラグインとインベントリプラグインを使ってみる

本エントリは、Ansible Advent Calendar 2023の14日目の記事です。煽られて(?)即席で書き上げました。 昨年共著で出版させていただいたAnsibleクックブックでは紙面の都合 * で掲載しなかった、kubernetesコネクションプラグインについて簡単に使い方の例を…