NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

acli で VM 削除自動化くん。(Bash スクリプト編)

以前に、acli で AHV 上にある VM の一括削除をしてみました。

しかし、コマンドライン1行での実行だと柔軟性があまりないので、今回は Bash スクリプトを作成して、リスト ファイルにない VM を一括削除してみます。

今回のスクリプト

gist.github.com

実行例

Nutanix CE の CVM に SSH ログインしています。
今回は、VM が 4つある状態です。

CVM$ acli vm.list
VM name         VM UUID
demo-vm-01      4e7e32d0-7464-4820-8109-c64d81865564
lab-ntnx-pc-01  19192d75-ae55-4908-aae6-a9fd3a300d3c
vm01            91fba0da-1c93-4439-9ca4-b522bcee3db8
vm02            31052a39-519f-4042-9501-4457cda82c02

スクリプトをダウンロードします。

CVM$ curl -O https://gist.githubusercontent.com/gowatana/2433eb1238ff56f22cca842ef5cc98e5/raw/cleanup_ahv_vm.sh
CVM$ ls -l cleanup_ahv_vm.sh
-rw-------. 1 nutanix nutanix 452 Jan 29 23:22 cleanup_ahv_vm.sh

削除しない VM のリスト ファイルを作成します。

CVM$ echo demo-vm-01 > ./keep_vm_list.txt
CVM$ echo lab-ntnx-pc-01 >> ./keep_vm_list.txt
CVM$ cat ./keep_vm_list.txt
demo-vm-01
lab-ntnx-pc-01

VM リスト ファイルを指定して、スクリプトを実行します。この時点では VM を残す(keep)か、削除する(delete)か表示されます。

CVM$ bash cleanup_ahv_vm.sh ./keep_vm_list.txt
demo-vm-01 => keep
lab-ntnx-pc-01 => keep
vm01 => delete
vm02 => delete

スクリプトに delete オプションをつけて実行ると、VM を削除します。

CVM$ bash cleanup_ahv_vm.sh ./keep_vm_list.txt delete
demo-vm-01 => keep
lab-ntnx-pc-01 => keep
vm01 => delete
vm01: pending
vm01: complete
vm02 => delete
vm02: pending
vm02: complete

リスト ファイルに記載されている VM 以外だけが残りました。

VM name         VM UUID
demo-vm-01      4e7e32d0-7464-4820-8109-c64d81865564
lab-ntnx-pc-01  19192d75-ae55-4908-aae6-a9fd3a300d3c

以上。

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。