实现定期批量登录远程虚拟机然后进行一些指定的操作,还支持用户添加新的 hostname。
通过一个简单的 shell 脚本可实现定期进行 ssh 登录操作,但如何实现的更优雅一些就需要花点时间了,比如:
希望在不引入其他 Web 页面的情况下通过现有的工具 Jenkins 使用 Shell 脚本如何实现呢?
expect
。在使用 ssh 连接远程虚拟机的时候需要实现与远程连接时实现交互,例如:可以期待屏幕上的输出,然后进而进行相应的输入。在使用 expect
之前需要先安装,以 Redhat 的安装命令为例:sudo yum install expect
来进行安装。
有关 expect
使用的可以参看这个连接:http://xstarcd.github.io/wiki/shell/expect.html代码已经上传 GitHub 请参看 https://github.com/shenxianpeng/vmm.git
#####################################################
######### VM login check via SSH results ############
#####################################################
# #
# Compelted (success) 14/16 (total) login vm check. #
# #
# Below 2 host(s) login faied, need to check. #
# #
abc.company.com
xyz.company.com
# #
#####################################################
现在技术的更新非常快,尤其作为 DevOps 工程师,各种工具层出不穷,想要每一样工具都掌握几乎是不可能的。
只学习工具不了解其背后的原理,等到新工具出现替换掉旧的工具,那么这些年是没有进步的。
只有认真的把在工作中遇到的每个问题背后来龙去脉去搞懂,才能把地基打的稳,以后不论工具怎么变,学习起来都会很快。
掌握操作系统,Shell,以及一门擅长的编程语言之后再去学习那些工具,要不永远都是漂浮在空中。