文档
实例使用假设
Alon想要用最新的安全更新刷新所有TurnKey Linux 应用设备.
他写一个脚本,接受应用设备的名称作为参数,从Sourceforge下载最新版本,提取根文件系统,安装安全 更新,将根文件系统重新包装为应用设备 ISO,并将应用设备的新版本上传回Sourceforge.
在他在当地的Ubuntu工作站测试脚本后,他要求Hub启动一个新的TurnKey Core实例(88.1.2.3),转移脚本并安装任何依赖性. 一旦测试了一切,他就会创建一个新的TKLBAM备份,并捕获他主工人服务器的状态。
阿隆进行他的第一次云层任务测试:
echo core | cloudtask --workers=88.1.2.3 refresh-iso-security-updates
一旦他证实这个单一测试工作正确工作,他就准备好进行将同时运行在10台服务器上的大批量工作.
由于这是例行任务,阿隆预计会定期重复,因此他用$HOME/云任务为它创建了预配置的云任务模板:
$ mkdir $HOME/cloudtasks
$ cd $HOME/cloudtasks
$ cat > refresh-iso << 'EOF'
from cloudtask import Task
class RefreshISO(Task):
DESCRIPTION = "This task refreshes security updates on an ISO"
BACKUP_ID = 123
COMMAND = 'refresh-iso-security-updates'
SPLIT = 10
REPORT = 'mail: cloudtask@example.com alon@example.com liraz@example.com'
HUB_APIKEY = 'BRDUKK3WDXY3CFQ'
RefreshISO.main()
EOF
$ chmod +x ./refresh-iso
$ cat $PATH_LIST_APPLIANCES | ./refresh-iso
About to launch 10 cloud servers to execute the following task:
Parameter Value
--------- -----
jobs 40 (appengine .. zimbra)
command refresh-iso-security-updates
hub-apikey 5YGVPEMHJHU5EA
ec2-region us-east-1
ec2-size m1.small
ec2-type s3
user root
backup-id 123
workers -
overlay -
post -
pre -
timeout -
report mail: cloudtask@turnkeylinux.org liraz@turnkeylinux.org
Is this really what you want? [yes/no] yes
session 11 (pid 29709)
88.178.132.231 (29721): launched new worker
88.214.141.175 (29722): launched new worker
88.15.179.7 (29724): launched new worker
88.229.38.128 (29723): launched new worker
...
45分钟后,阿隆收到云塔克的电子邮件,称工作已经完成. 主体中是会话日志,详细列出是否发现任何工作的错误(如非零退出码),会话运行时间等.
如果阿隆想,他可以跟踪工人日志文件,实时跟踪任务执行情况:
tail -f ~/.cloudtask/11/workers/29721