背景
在老板的建议下,公司开始每周两次技术分享;可以是技术点,也可以是业务逻辑,或者从一个代码块的思考。大家表现不是很积极,老板点名要小唐去分享,小唐同学不得已,披挂上阵。
技术背景
自动化部署这东西要是放在我大学,给我配置好了,我都不用;我们做的那个项目就一个服务,打成war包,上传到服务器,删除原来的目录,覆盖之前的war包,tomcat自动解压,项目部署完成。如果旁边有个小学妹啥的,cd,ll,pwd命令,我能敲到天亮,莫的错,在下只为装B而生。但是进入公司后,一个项目下数十个模块,然后你打开模块,TM下面还有分支,经过好几层,你才看到了久违的服务,这要是一个个的手动上传jar,那就真要到天亮了。所以自动化部署来了,只需要点一下,打包,上传,启动服务,一气呵成;妈妈再也不担心我熬夜部署了~~
开始吧
声明:以下部分资料主要来源是,小唐同学;如有纰漏,请锤他,与本人无关~~
为什么要用pipeline
公司一直使用的jenkins提供的freestyle(和凡凡的重名了),freestyle可以理解为jenkins提供的可视化的模板,可视化和模板这两个词意味着不够自由。pipeline就自由了,因为他是脚本形式存在。
特征:
- 可持续,将每个服务的pipeline放在自己的模块下,就算是更换环境,也能够实现即插即用;不必像freestyle一样,需要复制配置。
- 停顿,在点击构建后,可以实现认证,确认等操作。比如部署时,需要再次确认,保证不会出现误操作情况。
- 可扩展,支持与其他插件进行集成
示例
//代表整条流水线
pipeline{
//可选,执行位置
agent any
//stages流水线的多个阶段,至少包含一个stage
stages{
//流水线具体的一个阶段,需要定义一个名字
stage("stage"){
//一个或多个步骤
steps{
echo 'hello'
}
}
}
}