因为客户非实时需求进行Transcoding服务 所以希望基于cloud,降低成本, 开机就用,用完就删
使用场景 , 跳过针对性的IP封锁, 执行一些分布式的临时任务 比如这个客户就是用于图像处理方面的, 需要使用Linode的GPU实例来做 用完就删,因为不是一直需要,比包月成本低很多
测了下整个逻辑 没什么问题 分享下
这个就是解决临时需要一些资源处理一些task的 利用linode 提供的 stackscript , vultr 的boot scripts (不太推荐,他们那个系统旧,会cloud-init升级很久10-20分钟浪费了)
写好Task脚本, 就是需要处理任务的逻辑 装个linode-cli (测试逻辑用这个,可以基于SDK整合实现自动化)
# 建立VPS, 绑定stackscripts的ID
-
- # 生成20个VPS , 20是数量
-
- for line in `seq 1 20`; do
- ID=${line};
- linode-cli linodes create
- –root_pass [email protected]$#@! #密码
- –region us-east # 区域
- –image linode/centos8 # 系统
- –stackscript_id 933918 # StackScripts ID
- –swap_size 2048
- –label API_${ID}
- –tags cluster
- –group cluster
- –format ‘id’
- –text
- done
-
复制代码
生成完成 , 得到 20个VPS
等待任务完成后
因为我BASH测试的 所以都是手工脚本 然后生成Linode ID , 就是需要删除哪些VPS
-
-
- # 注意那个 +87 这个是不删除已有数量的Linode, 因为是1递增,如果你有10个VPS,这个数字就是11
- # Make IDS Files
- linode-cli linodes list –format ‘id’ –text > ids.txt
- FILE=ids.txt
- echo "$(tail -n +87 "$FILE")" > "$FILE.tmp"
- cat ids.txt.tmp
-
复制代码
然后执行删除
-
- # Delete
- while read line; do
- echo -e "Delete Linode ${line}";
- linode-cli linodes delete ${line};
- done <<<$(cat ids.txt.tmp)
- rm -rf ids.txt ids.txt.tmp
复制代码
这样所有VPS就都删了
差不多就是按这个逻辑来做自动化
|