最近,我自己要亲手搭建一套完整的企业级 CI/CD 环境,这个环节里面涉及了很多内容,没有办法把这么多的内容都放在一篇文章里,所以 Jenkins 的安装和Java 的 JDK 安装我就是分了两篇文章来写的。而且这套环境中也包含 Docker 容器,涉及的东西不少,有些东西,自己也是第一次遇到,所以就会遇到很多坑。说起来,安装Jenkins服务器环境,我也是大费周章。本来开始打算通过 Docker 安装的,但是我在拉取 Jenkins 镜像的时候,总是太慢,半天的时间都拉取不下来,可能有人会说,你换成国内的镜像啊,我换了,刚开始很快,越到后面越慢,我也做了很多尝试,但是,都没解决,只能使用 Yum 安装了。
一、Jenkins 简介
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins 功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
二、Jenkins 安装
废话不多说,现在我们就开始安装 Jenkins 服务器的环境。
1、检查环境是否安装了 Java 的 JDK,因为 Jenkins 是用Java 语言写的,要想安装 Jenkins 之前,必须安装 JDK。
命令:# java -version
上图说明 Jenkins 的运行环境已经安装成功。
2、yum 安装 Jenkins。
这里推荐使用yum方式安装Jenkins,最简单方便。yum的repos中默认是没有Jenkins的,需要先将Jenkins存储库添加到yum repos。
(1)、在执行wget命令之前,必须确保该命令已经安装,如果没有安装,请安装。
命令:# yum install -y wget
(2)、执行 :# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
(3)、执行:# rpm –import https://pkg.jenkins.io/redhat/jenkins.io.key
(4)、安装 Jenkins。
命令:# yum install jenkins
随后就可以看到系统开始自动下载安装。出现提示是否下载的时候输入y并按回车。耐心等待安装完成。
(5)、修改配置。
现在Jenkins已经安装好了,不过启动之前最好稍微修改一下配置。默认情况是Jenkins是使用Jenkins用户启动的,但这个用户目前系统并没有赋予权限,这里我们将启动用户修改为root;另外Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,我们也修改一下默认端口。Jenkins 配置文件的目录:/etc/sysconfig/jenkins
。
命令:vi/vim /etc/sysconfig/jenkins
在执行 vim 命令的时候,先要确认该命令是否安装,如果没有安装,那就安装吧。
命令:# yum install -y vim
中间省略了很多步骤输出。
开始修改 Jenkins 的配置文件:# vim jenkins
【1】、修改 Jenkins 用户名,改为:“root”。
【2】、修改 Jenkins 的默认端口号:8080,我修改为:8084。
【3】、修改完毕,保存退出。
命令:# wq
修改完配置后,保存退出。好了,现在配置文件也修改好了,可以启动Jenkins了。
(6)、启动 Jenkins 服务。
命令:# service jenkins start
出现OK表示Jenkins启动成功。
(7)、在浏览器输入ip:8084进入Jenkins登录页面。
我的IP地址是:192.168.127.146,Jenkins 网页地址:http://192.168.127.146:8084。
这就是我们看到的正常页面。
如果通过地址访问出现超时的情况,而且,Windows 可以 ping 通虚拟机的服务器,虚拟机服务器也 Ping 通 Windows 服务器,这种情况多是 Linux 服务器防火墙的问题。
由于linux开启了防火墙,导致windows无法访问linux服务器程序。
有两种解决办法:
第一:执行以下命令就可以,重启也是有效的。
命令:#firewall-cmd –zone=public –add-port=8084/tcp –permanent
#firewall-cmd –reload
第二:执行以下命令也可以解决,但是,重启后无效,需要再次输入该命令。
命令:# iptables -P INPUT ACCEPT(设置默认允许规则)
# iptables -F
(这两条命令顺序不能错。可以通过/sbin/iptables -F 清除所有规则来暂时停止防火墙: (警告:这只适合在没有配置防火墙的环境中,如果已经配置过默认规则为deny的环境,此步骤将使系统的所有网络访问中断),如果想清空的话,先执行 /sbin/iptables -P INPUT ACCEPT;然后执行 /sbin/iptables -F;这样就可以安全使用了,但是,重启就不起作用。)
第三:也可以执行一下命令。
命令:#iptables -A OUTPUT -p tcp –sport 8084 -j ACCEPT
(8)、查看密码:/var/lib/jenkins/secrets/initialAdminPassword
命令:# cat /var/lib/jenkins/secrets/initialAdminPassword
(9)、Jenkins首次登录,解锁Jenkins。
进入登录页面后,Jenkins提示我们需要输入超级管理员密码进行解锁。根据提示,我们可以在/var/lib/jenkins/secrets/initialAdminPassword文件里找到密码。找到密码后,复制密码,粘贴到Jenkins解锁页面,点击Continue继续初始化配置。
(10)、Jenkins 安装插件。
这里我们点击的Install suggested plugins,安装默认插件,当然你也可以点击另一个按钮安装指定的插件。点击后,页面进入了插件下载安装页面。
插件安装页面。
(11)、管理员账户注册页面。
耐心等待,全部插件安装完成。安装完成后,页面自动进入了管理员账户注册页面。
(12)、实例配置。
我选择保持默认,直接点击【保存并完成】。
(13)、Jenkins 安装完成。
(14)、我们开始使用 Jenkins。
三、Jenkins 服务常用操作。
(1)、Jenkins 的默认设置
Jenkins 会随系统启动而启动。详情参照/etc/init.d/jenkins
Jenkins 会创建一个用户叫做jenkins, 如果你修改了user,则要修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
如果遇到问题,查看日志/var/log/jenkins/jenkins.log
配置文件/etc/sysconfig/jenkins
默认启用8080
(2)、Jenkins 常用命令。
启动:service jenkins start
重启:service jenkins restart
停止:service jenkins stop
此外,还有直接使用url的方式,不过当然不包括启动(此时服务还未启动),只需要在访问 jenkins 服务器的网址url地址就可以了。 此处假定 jenkins部署在本机,端口为 8080
浏览器进入Jenkins,登录地址:http://127.0.0.1:8080/
关闭Jenkins 服务:http://127.0.0.1:8080/exit
重启Jenkies 服务:http://127.0.0.1:8080/restart
重新加载配置信息:http://127.0.0.1:8080/reload
(3)、查看密码:/var/lib/jenkins/secrets/initialAdminPassword
密码:cat /var/lib/jenkins/secrets/initialAdminPassword
(4)、检查 Jenkins 是否启动
netstat -aptn 命令行,查看所有开启的端口号。
(5)、卸载 Jenkins 服务。
【1】、rpm 卸载
命令:#rpm -e jenkins
【2】、检查是否卸载成功
命令:#rpm -ql jenkins
【3】、彻底删除残留文件:
命令:# find / -iname jenkins | xargs -n 1000 rm -rf
(6)、加速Jenkins的拉取。
命令:#docker pull jenkins
最开始是使用上面的命令进行拉取,此jenkins是旧版本,不建议使用。可以使用如下命令拉取新版本。
命令:#docker pull jenkins/jenkins
如果拉取速度还是缓慢,设置 docker 加速镜像,并重启。
命令:#vi /etc/docker/daemon.json,增加内容:{“registry-mirrors”: [“http://hub-mirror.c.163.com”]}
命令:#service docker restart
命令:#systemctl restart docker.service
对应启动容器如下。
命令:#docker run -d -p 9090:8080 –name jenkins -p 50000:50000 -v /hzero/data-server/jenkins:/home/jenkins_home –privileged=true jenkins/jenkins
四、总结
好了,今天就写到这里了。今天虽然很郁闷,因为了经历了很多坑,本来2个小时可以完成的工作,一下子搞了4个多小时,不管怎么说,最后还是把所有问题都解决了,值得庆贺。不忘初心,每天进步一点点。Jenkins 服务器安装成功了,下面该做其他工作了。安装 Jenkins 只是为了搭建企业级 CI/CD环境的基础。我们已经完成了第一步,继续吧。