Jenkins简介
在现今软件开发领域,持续集成和持续交付(CI/CD)早已成为了提升开发效率、保证软件质量以及加速软件交付的关键实践。而Jenkins作为最流行的开源CI/CD工具之一,饰演着至关重要的角色。Jenkins提供了丰富的功能和灵活的配置选项,促使开发团队能否轻松地建立、测试和布署她们的应用程序。
安装打算
一般alternatives linux,Jenkins一般作为独立应用程序在其自己的进程中运行。JenkinsWAR外置了Winstone(一个Jettyservlet容器包装器),而且可以在具有Jenkins支持的Java版本的任何操作系统上运行。
理论上,Jenkins也可以在传统的servlet容器如ApacheTomcat或WildFly中运行,但实际上在这种容器上并未进行充分的测试验证,但是有许多注意事项。
最低的硬件要求
RAM:256MB
储存:1GB的驱动空间(假如将Jenkins作为Docker容器运行建议起码10GB)
小团队的推荐硬件配置
RAM:4GB以上的RAM
储存:50GB以上的驱动空间
依赖要求
运行Jenkins须要以下Java版本:
支持的Java版本常年支持(LTS)发布每周发布
Java11、Java17或Java21
2.426.1(2023年11月)
2.419(2023年8月)
Java11或Java17
2.361.1(2022年9月)
2.357(2022年6月)
Java8、Java11或Java17
2.346.1(2022年6月)
2.340(2022年3月)
Java8或Java11
2.164.1(2019年3月)
2.164(2019年2月)
倘若您安装了不受支持的Java版本,Jenkins控制器将难以运行。
以下将以Docker形式、Linux服务、Windows上安装Jenkins安装包、macOS上等多操作系统多形式安装Jenkins的LTS(常年支持)版本
通过Docker的形式安装安装Jenkins
Docker可以快速安装Jenkins,在Windows、macOS上可以通过安装DockerDesktop的形式安装Docker。
安装好Docker后在macOS和Linux上
docker run -d
--name jenkins
-p 8010:8080 -p 50000:50000
-v jenkins_home:/var/jenkins_home
--restart=unless-stopped
jenkins/jenkins:lts-jdk17
参数含意:
-d:在后台运行容器
--namejenkins:指定容器的名子为jenkins
-p:将容器的8080端口绑定宿主机的8010端口
-v:将容器的/var/jenkins_home目录映射到Docker的jenkins_home卷
--restart=unless-stopped:指定容器在非人为停止的情况下发生异常退出时手动重启
jenkins/jenkins:lts-jdk17:使用的Jenkins镜像,这儿是Jenkins官方提供的LTS版本镜像alternatives linux,而且包含了JDK17。
倘若本地不包含jenkins/jenkins:lts-jdk17镜像则会先进行镜像拉取,拉取完成则会启动一个名为jenkins容器
配置Jenkins
使用上述Docker的形式下载镜像、安装并运行Jenkins后,我们还须要完成Jenkins设置向导后便可以使用Jenkins。
设置向导将引导完成插件列表、创建第一个管理员用户、设置Jenkins的代理地址等几个快速的“一次性”步骤来解锁Jenkins
当首次访问新安装的Jenkins实例时,系统会要求使用jenkins手动生成的密码进行解锁能够进行下一步操作,而通过Docker形式安装的Jenkins可通过dockerlogs命令来获取jenkins容器的日志因而获得密码
1、访问浏览器的:8010(安装Jenkins时为Jenkins配置的端口)并等待解锁Jenkins页面出现
(1)将上述ip换成你自己的ip
(2)将上述的端口调整为你自己设置的宿主机端口
2、获取初始化密码(此密码在设置完Jenkins用户后就没用了)从Jenkins控制台日志输出中(在2组星号之间)
执行dockerlogs
将其中jenkins替换为你自己起的容器名称或则通过dockerps获取容器的id
在Docker中运行Jenkins也可以通过如下命令将Jenkins的密码复印在控制台上而无需在容器中执行查看日志命令
sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
3、插件安装
插件安装可以选择使用安装推荐的插件或选择插件来安装两种形式,其中选择选择插件来安装中默认勾选了安装推荐插件中的插件,假如没有想要自己想要使用哪些插件可直接选择安装推荐的插件形式进行安装
选择完成后进行插件安装,此步骤可以看见安装的插件列表以及插件的安装进度(后期不须要的插件可以卸载)
4、创建第一个管理员帐号
在插件安装完成后就可以设置第一个管理员用户了,须要输入用户名、密码以及邮箱等信息
5、设置jenkinsURL地址
6、完成安装
Linux下安装Jenkins服务
在Linux下安装Jenkins服务须要依赖服务器上的Java环境,且目前最低Java版本为Java11,推荐使用Java17。好多男子伴可能害怕服务器上的应用程序使用的JDK8直接升级为JAVA17后会出现应用程序不兼容的问题,我们可以通过alternatives来解决
安装JDK17
比如我Linux服务器上的JDK的版本为1.8,此时我须要安装JDK17便于才能正常运行Jenkins的LTS版本
1、安装OpenJDK17
yum install fontconfig java-17-openjdk
2、如遇见CentOS源无openjdk17可以使用如下形式安装
yum -y install wget vim
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
sudo yum -y install ./jdk-17_linux-x64_bin.rpm
yum install fontconfig
3、切换JDK版本
假如本地早已安装了其它版本的JDK,可能在使用java-version输出java版本信息不会显示最新的JDK17
执行如下命令:
alternatives --config java
输入jdk的编号切换JDK
此时JDK就早已切换为了JDK17,在安装完成Jenkins后还可以通过alternatives将JDK切换为你的版本
4、其它方法
形式一:通过上传JDK17的压缩包,解压杂记录JDK17的路径(不须要配置环境变量);
形式二:通过yuminstalljava-11-openjdk后在/usr/lib/jvm下找到openJDK11的路径国内linux主机,通过更改jenkins.sevice中的JAVA_HOME来设置JDK的路径(下边会介绍),注意LTS版本最低须要JDK11
安装Jenkins
1、添加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-2023.key
2、安装Jenkins
yum install -y jenkins
3、Jenkins服务说明
从Jenkins2.335和Jenkins2.332.1开始,该包配置为使用systemd而不是较旧的Systeminit。也就是说LTS版本的Jenkins服务须要使用systemctl命令来进行管理
4、设置jenkins开启启动
systemctl enanle jenkins # 设置Jenkins服务开机启动,并创建jenkins.service
在创建的jekins.service文件中包含了jenkins的配置,并且默认安装的时侯并不会创建这个jenkins.service文件。
5、启动jenkins
systemctl start jenkins # 启动
systemctl status jenkins # 查看服务状态
systemctl stop jenkins # 停止
6、获取Jenkinsd的密码
cat /var/lib/jenkins/secrets/initialAdminPassword
7、配置jerkins
jenkins默认的端口为8080,通过浏览器访问后即可与第一部中配置Jenkins同理
调整Jenkins(可选)
1、使用JDK1.8启动Jenkins的LTS版本问题解决
journalctl -u jenkins # 查看jenkins 服务日志
java8启动异常信息如下
问题可能的诱因:假如先安装了Jenkins并执行了启动命令在去调整的操作系统中Java的环境变量会造成jenkins未能生效
解决办法:更改jenkins.service中的JAVA_HOME部份,降低/usr/lib/jvm/jdk-17-oracle-x64/bin/java(通过上述Java17安装的默认位置)配置
vi /usr/lib/systemd/system/jenkins.service
# 增加如下内容
Environment="/usr/lib/jvm/jdk-17-oracle-x64/bin/java"
更改后重载systemctl服务便于jenkins.service的更改生效
systemctl daemon-reload
2、调整Jenkins的启动端标语
jenkins的默认端标语为8080,假如默认的端标语与其它应用冲突也可能会造成Jenkins未能正常启动。更改jenkins.service文件中的JENKINS_PORT
systemctl daemon-reload
3、防火墙问题
通常Linux上就会启动firwalld防火墙服务,当我们正常启动了一个Jenkins服务后可能在浏览器中难以访问,极大的诱因可能是防火墙没有开放对应的端口
firewall-cmd --list-port # 查看当前防火墙域开发的端口
firewall-cmd --add-port=8030/tcp --permanent # 开放8030端口
firewall-cmd --reload # 重载防火墙以便上述端口开放生效
更多firewall-cmd命令可以参考:
离线安装Jenkins
离线安装Jenkins须要先下载jenkins的最新war包linux文本编辑器,并通过java-jar命令启动
1、下载Jenkins最新war包
2、启动Jenkins
java -jar jenkins.war
3、修改启动端口
java -jar jenkins.war --httpPort=9090
4、后台运行
nohup java -jar jenkins.war --httpPort=9090 > jenkins.log &