批量执行脚本


通过FIT2CLOUD,您可以在Web页面上选定虚拟机去执行指定的脚本,并查看脚本输出结果。在运维工作中会有很多使用场景,比如打补丁,查找错误,查看虚拟机上进程,备份,安装运行时库包, 执行某操作等等。

支持的脚本类型: 不限,只要虚拟机上操作系统支持即可,即有脚本执行需要的解释器。

注1: 最常用的的是Shell脚本和Python脚本,只要虚拟机上安装有相应的脚本解释器,并且在脚本的第一行声明解释器,那么FIT2CLOUD就可以在虚拟机上执行脚本。

注2: 阿里云官方提供的Linux虚拟机镜像都默认安装有python,但是Ruby不一定有。如果您打算使用puppet或chef,需要先在虚拟机中安装Ruby或者指定用已经有Ruby的虚拟机镜像启动虚拟机。

注3:本文中使用的集群和虚机组仅为示例,使用时请用户结合自己实际情况。

一、在集群中所有虚拟机上执行脚本

1. 在页面最上方点击 “脚本",然后在下拉菜单中选择 “执行脚本” 进入执行脚本页面;

alt

2. 在执行脚本页面
  • 选择目标集群 "agent-test"。
  • 在脚本内容编辑器中编辑填写脚本内容 (或者 点击"从脚本列表中选择"的下拉列表,从中选择一个脚本)。
  • 点击 "执行” 之后会出现脚本输出显示页面。

alt

  • 在脚本输出显示页面,查看脚本在各个虚拟机上的输出。

alt

注1: 脚本第一行要声明脚本解释器,默认的是Shell脚本,如果是python脚本,第一行声明为`#!/usr/bin/python

#!/usr/bin/python
import sys

print "helloworld"
print sys.path

二、在集群中某虚机组内所有虚拟机上执行脚本

1. 在页面最上方点击 “脚本",然后在下拉菜单中选择 “执行脚本” 进入执行脚本页面;

alt

2. 在执行脚本页面
  • 选择目标集群 "agent-test”
  • 选择目标虚机组 “qingcloud”
  • 在脚本内容编辑器中编辑填写脚本内容 (或者 点击"从脚本列表中选择"的下拉列表,从中选择一个脚本)
  • 点击 “执行”, 之后会出现脚本输出显示页面

alt

  • 在脚本输出显示页面,查看脚本在各个虚拟机上的输出。

alt

三、在集群中某虚机组内某个虚拟机上执行脚本

1. 在页面最上方点击 “脚本",然后在下拉菜单中选择 “执行脚本” 进入执行脚本页面;

alt

2. 在执行脚本页面
  • 选择目标集群 "agent-test”
  • 选择目标虚机组 “qingcloud”
  • 选择目标虚拟机
  • 在脚本内容编辑器中编辑填写脚本内容 (或者 点击"从脚本列表中选择"的下拉列表,从中选择一个脚本)
  • 点击 “执行”, 之后会出现脚本输出显示页面
  • 在脚本输出显示页面,查看脚本在虚拟机上的输出。

四、执行脚本超时处理

FIT2CLOUD默认执行脚本的超时时间是20分钟,您在编写脚本时,如果某些操作正常执行很费时,超出默认的20分钟,为防止FIT2CLOUD到默认超时时杀掉脚本进程,导致脚本不能正常执行完毕,请在脚本中将费时的操作 放到后台执行。

对于一些执行过程可能会超时的操作,您可以使用fit2cloud提供的超时命令来执行, 防止将脚本执行僵死,无法执行导致僵死的操作之后的命令。

比如df -k操作,如果某台虚拟机上挂载某NFS的共享目录,如果NFS挂了,但是目录没有正常的mount,那么df -k就会永远卡住,脚本后面的操作都无法执行,对于这种情况,您可以使用f2ctimeout来处理, 设定执行超时时间为3秒:

f2ctimeout -t 3 df -k