[CloudStack] 仮想マシン起動時にロードバランサーに自動で join する
概要
CloudStack で新規 VM デプロイ時にロードバランサーに自動で join する。
必要なもの
仮想マシンテンプレートに以下をインストールしておく。
- cloud-init
- CloudStack CLI (cs)
(credential の設定もやっておく)
また、既存の LoadBalancerRule の ID を確認しておく。
$ cs listLoadBalancerRules | jq -r '.loadbalancerrule[].id'
2cef1457-36d4-43fc-9694-c83dde6e60a1
VM デプロイ
UserData に以下のスクリプトを設定して cloud-init で起動時に実行されるようにする。
#!/bin/bash
LoadBalancerRule=2cef1457-36d4-43fc-9694-c83dde6e60a1
virtualmachineid=`curl http://data-server/latest/meta-data/vm-id`
cs assignToLoadBalancerRule id=$LoadBalancerRule virtualmachineids=$virtualmachineid
※meta-data から自身の virtualmachineid を取得して、既存のロードバランサーにアサイン
VM 削除でロードバランサーから自動で切り離しされる。