![]() |
| 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! |

