全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 924|回复: 2

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

[复制链接]
发表于 2021-11-30 17:28:35 | 显示全部楼层 |阅读模式
因为客户非实时需求进行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 Pass@word$#@! \   #密码
  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就都删了

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

发表于 2021-11-30 17:29:48 | 显示全部楼层
这都什么客户啊
发表于 2021-11-30 17:32:02 | 显示全部楼层
技术贴顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-27 13:49 , Processed in 0.163998 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表