.NET Core微服务之基于Jenkins+Docker实现持续部署(Part 1) 红太狼 2021-05-02 12:23 345阅读 0赞 # 一、CI, CD 与Jenkins # ![46653-20161230152143648-2113509642.png][] 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI) **=>** 持续集成指的是,**频繁地(一天多次)将代码集成到主干**。 它的好处主要有两个: * * **快速发现错误**。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 * **防止分支大幅偏离主干**。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。 持续集成的目的,就是**让产品可以快速迭代,同时还能保持高质量**。与持续集成相关的,还有持续交付和持续部署。 持续交付指的是:**频繁地将软件的新版本,交付给质量团队或者用户,以供评审**。如果评审通过,代码就进入生产阶段。它强调的是,**不管怎么更新,软件是随时随地可以交付的**。 ![CD][] 持续部署是持续交付的下一步,指的是**代码通过评审以后,自动部署到生产环境**。它强调的是**代码在任何时刻都是可部署的,可以进入生产阶段**。 ![CD][CD 1] > Martin Fowler 说:“持续集成并不能消除 Bug,而是让它们非常容易发现和改正。” ![381412-20180808233203683-1020834546.jpg][] Jenkins 是一款流行的开源持续集成(CI)与持续部署(CD)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。官方网站:http://jenkins-ci.org/ 使用Jenkins的目的在于: (1)持续、自动地构建/测试软件项目。 (2)监控软件开放流程,快速问题定位及处理,提升开发效率。 这里废话不多说了,更多内容,可以参考这一篇文章《[不甘寂寞的Jenkins:从持续集成到持续部署][Jenkins]》 # 二、Jenkins的基础安装 # ***PS:** 这里采用的是基于CentOS7.x的安装方式,非Docker安装。* ## 2.1 安装Java环境 ## 这里参考晓晨Master的《[CentOS7安装Java环境(JDK1.8)][CentOS7_Java_JDK1.8]》,不再赘述安装步骤,最终验证效果: ![381412-20180808235109410-570041600.png][] ***Tip:***里面需要注意的是为jdk创建软链接! ## 2.2 安装Git ## yum install git ## 2.3 安装Jenkins ## sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install jenkins 安装完成后提示信息: ![381412-20180811201712260-1771925479.png][] 默认安装后的端口绑定的是8080,如果你想更改请进入文件编辑JENKINS\_PORT属性项。 vim /etc/sysconfig/jenkins 如果你使用的是root用户(没有单独创建一个jenkins的用户),那么建议进入上面的配置文件编辑JENKINS\_USER属性项将jenkins改为root。 ![381412-20180811205843160-386941117.png][] ## 2.4 配置Jenkins ## (1)修改目录权限: chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins ***Tip:***在 Shell 中,可以使用chown命令来改变文件所有者。chown命令是change owner(改变拥有者)的缩写。-R代表进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组,常常用在更改某一目录的情况。 (2)重启Jenkins服务 service jenkins restart ps -ef | grep jenkins 提示信息如下图所示: ![381412-20180811203111546-1294008495.png][] ***PS:***启动Jenkins systemctl start jenkins 验证启动状态: systemctl status jenkins ![381412-20180811210151056-1582701958.png][] ## 2.5 初始化Jenkins ## (1)访问http://xxxx:8080/进行Jenkins的解锁 ![381412-20180811210025802-71037086.png][] 可以通过下面的命令查看管理员密码: cat /var/lib/jenkins/secrets/initialAdminPassword ![381412-20180811210534975-380920088.png][] 然后把这个密码复制到Web界面中的文本框中去进入下一步 (2)自定义Jenkins => 这里选择**安装推荐的插件** ![381412-20180811211001096-365052532.png][] 双击之后进入安装过程,耐心等待: ![381412-20180811211129360-2078977399.png][] (3)创建管理账户 => 也可以直接使用admin账户继续 ![381412-20180811211451922-1844826971.png][] (4)安装完成 ![381412-20180811211640373-171417062.png][] (5)Jenkins主界面 ![381412-20180811211918275-1344126078.png][] 至此,Jenkins的基本安装与配置就到此结束,下一篇我们会结合ASP.NET Core与Docker来一个持续部署的实例。 # 三、小结 # 本篇简单介绍了一下持续集成、持续交付与持续部署的基本概念,然后介绍了如何在CentOS7.x下安装Jenkins并初始化Jenkins。下一篇会会结合ASP.NET Core、GitHub与Docker来一个持续部署的实例。 [46653-20161230152143648-2113509642.png]: /images/20210501/b9af11f9dfcf4007bfa42450bc3f7aad.png [CD]: /images/20210501/d43dfcc6490c489195b93b61264a9911.png [CD 1]: https://images2015.cnblogs.com/blog/46653/201612/46653-20161230152211445-454212849.png [381412-20180808233203683-1020834546.jpg]: /images/20210501/51f8a4fbc030470eb419e797f9750bda.png [http_jenkins-ci.org]: http://jenkins-ci.org/ [381412-20180808235109410-570041600.png]: /images/20210501/44f4cd177c4f455c951f75a3261b0935.png [381412-20180811201712260-1771925479.png]: /images/20210501/8660158486b1434fa193e1ca929ba885.png [381412-20180811205843160-386941117.png]: /images/20210501/b81ea3c2e59c413d951b6f7515fc2170.png [381412-20180811203111546-1294008495.png]: /images/20210501/4acc8f8271bc466ab5373a9fba96cb49.png [381412-20180811210151056-1582701958.png]: /images/20210501/0edf499821084f2b8c11d947d71a5e5a.png [381412-20180811210025802-71037086.png]: /images/20210501/54502215d010471db3fb42111323a800.png [381412-20180811210534975-380920088.png]: /images/20210501/875cdd6af624423aa1fb4e864f035c98.png [381412-20180811211001096-365052532.png]: /images/20210501/645d99bfbd2147ff8f3d215592da895e.png [381412-20180811211129360-2078977399.png]: /images/20210501/8a04556eaec54c7896a22b6c284c2963.png [381412-20180811211451922-1844826971.png]: /images/20210501/43519decf719463e9f30bfa77520324a.png [381412-20180811211640373-171417062.png]: /images/20210501/b087e24d711b4dcaa7190aa788a70789.png [381412-20180811211918275-1344126078.png]: /images/20210501/ef205efbb8354f4cab98dfc469b4db7c.png
还没有评论,来说两句吧...