サーバの停止からバックアップの取得、起動を自動化する場合には slcli から実施すると簡単に実装することが出来ます。
スクリプト自身の制御についてはここでは記載は控えておきますので必要に応じて処理を組み込んで下さい。
ここでは test1 というhostnameの仮想サーバを操作しています。
サーバの停止
$ yes "y" | slcli vs power_off test1
結果
vagrant@vagrant-ubuntu-trusty:~$ slcli vs detail test1
:....................:......................................:
: name : value :
:....................:......................................:
: id : 14564145 :
: guid : 6545eacb-d899-42fe-ab18-8ed88fe3a5f5 :
: hostname : test1 :
: domain : test.com :
: fqdn : test1.test.com :
: status : Active :
: state : Halted :
: active_transaction : - :
上記のステータスが Halted に変更します。
バックアップの取得
vagrant@vagrant-ubuntu-trusty:~$ slcli vs capture -n test1.bk test1
:................:............................:
: name : value :
:................:............................:
: vs_id : 14564145 :
: date : 2015-12-13 :
: time : 20:37:53 :
: transaction : Create Cloud Disk Template :
: transaction_id : 26978469 :
: all_disks : None :
:................:............................:
バックアップ中はサーバのactive_transactionが変更します。
:....................:......................................:
: name : value :
:....................:......................................:
: id : 14564145 :
: guid : 6545eacb-d899-42fe-ab18-8ed88fe3a5f5 :
: hostname : test1 :
: domain : test.com :
: fqdn : test1.test.com :
: status : Active :
: state : Halted :
: active_transaction : Check Cloud Disk Template Transfer :
※captureコマンドは完了がわからないためある程度の余裕を持ってポーリングする必要があります。
取得後は以下の様な表示となります。
image detail test1.bk
:....................:......................................:
: name : value :
:....................:......................................:
: id : 872635 :
: global_identifier : 59319141-7ebf-465f-ad89-3ed423ae42ae :
: name : test1.bk :
: status : Active :
: active_transaction : - :
: account : 396820 :
: visibility : Private :
: type : System :
: flex : False :
: note : None :
: created : 2015-12-13T20:37:52-06:00 :
: disk_space : 3.46G :
: datacenters : sjc03 :
:....................:......................................:
サーバの起動
vagrant@vagrant-ubuntu-trusty:~$ slcli vs power_on test1
サーバが起動するとstatusは Running に変更します。
vagrant@vagrant-ubuntu-trusty:~$ slcli vs detail test1
:....................:......................................:
: name : value :
:....................:......................................:
: id : 14564145 :
: guid : 6545eacb-d899-42fe-ab18-8ed88fe3a5f5 :
: hostname : test1 :
: domain : test.com :
: fqdn : test1.test.com :
: status : Active :
: state : Running :
: active_transaction : - :
このように API を操作しなくても slcli を組み合わせることでシンプルなスクリプトでバックアップの取得ができるようになります。Caputerコマンドは実際にはサーバの停止を内部で行うためバックアップ取得サーバ自身でCron処理する場合には power_on , power_off は実施しないでも良いかもしれません。業務上確実な静止点が必要場合には power_off / power_on をした方が良いシチュエーションも有りますので適宜組み合わせて下さい。