当需要删去singularity deploy重新部署的时候发现,新的deploy与之前的重名,这是一个很头疼的问题:
我目前的解法是进入zookeeper删掉singluarity之前的历史:
[user@stg3 bin]$ ./zkCli.sh -server 172.18.128.33:2181
[zk: 172.18.128.33:2181(CONNECTED) 1] ls /
[brokers, zookeeper, marathon, admin, mesos, kafka, test0825_1_dev, test0825_1, consumers, singularity, etl, config]
[zk: 172.18.128.33:2181(CONNECTED) 11] rmr /singularity
然后再去重启singularity
看着singlarity的api也不提供update deploy的功能,很无奈。。。
另外附上加singularity的python脚本:
# encoding=utf-8 import requests url = "http://172.18.128.33:7099/singularity/api/requests" url_deploy = "http://172.18.128.33:7099/singularity/api/deploys" offlinejob=("BEiirong","DEv_business","GAojiesi","HAngao","HAoqi","MAimaixiaojie","MAochao","MEibaolian","MEiyiju", "NIvea","PIerkadan","SHihuakou","SUlv","XIaowei","XUehuaxiu","YImini","ZUokayi","amii","xiaomibaopu") db_name=("beijirong","dev_business","gaojiesi","hangao","haoqi","maimaixiaojie","maochao","meibaolian","meiyiju", "nivea","pierkadan","shihuakou","sulv","xiaowei","xuehuaxiu","yimini","zuokayi","amii","xiaomibaopu") headers = { 'content-type': "application/json", 'cache-control': "no-cache", 'postman-token': "70508b27-4f15-ec4a-0e75-6c46fb2c37fc" } def add_deploy(job): i = 0 for temp in job: payload = "{\"requestType\": \"SCHEDULED\", \"owners\": [\"wang.yan\"], \"id\": \"offlinejob_%s_all\", \"scheduleTimeZone\": \"Asia/Shanghai\", \"schedule\": \"10 00 * * *\"}"%temp response = requests.request("POST", url, data=payload, headers=headers) print response.raise_for_status() payload = "{\"deploy\":{\"id\":\"model_%s_all\",\"executorType\":\"default\",\"env\":{\"HOST\":\"172.18.128.33\",\"JOB_TYPE\":\"campaign_meta,trans_meta,target_adzone_meta,target_adzone_report,target_meta,netflow\",\"DB_NAME\":\"%s\",\"START\":\"now\"},\"containerInfo\":{\"type\":\"docker\",\"docker\":{\"image\":\"172.18.128.34:8887/aibi/offlinejob:0.1.0-build003\",\"network\":\"BRIDGE\",\"forcePullImage\":true}},\"resources\":{\"cpus\":0.3,\"memoryMb\":1024,\"numPorts\":0},\"command\":\"/bin/bash docker/entrypoint.sh\",\"requestId\":\"offlinejob_%s_all\",\"shell\":true}}"%(temp,db_name[i],temp) response = requests.request("POST", url_deploy, data=payload, headers=headers) #print db_name[i] print response.raise_for_status() i+=1 if __name__ == '__main__': add_deploy(db_name)