LoginSignup
3
3

More than 5 years have passed since last update.

SoftLayerのVirtual Serverを立ち上げるbash

Last updated at Posted at 2015-04-20

最近SoftLayerのVirtual Serverを作っては落としとしているので、DC、ホスト名、OSを引数にしてSoftLayerにVirtual Serverを立ち上げるスクリプトをSL CLIを使って書いた。
ドメイン名やSSHキー名、CPU数とメモリ量は決め打ち。

そのDCに既にVLANが作成されていた場合、そのVLANに明示的に所属させる。

sl vlan listがPUBLICかPRIVATEかを返してくれないので、VLANが持つIPの数で判別している。微妙。。。
※ VLANが二本以上ある場合は未テスト
※ VLANの割り当て数を超えた場合にどうなるのかも未テスト

create_vs.sh
#!/bin/bash

if [ $# -ne 3 ]; then
  echo "usage: $0 DATACENTER HOSTNAME OS"
  exit 1
fi

DC=$1
HOSTNAME=$2
OS=$3

DOMAIN="your.domain.name"
SSH_KEY="your_ssh_key_registername"
CPU="1"
MEM="1024"

CMD="/usr/local/bin/sl vs create --hourly --really"
CMD="$CMD --datacenter=$DC --domain=$DOMAIN --hostname=$HOSTNAME"
CMD="$CMD --cpu=$CPU --memory=$MEM --os=$OS --key=$SSH_KEY"

PRIVATE_VLAN=`/usr/local/bin/sl vlan list | grep $DC | grep " 61 " | cut -d " " -f1`
if [ -n "${PRIVATE_VLAN}" ]; then
  echo "use private vlan ${PRIVATE_VLAN}"
  CMD="$CMD --vlan_private=${PRIVATE_VLAN}"
fi

PUBLIC_VLAN=`/usr/local/bin/sl vlan list | grep $DC | grep " 13 " | cut -d " " -f1`
if [ -n "${PUBLIC_VLAN}" ]; then
  echo "use public vlan ${PUBLIC_VLAN}"
  CMD="$CMD --vlan_public=${PUBLIC_VLAN}"
fi

set -x

$CMD

ついでに、全てのVirtual Serverを問答無用でCancelするスクリプト。

cancel_all_vs.sh
#!/bin/bash

for vs in `/usr/local/bin/sl vs list | cut -d " " -f1`; do
  echo cancel $vs
  /usr/local/bin/sl vs cancel $vs --really
done
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3