oVirt の VM のクローンを Ansible で作成する

背景

oVirt で VM のクローンを作成したいとき、GUI ではメニュから何も気にせず実行できます。

一方で、これを Ansible から実行しようとしても、oVirt の VM を管理するときに利用する ovirt.ovirt.ovirt_vm モジュール では実現は難しいようです。クローンに類する操作は次の二種のみしか対応していなさげでした。

  • テンプレートからの仮想マシンの作成
  • 他の VM のスナップショットからの仮想マシンの作成

実行したいのは、既存の VM からの Ansible を使ったダイレクトなクローン作成です。本エントリでは、これを API を直接叩いてがんばってどうにかする実装例を紹介します。

oVirt 4.4 でテスト済みです。RHV でも動きそうな気はしますが未テストです。AWX での利用を想定していますが、ansible-playbook でも動作します。

続きを読む

New-IsoImage: PowerCLI でのカスタム ISO ファイルの新しい作り方

はじめに

vSphere 7 から、vSphere 環境のライフサイクル管理を担う vLCM が登場し、ESXi のパッケージ構成が ベースイメージアドオンコンポーネント を追加する考え方に変わりました。

PowerCLI でも、2020 年 4 月にリリースされた 12.0 から、この考え方に基づいてカスタム ISO ファイルの作成が行えるよう、New-IsoImage など Image Builder 関連の新しいコマンドレットが追加されています。カーネルオプションも含められる ので、慣れるととても便利です。

使い方は vSphere 7.0 のドキュメントVCF のドキュメント に充分書いてありますし、リファレンスもあります が、本エントリでは、ドキュメントに書かれていないところを補足しつつ、改めて紹介します。

なお、実際に使う場合は、バグが修正されている PowerCLI 12.5 以降VMware.ImageBuilder 7.0.3 以降)を推奨します。また、現状、PowerShell Core(OSS 版の PowerShell、現 PowerShell 7)では動作しない ため、Windows にバンドルされている Windows PowerShell を使う必要 があります。

続きを読む

AWX Operator の 0.14.0 以降へのアップグレード

はじめに

0.13.0 までの AWX Operator は、Kubernetes の クラスタスコープ で動作していました。default ネームスペースに AWX Operator がただ一つ存在していて、同じクラスタ内であればネームスペースを問わず AWX リソースを管理できる状態です。AWX Operator の 0.14.0 では、これが ネームスペーススコープ に変更されています。すなわち、AWX Operator 自身が存在しているネームスペース内でしか AWX リソースを管理できません。

また、AWX Operator のデプロイ方法も、GitHub 上のマニフェストファイルを kubectl apply する従来の方法から、0.14.0 では make を使った方法に変更 されています。

従来、AWX Operator をアップグレードしたい場合(すなわち AWX をアップグレードしたい場合)、AWX リソースのパラメータに互換性がある範囲であれば、単に新しいバージョンのマニフェストファイルを kubectl apply すれば充分でした。しかしながら、前述の変更を踏まると、0.13.0 以前から 0.14.0 以降へアップグレードする際は、不要なリソースの削除など少しだけ追加の手順が必要です。

続きを読む

AWX に Active Directory で認証させて組織やチームと自動で紐づける

はじめに

本エントリでは、AWX のユーザ認証のバックエンドに Active Directory を LDAP サーバとして利用する場合の構成を取り上げます。

単にログインできるようにするだけではあまり工夫のしどころがないので、もう少し踏み込んだユースケースを想定して、Active Directory 側の グループ と AWX の 組織チーム とのマッピングも構成します。

AWX 側の ロール と組み合わせることで、Active Directory のグループに応じた、いわゆる RBAC を実現できます。

続きを読む

Ansible で Active Directory に Organizational Unit(OU)を作る

community.windows コレクション の現時点で最新の 1.6.0 には、グループやユーザの管理の機能はありますが、それらが所属する Organizational Unit(OU)自体の管理の機能が含まれません。

Ansible で Active Directory の OU そのものの作成や変更・削除を行うには、PowerShell DSC の ActiveDirectoryDsc モジュール に含まれる ADOrganizationalUnit リソースansible.windows.win_dsc モジュールで呼び出すことで実現できます。

