jenkins部署、迁移、使用手册

文章目录

    • Jenkins简介
    • Jenkins安装
      • 物理部署(centos7)
          • 在线安装
          • 准备yum源
            • 安装Jenkins
          • 离线安装
          • root用户启动
          • 编辑service文件
          • java安装
            • openjdk
            • jdk-1.8
          • maven安装
          • 环境变量(jdk1.8/maven)
          • 启动服务
          • jenkins初始化加速
            • 手动安装新手入门的插件
            • 更新站点
            • 上传插件
    • 容器部署
          • 下载jenkins镜像
          • 启动Jenkins容器
            • 以root权限启动
            • 添加映射,让容器内使用宿主机的docker
    • war包部署Jenkins
    • jenkins迁移
    • jenkins升级
          • Jenkins修改
          • 安装过程中遇到的问题

Jenkins简介

Jenkins是一款用Java语言开发的开源的自动化服务器。我们通过界面或者Jenkinsfile告诉它执行什么任务何时执行。
理论上,我们可以让它执行任何任务,但是通常只应用于持续集成和持续交付。
使用Jenkins能够提升软件工程生产力的根本原因在于它提供的是一个自动化平台,一个团队引入了Jenkins就像是原来手工作坊式的工厂引入了生产流水线。

Jenkins安装

物理部署(centos7)

在线安装

地址

准备yum源
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
安装Jenkins
 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
root用户启动
vim /etc/sysconfig/jenkins
JENKINS_USER="root"

安装完成后,可以直接通过脚本启动:/etc/rc.d/init.d/jenkins start
也可以自己编辑service文件,通过system进行管理
建议使用root用户启动,可以通过修改以上的配置进行设置

编辑service文件
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
java安装

因为jenkins的版本2.309,建议安装Java11

openjdk
yum -y install java-11-openjdk-devel

离线安装包
链接:https://pan.baidu.com/s/1Bj7SqyeJapOJwKcmZNKeSg
提取码:i9dt

jdk-1.8
#下载完成的安装包,上传到服务器上
rpm -ivh jdk-8u212-linux-x64.rpm
#对应的安装路径
/usr/java/jdk1.8.0_212-amd64
#对应的环境变量在下文,根据实际情况选择

离线安装包
链接:https://pan.baidu.com/s/12rFPqKgTpbGEb3ZgspoCEw
提取码:7i2l

maven安装

下载地址
根据实际情况,选择合适的版本

mkdir /usr/local/maven/
#tar -xvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/maven/
环境变量(jdk1.8/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版本的绝对路径
jenkins部署、迁移、使用手册_第1张图片

或者设置软连接

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

jenkins部署、迁移、使用手册_第2张图片

jenkins初始化加速

联网状态下,下载插件速度较慢,已经把新手入门的插件下载下来
链接: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的版本!!!

jenkins部署、迁移、使用手册_第3张图片

推荐新手入门安装方式(联网状态)
jenkins部署、迁移、使用手册_第4张图片
推荐新手入门安装方式(联网状态)
jenkins部署、迁移、使用手册_第5张图片

jenkins部署、迁移、使用手册_第6张图片

更新站点

注:联网状态

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

发现有的依赖包安装失败,可以更新站点后重新安装,离线状态下需要手动去下载所需要的插件

上传插件

jenkins部署、迁移、使用手册_第7张图片

容器部署

下载jenkins镜像
#docker pull jenkins/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用户执行了

以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
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

war包部署Jenkins

首先下载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迁移

在迁移原来的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的版本

jenkins升级

如下图,系统管理—>下载。将jenkin.war包下载之后替换掉安装时/usr/lib/jenkins/jenkins.war 路径下的war然后重启就可以,也可以从Jenkins的官网下载war包进行替换

jenkins部署、迁移、使用手册_第8张图片

Jenkins修改

vim /etc/ini.d/jenkins 进入编辑模式后寻找8080的字样,新版的jenkins并没有找到
jenkins部署、迁移、使用手册_第9张图片

注:有指定的配置文件

[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 

你可能感兴趣的:(jenkins,linux)