这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加新的主机名称的Job
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加新的主机名称的Job,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2496字,纯文字阅读大概需要4分钟。
内容图文
背景
实现定期批量登录远程虚拟机然后进行一些指定的操作,还支持用户添加新的 hostname。
需求分解
通过一个简单的 shell 脚本可实现定期进行 ssh 登录操作,但如何实现的更优雅一些就需要花点时间了,比如:
- 定期自动执行
- 输出比较直观的登录测试结果
- 支持用户添加新的 hostname 到待检查列表中
-
执行完成后,通知用户等等
希望在不引入其他 Web 页面的情况下通过现有的工具 Jenkins 使用 Shell 脚本如何实现呢? - 写一个脚本去循环一个 list 里所有的 hostname,经过考虑这个 list 最好是一个 file,这样方便后续处理。
- 这样当用户通过执行 Jenkins job 传入新的 hostname 时,使用新的 hostname 到 file 里进行 grep,查看是否已存在。
- 如果 grep 到,不添加;如果没有 grep 到,将这个 hostname 添加到 file 里。
- 将修改后的 file 添加到 git 仓库里,这样下次 Jenkins 的定时任务就会执行最近添加的 hostname 了。
实现重点
1.使用 expect。在使用 ssh 连接远程虚拟机的时候需要实现与远程连接时实现交互,例如:可以期待屏幕上的输出,然后进而进行相应的输入。在使用 expect 之前需要先安装,以 Redhat 的安装命令为例:sudo yum install expect 来进行安装。
有关 expect 使用的可以参看这个连接:http://xstarcd.github.io/wiki/shell/expect.html
2.使用了 Shell 数组。使用 Shell 读取文件数据,进行登录操作,将操作失败的记录到一个数组里,然后打印出来。
3.在通过 Jenkins 提交新的 hostname 到 Git 仓库时,origin 的 URL 需要是 https://${USERNAME}:${PASSWORD}@git.company.com/scm/vmm.git 或 git@company.com:scm/vmm.git(需要提前在执行机器上生成 id_rsa.pub 并配置)
代码已经上传 GitHub 请参看 https://github.com/shenxianpeng/vmm.git
最终效果
开始执行,提供输入新的 hostname
执行完成,将执行结果归档以便查看
打开归档结果如下
#####################################################
######### 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,以及一门擅长的编程语言之后再去学习那些工具,要不永远都是漂浮在空中。
内容总结
以上是互联网集市为您收集整理的这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加新的主机名称的Job全部内容,希望文章能够帮你解决这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加新的主机名称的Job所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。