दस्तावेज़
उदाहरण के लिए उपयोग परिदृश्य
Alon नवीनतम सुरक्षा अद्यतन के साथ सभी TurnKey Linux सर्वरों को ताज़ा करना चाहता है।
वह एक स्क्रिप्ट लिखता है जो एक सर्वर का नाम एक तर्क के रूप में स्वीकार करता है, सोर्सफोर्ज से नवीनतम संस्करण डाउनलोड करता है, रूट फ़ाइल सिस्टम को निकालता है, सुरक्षा अद्यतन स्थापित करता है, और उसके बाद, वह एक स्क्रिप्ट लिखता है जो सर्वर के नाम को एक तर्क के रूप में स्वीकार करता है, जो सोर्सफोर्ज से नवीनतम संस्करण को डाउनलोड करता है, रूट फ़ाइल सिस्टम को निकालता है, सुरक्षा अद्यतन स्थापित करता है, और उसके बाद, वह एक स्क्रिप्ट लिखता है। रूट फ़ाइलसिस्टम को ISO में फिर से पैक करता है और सर्वर का नया संस्करण वापस सोर्सफोर्ज पर अपलोड करता है।
अपने स्थानीय उबंटू वर्कस्टेशन पर स्क्रिप्ट का परीक्षण करने के बाद, वह हब को एक नया TurnKey Core उदाहरण (88.1.2.3) लॉन्च करने के लिए कहता है, अपनी स्क्रिप्ट को स्थानांतरित करता है और जो भी निर्भरता स्थापित करता है। एक बार सब कुछ काम करने के लिए परीक्षण किया जाता है, तो वह अपने मास्टर वर्कर सर्वर की स्थिति पर कब्जा करने के साथ एक नया TKLBAM बैकअप बनाता है।
Alon ने अपना पहला क्लाउडटास्क टेस्ट चला लिया:
echo core | cloudtask --workers=88.1.2.3 refresh-iso-security-updates
एक बार जब वह पुष्टि करता है कि यह एकल परीक्षण नौकरी सही ढंग से काम करती है, तो वह बड़े बैच नौकरी के लिए तैयार है जो समानांतर में 10 सर्वरों पर चलेंगे।
चूंकि यह एक नियमित कार्य है, Alon नियमित रूप से दोहराने की उम्मीद करता है, वह $ HOME/cloudtasks में इसके लिए पूर्व-configured cloudtask टेम्पलेट बनाता है:
$ 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 मिनट बाद, Alon को क्लाउडटास्क से एक ई-मेल प्राप्त होता है जो नौकरी समाप्त हो गई है। शरीर में सत्र लॉग विवरण है यदि किसी भी नौकरी (जैसे गैर-zero निकास कोड) पर त्रुटियों का पता लगाया गया है, तो सत्र कितने समय तक चलने के लिए लिया गया था, आदि।
वह चाहता था कि, Alon कार्यकर्ता लॉग फ़ाइलों को पूंछकर वास्तविक समय में कार्य नौकरियों के निष्पादन का पालन कर सकता है:
tail -f ~/.cloudtask/11/workers/29721