by Frank Souza |
先日2月2日行われた、「hbstudy#41 x IDCFクラウドハンズオン」に参加してきたので、ちょっとしたまとめ。
きっかけ
そもそも、12月に開催されるはずだった勉強会でした。
が、開催日前日の地震のため延期となりこの度開催。
もともと、行く予定だったので、再度登録。
内容としては「monit + fabric + APIを利用してauto scalingを自作してみましょう」ということで
これって、おもしろそうでしょ?(^o^)
- IDCフロンティアのクラウドサービスをイチから使う
- fabricを使った、構築
- fabric + monitを使った、auto-scaling
早速内容
私は以前にIDCフロンティアのクラウドサービスを使ったことがあったので、説明の時間はパス。
その前に「Windowsストアアプリ ハッカソン Vol.2.0」に行っていたのもあったんですが・・・
途中から参加して、
IDCフロンティアの藤城さんが作成してくれた、資料を元にモクモクやったり、発表者と一緒にやったり。φ(・ェ・o)
ファイルの公開
全部の説明するのは大変だったので、なんとなく公開してみた。
(」・ω・)」うー!(/・ω・)/にゃー!
snickerjp/hbstudy41-idcf · GitHub
https://github.com/snickerjp/hbstudy41-idcf
大元との変更点
sshdの再起動
def sshd_config(user=SUDOERS): comment("/etc/ssh/sshd_config",r"^PermitRootLogin yes") uncomment("/etc/ssh/sshd_config",r"PermitEmptyPasswords no") append("/etc/ssh/sshd_config", ["PermitRootLogin no", "AllowUsers {0}".format(user)]) #run("service sshd restart") run("service sshd reload") # sshd restart は怖いので、reload
ここは、「sshd起動しなかったら怖いから」修正していたんですが、
どうやら「restart」にすると接続が一度切れちゃうようでスピーカーさんもハマられていました。
「reload」の修正がたまたま良かったみたい。
hello_py.cgi, scale2.shの改行コード変更
vimで開いたら、 hello_py.cgi [dos] と書いてあったので、気がついた。この辺りはPHPだとサクッと行くんだけどな?
例として
mv hello_py.cgi hello_py.cgi.tmp nkf -Lu hello_py.cgi.tmp > hello_py.cgi
mv scale2.sh scale2.sh.tmp nkf -Lu scale2.sh.tmp > scale2.sh
みたいにして回避した
cgiの転送
def setup_cgi(): sudo(""" yum -y install httpd chkconfig httpd on service httpd start """) #put("~/hello_py.cgi","/var/www/cgi-bin/hello_py.cgi",use_sudo=True) put("hello_py.cgi","/var/www/cgi-bin/hello_py.cgi",use_sudo=True) sudo("chmod 755 /var/www/cgi-bin/hello_py.cgi") run("curl -s http://localhost/cgi-bin/hello_py.cgi | sed -e 's/<[^>]*>//g'")
ここは、root実行前提のscriptの書き方だったので。
sudoで一般ユーザーから実行したかったので、実行場所と同じ所に置けば動くよね?程度。
自分用に変更が必要なところ
以下2箇所の「日本語で書いたところ」は自分用に変更が必要です。def setup_idcf_vm(displayname="scale"): resp = local(""" idcf-compute-api deployVirtualMachine \ --keypair {keypair} \ --displayname {displayname} \ --group {group} \ --templateid {templateid} \ --serviceofferingid {serviceofferingid} \ --zoneid {zoneid} """.format(keypair="「IDCFで登録したキーペア名」", #your ssh-key name displayname=displayname, group=SCALE_GROUP, templateid="2008", #(2008) [LATEST] CentOS 6.3 64-bit serviceofferingid="22", #(22) S2 zoneid="1"),capture=True) print resp retval = json.loads(resp, 'UTF-8') ret = retval["deployvirtualmachineresponse"] vm_id = ret["id"] jobid = ret["jobid"] wait_job(jobid) print "__vmid__,%d" %vm_id
def add_balancing_server(vmid): resp = local(""" idcf-compute-api assignToLoadBalancerRule\ --id {id} \ --virtualmachineids {virtualmachineids} """.format(id="「ロードバランサID」", #your ID of the load balancer rule virtualmachineids=vmid),capture=True) print resp
写真
作業最中 |
映り込みがハンパなくて作業しづらかった〜
IDCフロンティアさんのクラウドダッシュボード |
最後に面倒なら・・・ |
Cloud Management for Public and Private Clouds by RightScale
http://www.rightscale.com
Scalr — cloud management software
http://scalr.com/
もくもくです! |
懇親会
Beer! |
Pizza! |
SCALRのLT! |