続きを読む

Ansible Galaxy NG を Docker や Kubernetes で気軽に試す方法いろいろ

はじめに

前回前々回 のエントリでは、Ansible AWX 周辺の最近の機能として、Execution Environment や、さらにその周辺の Ansible Runner、Ansible Builder の OSS 版での動きを追いかけました。今回は、Private Automation Hub のアップストリーム版である Ansible Galaxy NG の周辺を見ていきます。

が、現時点でサポートされている構成はホスト OS への直接のインストールのみで、開発用には Docker Compose ベースの手順もあるものの、いずれにせよ総じて取り回しが少々不自由です。そんなわけで本エントリでは、現時点で気軽に Galaxy NG を試せる方法 として、次の 3 パタンでの実装手順 と、簡単な動作確認 を取り扱います。

なお、いずれも Galaxy NG のドキュメントには記載がない 方法であり、当然ながら 正式にサポートされる手順ではない 点は注意が必要です。このエントリは 実験レポート程度 に捉え、検証や勉強やテスト など 試用を目的としたユースケースに限定 して遊ぶとよいでしょう。

  • Docker で全部入りコンテナを使うパタン
    • おそらくもっとも手軽な Galaxy NG の入手方法
    • すべてが一つに詰め込まれた既成コンテナイメージを動かすだけ
  • Kubernetes で全部入りコンテナを使うパタン
    • 前述の Docker パタンを愚直に Kubernetes 上に移植したもの
    • プラットフォームを Kubernetes に揃えたいならいちばん気軽
  • Kubernetes で Pulp Operator を使うパタン
    • おそらく将来的に正式な Kubernetes 上へのデプロイ方法になる気がしているパタン
    • マイクロサービス化されてスケールもできる状態できちんとしたモノができあがる
    • まだまだ開発途上の様子(動かせはする)

とはいえ、自製の Collection の表示のテスト など特定用途ではなかなか便利そうです。最初の Docker パタンなら、慣れれば 10 秒で完成 します。

今回も、必要なファイルは GitHub に置いています

続きを読む

Ansible AWX で Execution Environment と Container Group を作って使う

はじめに

前回のエントリ “Ansible Runner と Ansible Builder で Execution Environment を作って使う” では、AWX で Execution Environment を使うための前段として、Ansible Runner と Ansible Builder の動作を確認しました。

このエントリでは、その続きとして、作成した Execution Environment を実際に AWX から利用する流れを確認します。また、Container Group を作成して、Pod の構成をカスタマイズします。

続きを読む

Ansible Runner と Ansible Builder で Execution Environment を作って使う

はじめに

Ansible Automation Platform 2.0 がアーリーアクセスで提供されはじめ、次期メジャリリースの情報が出てきました。

目立つところでは、Ansible Tower が Ansible Automation Controller に改名されていますが、アーキテクチャ面でも、制御プレーンと実行プレーンを疎結合にするために Execution Environment(EE)の概念が新たに登場しています。

従来、プレイブックに応じて Python のモジュールや Collection を使い分けたい場合、典型的には Python の仮想環境を用いた環境の分離を行っていました。Execution Environment(EE)は、平たくいえばこれを コンテナに置き換えるもの であり、Ansible のランタイムをコンテナ化したもの と言えそうです。必ずしも Tower(AWX)と組み合わせなくても使えますが、Tower(AWX)目線でも、本体のインスタンスと実行環境が分離されるので、スケールもしやすくなりそうです。

本エントリでは、AWX での Execution Environment(EE)の動きを確かめるための準備として、Ansible RunnerAnsible Builder の動作を確認します。次のエントリ では、本エントリで作成した自前の Execution Environment(EE)を実際に AWX から利用します。

続きを読む

AutoMuteUs のよくある質問と回答とかいろいろ

AutoMuteUs のサポート Discord や DM で聴かれたこと、日本語での情報が少ないことなどをまとめています。思いつきでほどほどに更新します。

Docker や Docker Compose それ自体の使い方というよりは、維持や運用の仕方とかそっちの方面が中心です。

その他の Tips 系は別エントリ Among Us 用ボット AutoMuteUs のあまり知られていない便利な機能 でも紹介しています。

続きを読む