shell脚本是Linux下的脚本语言,自动化部署工具一般包括核心模块、扩展模块、插件模块等组成,可以同时调用多台Linux服务的shell脚本执行同样操作,简单理解自动化部署工具是流程控制核心,shell脚本可用作执行操作模块。
在Linux运维中,需要部署大量的服务器,可以编写shell脚对服务器的初始部署进行流程化处理,而对于多台服务器同步部署使用shell脚本也可完成,但是对于流程的追溯就有些力竭,自动化部署工具可以通过ssh用户登陆或ssh免密连接多台Linux服务器,编译或者部署服务。
目前比较常用的工具jenkins,是基于JAVA开发的一个开源软件项目,同时也是一种继续集成工具,jenkins可以说是一个平台,在这个平台上有多个服务器节点,多个jobs工程完成构建任务。
基本工作流程如下:
对于开发人员只需要将代码提交到Git&SVN服务器,在后续代码编译、打包、上传、运行都可以通过调用shell脚本来完成。
1. 开发工程师将代码上传到git&svn服务器
2. 运维工程师使用jenkins创建jobs工作流,可以是一个job或者多个jobs,通过构建触发机制进行串联。
3. jenkins将git&svn上的代码下载到build服务器,进行编译打包。
4. 打包完毕将产出物创建docker容器镜像
5. 运行docker容器
在以上过程中jenkins控制多个节点服务器进行工作,而实际在操作的是shell脚本,这就理解了自动部署工具jenkins进行多节点流程控制,shell脚本进行模块操作。
以上回答希望能够帮助到你,欢迎大家评论留言。