Jenkins是一款用Java语言开发的开源的自动化服务器。我们通过界面或者Jenkinsfile告诉它执行什么任务何时执行。
理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付。
使用Jenkins能够提升软件工程生产力的根本原因在于它提供的是一个自动化平台,一个团队引入了Jenkins就像是原来手工作坊式的工厂引入了生产流水线。
地址
wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum makecache
yum -y install jenkins
注:使用yum安装时,出现如下的报错,则是缺少依赖
[root@myos ~]# yum -y install jenkins
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package jenkins.noarch 0:2.303.1-1.1 will be installed
--> Processing Dependency: daemonize for package: jenkins-2.303.1-1.1.noarch
--> Finished Dependency Resolution
Error: Package: jenkins-2.303.1-1.1.noarch (jenkins)
Requires: daemonize
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
可以安装使用
yum -y install epel-release
后,重新安装jenkins
缺少依赖包daemonize-1.7.7-1.el7.x86_64
jenkins2.309离线安装包
链接:https://pan.baidu.com/s/1cuYyKrMsCLBApMEuJy3Jtw
提取码:r8cl
tar-xvf jenkins.tar.gz
yum -y install jenkins/*.rpm
vim /etc/sysconfig/jenkins
JENKINS_USER="root"
安装完成后,可以直接通过脚本启动:
/etc/rc.d/init.d/jenkins start
也可以自己编辑service文件,通过system进行管理
建议使用root用户启动,可以通过修改以上的配置进行设置
vim /usr/lib/systemd/system/jenkins.service
[Unit]
Description=jenkins
After=network.target
[Service]
Type=forking
#PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/etc/rc.d/init.d/jenkins start
ExecReload=/etc/rc.d/init.d/jenkins restart
ExecStop=/etc/rc.d/init.d/jenkins stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
因为jenkins的版本2.309,建议安装Java11
yum -y install java-11-openjdk-devel
离线安装包
链接:https://pan.baidu.com/s/1Bj7SqyeJapOJwKcmZNKeSg
提取码:i9dt
#下载完成的安装包,上传到服务器上
rpm -ivh jdk-8u212-linux-x64.rpm
#对应的安装路径
/usr/java/jdk1.8.0_212-amd64
#对应的环境变量在下文,根据实际情况选择
离线安装包
链接:https://pan.baidu.com/s/12rFPqKgTpbGEb3ZgspoCEw
提取码:7i2l
下载地址
根据实际情况,选择合适的版本
mkdir /usr/local/maven/
#tar -xvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/maven/
#下面的为jdk1.8版本的环境变量,存放到/etc/profile
#source /etc/profile 添加完成后,执行当前命令
export JAVA_HOME=/usr/java/jdk1.8.0_212-amd64
export JAVA_BIN=/usr/java/jdk1.8.0_212-amd64/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=${MAVEN_HOME}/bin:${PATH}
安装完成后,设置环境变量,检查版本
mvn -version
java -version
注意:安装openjdk的不需要手动设置环境变量
jdk1.8设置完环境变量后
在/etc/init.d/jenkins 文件中添加jdk1.8版本的绝对路径
或者设置软连接
ln -s /usr/bin/java /usr/java/jdk1.8.0_212-amd64/bin/java
systemctl enable jenkins
systemctl start jenkins
浏览器访问ip:8080
到安装Jenkins的服务器
cat /var/lib/jenkins/secrets/initialAdminPassword
联网状态下,下载插件速度较慢,已经把新手入门的插件下载下来
链接:https://pan.baidu.com/s/1n-GmBMexcWGc3ObOSstgZg
提取码:bqli
#jenkins服务启动后,通过查看启动状态
ps -ef | grep jenkins 或者systemctl status jenkins
#进入Jenkins默认路径中,根据个人情况填写
cd /var/lib/jenkins/plugins/
#网盘中下载的zip包,在windows中解压,把解压的目录里的文件全部拷贝到/var/lib/jenkins/plugins/
如下图
#重启jenkins服务
systemctl restart jenkins
#重启成功,浏览器访问,选择新手入门,进度条加载的速度飙升!!!
注意:网盘中的插件对应Jenkins的版本时2.303.1
本人没有测试该插件是否兼容其他的Jenkins的版本!!!
推荐新手入门安装方式(联网状态)
推荐新手入门安装方式(联网状态)
注:联网状态
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
发现有的依赖包安装失败,可以更新站点后重新安装,离线状态下需要手动去下载所需要的插件
#docker pull jenkins/jenkins
mkdir /opt/jenkins
chmod -R 777 /opt/jenkins
docker run -d -p 8080:8080 -p 50000:50000 -v /opt/jenkins/:/var/jenkins_home \
jenkins/jenkins:latest
问题描述:docker搭建的jenkins,jenkins执行shell的时候没有创建权限 …
解决方法:停掉当前jenkins容器,然后重新启动容器,启动参数 -u root
以root用户的形式启动,这样启动之后执行shell就是root用户执行了
docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins -u root --privileged=true \
-v /opt/jenkins/:/var/jenkins_home jenkins/jenkins:latest
docker run --name jenkins -p 8080:8080 -p 50000:50000 --restart=always -u root\
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7\
-v /var/lib/docker/tmp:/var/lib/docker/tmp \
-v /opt/jenkins/:/var/jenkins_home -d jenkins/jenkins:latest
不建议使用docker安装Jenkins,这个会增加文件之间传输的困难,特殊情况除外
详见: https://blog.csdn.net/weixin_44864748/article/details/107768065
首先下载jenkins.war 下载
下载地址
nohup java -jar jenkins.war --httpsPort=9999 --httpPort=-1 >> logs/jenkins.log 2>&1 &
nohup /var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log \
--webroot=/var/cache/jenkins/war \
--httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 2>&1 &
java环境需要准备好,确认端口没有冲突,根据实际情况
针对linux命令的后台运行: & 和 nohup
& 对ctrl+c(SIGINT免疫),对关闭shell终端(SIGHUP不免疫)
nohup 对ctrl+c(SIGINT不免疫),对关闭终端(SIGHUP免疫)
在迁移原来的Jenkins的时候需要备份的文件路径为:/var/lib/jenkins
首先将原来的jenkins文件夹进行备份
You can copy or move build jobs between instances of projects simply enough by copying or moving thebuild job directories to the new Jenkins instance.
您只需复制或移动项目实例,就可以在项目实例之间复制或移动生成作业
为新Jenkins实例构建作业目录
1、停止新服务器上安装的Jenkins服务,将备份的jenkins文件夹复制到新服务中的/var/lib路径下,保险起见先备份
2、将复制过来的jenkins为放置到/var/lib/jenkins
3、重启Jenkins服务
备注:注意两台服务其上Jenkins的版本
如下图,系统管理—>下载。将jenkin.war包下载之后替换掉安装时/usr/lib/jenkins/jenkins.war 路径下的war然后重启就可以,也可以从Jenkins的官网下载war包进行替换
vim /etc/ini.d/jenkins 进入编辑模式后寻找8080的字样,新版的jenkins并没有找到
注:有指定的配置文件
[root@db2 ~]# egrep "JENKINS_" /etc/sysconfig/jenkins|grep -v ^#
JENKINS_HOME="/var/lib/jenkins"
JENKINS_JAVA_CMD=""
JENKINS_USER="root"
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
JENKINS_PORT="8080"
JENKINS_LISTEN_ADDRESS=""
JENKINS_HTTPS_PORT=""
JENKINS_HTTPS_KEYSTORE=""
JENKINS_HTTPS_KEYSTORE_PASSWORD=""
JENKINS_HTTPS_LISTEN_ADDRESS=""
JENKINS_HTTP2_PORT=""
JENKINS_HTTP2_LISTEN_ADDRESS=""
JENKINS_DEBUG_LEVEL="5"
JENKINS_ENABLE_ACCESS_LOG="no"
JENKINS_HANDLER_MAX="100"
JENKINS_HANDLER_IDLE="20"
JENKINS_EXTRA_LIB_FOLDER=""
JENKINS_ARGS=""
jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units
根据提示,输入
systemctl daemon-reload
然后systemctl restart jenkins重启
Failed to connect to repository : Error performing command: git \
ls-remote -h http://192.168.0.22/finance/AMS-Server.git HEAD
解决方法:Jenkins服务器上查看git是否已安装及安装位置
git version
whereis git
yum -y install git