Ansibleを使ってESXiのカスタムISOを作るPlaybookを作ってみたので、Ansible Towerで出来たら操作はもっと簡単かなと思い実際にやってみました。
環境
| 項目 | バージョン |
|---|---|
| RHEL | 7.6 |
| Ansible Towre | 3.5.1 |
準備
ここでは、以下を元にvirtualenvを作成しています。
|
1 2 3 |
[root@at01 ~]# scl enable rh-python36 bash [root@at01 ~]# python3 -m venv /opt/project-venvs/custom-iso |
必要なモジュールをインストールします。
|
1 2 |
[root@at01 ~]# /opt/project-venvs/custom-iso/bin/pip install psutil ansible python-digitalocean freeze pyvmomi pyOpenSSL pywinrm clint |
プロジェクトの設定
プロジェクトは以下のように設定しています。
テンプレートの設定
テンプレートは以下のように設定しています。
SURVEY を設定して動的に変数の値を定義できるようにしています。
| プロンプト | 変数 | 説明 |
|---|---|---|
| HOSTNAME | hostname | vCenterのIPまたは名前解決ができるホスト名 |
| PASSWORD | password | vCenterの administrator@vsphere.local のパスワード |
| GUEST PASSWORD | vm_password | ゲストOSの Administrator のパスワード |
| ESXI CUSTOMIZER URL | esxi_customizer_url | ESXiカスタムISOを作成するpowershellスクリプトをダウンロードするURL |
| ESXI CUSTOMIZER OPTION | esxi_customizer_option | ESXiカスタムISOを作成する時のオプション |
実行例
以下は、Ansible Towerで実行した例です。
例では、実行するとSURVEYに設定した変数値の入力が求められるので入力しています。
Demo to create custom ISO of ESXi with Ansible Tower from sky_joker on Vimeo.
このままだとISOが保存されるのはプロジェクトディレクトリになっちゃうので色々と改修する必要がありそうです。
後は工夫すれば、CI/CDにも応用できそうですね 🙂
みんなでハッピーオートメーション!




