Cloudify REST脚本
01
#!/bin/bash
02
03
bootOutput="bl.out"
04
rm -f $bootOutput//删除b1.out文件
05
./cloudify.sh "bootstrap-cloud ec2" > $bootOutput 2>&1//运行./cloudify.sh bootstrap-cloud ec2并将输出到b1.out和标准输入重定向到标准输出。
06
searchString="Rest service is"
07
selectedText=`grep "${searchString}" $bootOutput`//查找b1.out中"Rest service is"的行赋给selectedText
08
rawValue=`echo ${selectedText} | awk '{print $6}'`//将selectedText中第六个域(以空格或tab分割)赋给rawValue
09
restURL="${rawValue%?}"//linux字符串操作,删除rawValue的最后一个字符后执行,即提取restURL
10
echo "1st restURL is ${restURL}" >> $bootOutput 2>&1//打印并重定向到b1.out和标准输出
11
12
# If there are two management machines (and in production, we recommend it...),
13
# you'll have two Rest URLs
14
rawValue=`echo ${selectedText} | awk '{print $12}'`//和上面一样
15
rest2URL="${rawValue%?}"
16
echo "2nd restURL is ${rest2URL}" >> $bootOutput 2>&1
17
18
# Now set the restURL value in the service context attributes (global scope ,
19
# so it'll be available for all applications) :
20
# e.g. : set-attributes -scope global '{"restURL":"${restURL}", "rest2URL":"${rest2URL}"}'
21
./cloudify.sh "connect ${restURL};set-attributes -scope global '{/"restURL/":/"${restURL}/", /"rest2URL/":/"${rest2URL}/"}'" >> $bootOutput 2>&1//连接restURL并将restURL设为所有应用的全局属性
22
23
# Just checking that it's there :)
24
./cloudify.sh "connect ${restURL};list-attributes" >> $bootOutput 2>&1//测试连接并显示所有属性
25
26
# Now you can install any application
27
# and access the restURL attribute (or "rest2URL")
28
# e.g.: In a groovy lifecycle event handler :
29
# def restURL = context.attributes.global["restURL"]
30
# ./cloudify.sh "connect ${restURL};install-application PATH_TO_APPLICATION" >> $bootOutput 2>&1