当前环境
- CentOS 7.8
- Java 11(注意当前jenkins支持的Java版本最低为Java11)
- FinalShell 3.9(操作环境)
安装Jenkins
PS:不建议使用Docker安装Jenkins,因为使用Jenkins的时候一般会调用外部程序,比如Maven、Docker、JDK、Nodejs等,所以我们最好直接安装在本机上,以避免不必要的麻烦。
1. 添加Jenkins源
执行下面两条命令:
1. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
2. sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
2. 通过yum安装Jenkins
- yum -y install jenkins
3. 修改Jenkins端口号
- Jenkins默认端口号为8080,输入
vim /etc/sysconfig/jenkins
进行编辑,将JENKINS_PORT修改为自己想要的端口号,前提得保证修改后的这个端口没有被其他的进程占用。 - 这里修改了可能还不能生效,还需要修改另一个地方,输入以下指令进行编辑
vim /usr/lib/systemd/system/jenkins.service
# 找到下面的文字
Environment="JENKINS_PORT=8080" # 修改为自己想要的端口号
# :wq退出
- 修改完成后,重新加载配置文件,随后再重启Jenkins,此时的启动端口应该已经变成你修改的端口号了。
# 重新加载配置文件
systemctl daemon-reload
# 重启jenkins
systemctl restart jenkins
启动Jenkins
Jenkins可以单独指定Java路径,在/etc/init.d/jenkins
文件内大概一百行左右的位置,在最上面加上你的java路径即可:PS:当前Jenkins支持的最低Java版本为11,如果机器上只有Java8的朋友需要先安装Java11或以上版本。Linux下多版本Java建议通过系统自带的
alternatives来管理,参考这篇文章外加自己琢磨搞定:
linux alternatives命令详解 - lpfuture
- 输入
service jenkins start
,会弹出提示:Starting jenkins (via systemctl):,意思是正在启动,第一次启动比较耗时,此时耐心等待。如果提示超时失败,没关系,jenkins仍然在启动,只是第一次启动比较耗时。
如果提示内容不是超时失败,那大概率是你的Java没安装好或者版本不对。 - 放行刚刚配置的端口
# 放行15369端口
firewall-cmd --zone=public --add-port=15369/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
# 查看是否已经开启
firewall-cmd --list-ports
如果你是在阿里云腾讯云等类似服务器上的话,那你还需要去控制台防火墙或者安全组开放这个端口,像这样:
开放端口时记得设置授权ip,建议你直接给自家ip地址授权全部端口号。
- 在浏览器输入ip+port,可以进入到Jenkins的初始化界面,第一次启动要等的比较久:
进入这个界面,说明你的Jenkins已经在启动中了。
初始化配置Jenkins
- 系统启动完毕后,系统会提示你查看并输入管理员密码,根据中显示的密码位置,打开该文件并将密码复制粘贴即可:
# 在服务器查看密码文件
cat /var/lib/jenkins/secrets/initialAdminPassword
- 密码输入成功后,进入插件安装界面,如果你是新手,直接使用推荐安装的插件即可:
- 系统开始安装插件,需要等待系统安装完毕,这一步可能要比较久,耐心等待:
安装过程中可能会出现部分插件安装失败的情况,没关系,全部处理完毕后可以选择重试。
- 安装完毕后,系统会提示你创建第一个管理员账户:
- 配置Jenkins访问地址,便于一些插件使用,一般会有默认值:
- 配置完成,点击开始使用Jenkins:
随后就进入到Jenkins的管理界面了,不同版本的Jenkins界面可能会不一样:
至此,Jenkins安装完毕。
扩展
如果你是使用Jenkins来对Java服务做持续集成的话,那么你还需要安装下面的插件:
- Maven Integration: Maven 集成管理插件。
- Docker plugin: Docker集成插件。
- Publish Over SSH:远程文件发布插件。
- SSH: 远程脚本执行插件。