Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
开始地址:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/
首先需要了解下,Jenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)
Jenkins也可以运行在不同的Java servlet容器((如Apache Tomcat 或 GlassFish))中作为servlet运行
那么就是Jenkins可独立部署(内置了Jetty),也可以通过放入Tomcat中进行部署。
安装的方式:
本篇文章给介绍下yum和rpm和docker方式。
在安装前需要注意,你的计算机是否有相关的依赖环境,需要用到:JDK/JRE
此方式是最新版,如果要下载指定版本,此段内容可跳过
yum的repos中默认是没有Jenkins的,需要先将Jenkins存储库添加到yum repos,然后通过yum进行安装
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
需要注意:如果出现了证书过期
可以使用
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
或者安装ca-certificates后,再重试最上面的命令
yum install -y ca-certificates
启动systemctl status jenkins
,发现报错
没有详细的报错信息,网上查阅资料,/etc/init.d下的jenkins文件
中增加现有jdk的路径
增加完毕后,执行systemctl daemon-reload
,然后再次systemctl start jenkins
,发现还是不行
直接到/etc/init.d/
下面,执行./jenkins start
,然后出现详细报错
噢噢,原来是java的版本和jenkins不兼容,执行安装下java11
yum install fontconfig java-11-openjdk
如果要卸载jenkins,通过yum remove jenkins命令后,还需要将这些目录及文件全部删除,达到完全卸载
Jenkins安装目录:
/var/lib/jenkins/
Jenkins配置文件地址:
/etc/sysconfig/jenkins
用vim 编辑/etc/sysconfig/jenkins文件(默认用户是jenkins 用户,建议改成root用户,不然用jenkins执行脚本的时候会有权限问题),也可以将jenkins的端口在此文件中进行修改.
跑起来jenkins吧,systemctl start jenkins
,注意下,如果初次使用systemctl启动jenkins时命令行卡住,那么你可以重新打开一个shell命令行窗口即可。
访问下试试, http://ip:8080/
访问下jenkins看看,然后开始解锁
可以去上面的/root/.jenins/secrets/initialAdminPassword
里面找
解锁后,它会让我们选择使用推荐的插件,还是自定义的
一般情况选择推荐的即可。
通常我们想要使用java8方式,而不是使用java11,那么就需要下载一个兼容java8的jenkins的版本。
使用jenkins-2.328-1.1.noarch.rpm
可以去清华大学开源软件镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
将下载好的rpm包上传到linux,进入到刚才上传的rpm包所在的目录,执行安装命令:
rpm -ivh jenkins-2.328-1.1.noarch.rpm
错误:依赖检测失败:
如果报错:daemonize 被 jenkins-2.328-1.1.noarch 需要
安装下再重新尝试安装jenkins即可
# 安装 epel-release
yum -y install epel-release
# 安装 daemonize
yum -y install daemonize
安装完毕后,像上文中改一下jenkins的配置文件(/etc/sysconfig/jenkins
),然后启动即可。
执行后报错,再去/etc/init.d/
中执行./jenkins start
,发现报错:Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录
我们可以给/usr/bin/java
设置个软连接,或者直接去/etc/init.d下的jenkins文件
中增加现有jdk的路径都可以,我这里就增加个路径吧
/etc/init.d下的jenkins文件
增加完毕后,执行systemctl daemon-reload
,然后再次systemctl start jenkins
如果还是不行,但是再次通过./jenkins start
能启动成功,那么你就重新打开一个shell窗口再次启动即可。
# rpm卸载
rpm -e jenkins
# 检查是否卸载成功
rpm -ql jenkins
# 彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf
需要先安装好Docker,可以看这篇文章Docker下载安装
mkdir -p /opt/jenkens
chmod 777 /opt/jenkens
-d 后台运行镜像
-p 8080:8080 将镜像的8080端口映射到服务器的8080端口。
-p 500001:50000 将镜像的50000端口映射到服务器的500001端口
-v /opt/jenkens:var/jenkins_home,其中 /var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。这里我们设置的就是上面我们创建的 /opt/jenkens目录
–name jenkins 给容器起一个别名
docker run -u root \
-d \
-p 8080:8080 \ # 访问端口
-p 50000:50000 \
-v /opt/jenkins:/var/jenkins_home \ # 挂载jenkins工作目录
-v /var/run/docker.sock:/var/run/docker.sock \ # docker网络
-v /root/app/maven/maven3.8:/usr/local/maven \ # 挂载maven安装目录,当需要部署maven项目时需要设置
-v /etc/localtime:/etc/localtime:ro \ # 同步时间
--name jenkins \ # 别名
jenkinsci/blueocean # 镜像
以上作为参考,提供一个可以拷贝的
docker run -u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /opt/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/app/maven/maven3.8:/usr/local/maven \
-v /etc/localtime:/etc/localtime:ro \
--name jenkins \
jenkinsci/blueocean
创建容器并且启动成功后,到宿主机/opt/jenkins
中去查找解锁的密码即可。
选择安装推荐插件,安装完毕后,创建个用户即可使用了。
Dcoker方式如果要卸载,直接将挂载的所有目录删除,然后将容器删了就行了。