VMware Cloud on AWS(VMC on AWS)の SDDC の REST API での作成 → 削除を、Linux の cron で実行してみます。
今回の内容です。
1. REST API での SDDC 作成と削除
あらかじめ、SDDC 作成 / 削除スクリプトを用意しておきます。今回は、それぞれ下記のようにスクリプトを用意してあります。
SDDC の作成
SDDC の削除
2. cron 実行環境の準備
今回の Linux は、RHEL 8 です。
# cat /etc/redhat-release Red Hat Enterprise Linux release 8.8 (Ootpa)
日本時間でスケジュール設定するため、OS のタイムゾーンが「Asia/Tokyo (JST, +0900) 」であることを確認しておきます。JST になっていない場合は「timedatectl set-timezone Asia/Tokyo」で設定変更しておきます。
$ timedatectl Local time: 木 2023-11-09 02:17:01 JST Universal time: 水 2023-11-08 17:17:01 UTC RTC time: 水 2023-11-08 17:17:01 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no
demo ユーザを作成します。
# useradd -m demo # passwd demo
ここからは、demo ユーザで作業します。
# su - demo $
3. スクリプトの配置
スクリプト一式を格納するディレクトリを作成しておきます。
$ mkdir vmc-auto
そして、これまでの投稿で作成した、スクリプト関連のファイルを配置しておきます。
$ ls -l /home/demo/vmc-auto/* -rw-rw-r--. 1 demo demo 286 11月 9 02:48 /home/demo/vmc-auto/TEST-SDDC-1Node.json -rw-rw-r--. 1 demo demo 674 11月 9 02:48 /home/demo/vmc-auto/create_vmc_sddc.sh -rw-rw-r--. 1 demo demo 800 11月 9 02:49 /home/demo/vmc-auto/delete_vmc_sddc.sh -rw-rw-r--. 1 demo demo 137 11月 9 02:50 /home/demo/vmc-auto/id_and_key.txt
4. cron のスケジュール登録
crontab -e コマンドで、スケジュール登録を開始します。
$ crontab -e
OS のエディタ(RHEL 8 デフォルトでは vi)が開くので、入力して保存 → 終了します。
- 11月9日 3時0分に SDDC 作成(bash create_vmc_sddc.sh ~を実行)
- 11月9日 6時0分に SDDC 削除(bash delete_vmc_sddc.sh ~を実行)
スケジュールの記述例です。ちなみに、5番目のフィールドは曜日なので、「0 17 * 11 1-5」と指定すると「月~金曜日の 11月中の毎日17時0分」といったスケジュールになります。
0 3 9 11 * bash ~/vmc-auto/create_vmc_sddc.sh ~/vmc-auto/id_and_key.txt ~/vmc-auto/TEST-SDDC-1Node.json 0 6 9 11 * bash ~/vmc-auto/delete_vmc_sddc.sh ~/vmc-auto/id_and_key.txt TEST-SDDC-1Node
crontab -l で、スケジュールを確認しておきます。
$ crontab -l 0 3 9 11 * bash ~/vmc-auto/create_vmc_sddc.sh ~/vmc-auto/id_and_key.txt ~/vmc-auto/TEST-SDDC-1Node.json 0 6 9 11 * bash ~/vmc-auto/delete_vmc_sddc.sh ~/vmc-auto/id_and_key.txt TEST-SDDC-1Node
5. スクリプトの実行確認
スケジュール登録した時間になると、自動的にスクリプトが実行され、VMware Cloud Services Console などで SDDC 作成 / 削除の開始が確認できるはずです。
Linux 側でログを確認する場合は、root ユーザで下記のような方法で確認できます。
- /var/log/cron などのログ ファイルを参照
- journalctl コマンド
たとえば、下記のように cron による実行の記録が確認できます。
/var/log/cron ファイル
# cat /var/log/cron | grep vmc-auto Nov 9 03:00:01 lab-rhel8-01 CROND[181477]: (demo) CMD (bash ~/vmc-auto/create_vmc_sddc.sh ~/vmc-auto/id_and_key.txt ~/vmc-auto/TEST-SDDC-1Node.json) Nov 9 06:00:01 lab-rhel8-01 CROND[181701]: (demo) CMD (bash ~/vmc-auto/delete_vmc_sddc.sh ~/vmc-auto/id_and_key.txt TEST-SDDC-1Node)
journalctl コマンド
# journalctl --since "2023-11-09 03:00:00" | grep vmc-auto 11月 09 03:00:01 lab-rhel8-01 CROND[181477]: (demo) CMD (bash ~/vmc-auto/create_vmc_sddc.sh ~/vmc-auto/id_and_key.txt ~/vmc-auto/TEST-SDDC-1Node.json) 11月 09 06:00:01 lab-rhel8-01 CROND[181701]: (demo) CMD (bash ~/vmc-auto/delete_vmc_sddc.sh ~/vmc-auto/id_and_key.txt TEST-SDDC-1Node)
以上、SDDC 作成 → 削除の自動化例でした。
こちらもどうぞ。