嘟嘟社区

用Linode批量处理临时任务, 建立和销毁VPS脚本


因为客户非实时需求进行Transcoding服务
所以希望基于cloud,降低成本,  开机就用,用完就删

使用场景 , 跳过针对性的IP封锁, 执行一些分布式的临时任务
比如这个客户就是用于图像处理方面的, 需要使用Linode的GPU实例来做
用完就删,因为不是一直需要,比包月成本低很多

测了下整个逻辑 没什么问题 分享下

这个就是解决临时需要一些资源处理一些task的
利用linode 提供的 stackscript , vultr 的boot scripts (不太推荐,他们那个系统旧,会cloud-init升级很久10-20分钟浪费了)

写好Task脚本, 就是需要处理任务的逻辑
装个linode-cli  (测试逻辑用这个,可以基于SDK整合实现自动化)

# 建立VPS, 绑定stackscripts的ID

  1. # 生成20个VPS , 20是数量
  2. for line in `seq 1 20`; do
  3. ID=${line};
  4. linode-cli linodes create
  5. –root_pass [email protected]$#@!    #密码
  6. –region us-east   # 区域
  7. –image linode/centos8   # 系统
  8. –stackscript_id 933918   # StackScripts ID
  9. –swap_size 2048
  10. –label API_${ID}
  11. –tags cluster
  12. –group cluster
  13. –format ‘id’
  14. –text
  15. done

复制代码

生成完成 , 得到 20个VPS

等待任务完成后

因为我BASH测试的 所以都是手工脚本
然后生成Linode ID , 就是需要删除哪些VPS

  1. # 注意那个 +87 这个是不删除已有数量的Linode, 因为是1递增,如果你有10个VPS,这个数字就是11
  2. # Make IDS Files
  3. linode-cli linodes list –format ‘id’ –text > ids.txt
  4. FILE=ids.txt
  5. echo "$(tail -n +87 "$FILE")" > "$FILE.tmp"
  6. cat ids.txt.tmp

复制代码

然后执行删除

  1. # Delete
  2. while read line; do
  3. echo -e "Delete Linode ${line}";
  4. linode-cli linodes delete ${line};
  5. done <<<$(cat ids.txt.tmp)
  6. rm -rf ids.txt ids.txt.tmp

复制代码

这样所有VPS就都删了

差不多就是按这个逻辑来做自动化

Linode, Linode批处理, Linode任务
这都什么客户啊
技术贴顶一下