做前端也好几年了,项目的CI/CD一直用的都是公司现有的jenkins平台,再不就是基于jenkins进行了特殊定制化的平台,当然还有其他的一些CI/CD工具,比如gitlab,但是在我看来jenkins更纯粹,专注做CI/CD,而且更成熟,社区活跃且非常强大,目前已有超过1000个插件来支持构建、部署、自动化,另外更重要的是官网的标语深深吸引了我。所以打算在自己的服务器上玩玩,同时也会把相关的一些进度和结果分享到这里,希望未来可以在工作上用到。
ps:我的服务器:CentOs8 Linux
计划了几个想要达到的目标
Jenkins是用Java编写的免费开放源代码持续集成工具,所以我们首先需要安装java环境。
安装Java运行时环境(JRE)或者Java开发工具包(JDK)都可以,这里我安装的是java11,全程安装很快。
执行下面命令
# dnf install java-11-openjdk-devel
安装完后,验证Java 11是否安装成功。
#java --version
可以看到java已安装成功。
由于Jenkins在CentOS 8存储库中不可用,因此我们将手动将Jenkins存储库添加到系统中。
首先添加Jenkins Key
#rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
将Jenkins的存储库追加到CentOS 8
#cd /etc/yum.repos.d
#curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
截图略,基本没什么阻碍。
成功添加Jenkins存储库后,才能安装Jenkin
//执行以下命令
# dnf install jenkins
安装完成后,通过命令启动并验证Jenkins的状态
# systemctl start jenkins
# systemctl status jenkins
上面的输出显示Jenkins已启动并正在运行。
阿里云、腾讯云的云主机就不需要配置了,不过需要在安全策略里打开可访问的端口。
配置防火墙以允许访问Jenkins使用的端口8080。要打开防火墙上的端口,请运行如下命令。
# firewall-cmd --add-port=8080/tcp --permanent
# firewall-cmd --reload
到这一步我们基本上成功啦,不过后面还有一个大坑等着你。
完成初始配置后,就需要在浏览器上设置Jenkins啦。
访问地址如下
http://server-IP:8080
先来看下启动界面
当然这里需要密码才能解锁Jenkins,此密码位于文件/var/lib/jenkins/secrets/initialAdminPassword文件中。
通过cat命令打开即
# cat /var/lib/jenkins/secrets/initialAdminPassword
第二步,插件安装 "使用建议的插件安装"或"选择要安装的插件"
这一步我选择的是推荐安装。
接下来就进入了漫长的安装过程,让人着急。
到上一步,我这有点惨,很多插件安装失败,而且时间超级长,后来就直接关了,让他自己去安装了。
理论上,理想的话后续应该是这样的
然而,我并没有那么顺利,到了第二天,我再去看的时候,插件仍然是安装失败,重试了好多次还是失败,不过安装了一些基础插件后,已经能进入到jenkins后台了。
不过也给出了哪些插件安装失败(下图来源与网络,我的系统已配置完成,当时未留错误图,但是问题一致)
具体安装失败的原因已给出,就是缺少插件,需要补齐安装。
先尝试了在jenkins里搜索来安装,系统管理–>管理插件–>可选插件–>输入插件名–>勾选相应插件–>点击直接安装。但是没有搜索到。
后来只能尝试手动安装,将插件下载下来,然后上传到jenkins安装,这才搞定。
在哪里下载插件呢?
官方地址:http://updates.jenkins-ci.org/download/plugins/
下载下来的插件
然后通过上面的上传通道上传后,jenkins会自动给你安装。
插件安装成功后就可以开心的玩耍啦,不过整体配置时间有点长,本来我也不着急,我也急不来,平时工作太忙,插件安装的慢我都是第二天再看。
看下最终的操作大盘
然后给自己创建了个账号,再也不用一大坨密钥了。
一些可能用到的命令
jenkins启动
#service jenkins start
jenkins重启
#service jenkins restart
也可以通过url后门重启
http://xxx:8080?restart
jenkins停止
#service jenkins stop
整体下来没什么特别大的坑,还是比较顺畅,只是时间较长,不过好饭不怕晚,慢一点没关系。
不过官网上也有基于Docker安装的教程,有兴趣的可以试试。