jenkins部署流程
原创 叔牙 PersistentCoder 2023-06-10 02:30 发表于浙江微信公众号:[PersistentCoder]
关注可了解更多的教程。问题或建议,请公众号留言;
内容目录
一、前置准备二、安装jenkins三、安装插件和配置四、问题与解决参考
一、前置准备
1.jdk
yum install -y java-1.8.0-openjdk-devel
#配置环境变量
# jdk 8
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.1.al7.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#生效
source /etc/profile
2.maven
mkdir -p /opt/tools/maven/
cd /opt/tools/maven/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar zxvf apache-maven-3.6.3-bin.tar.gz
# maven 3.6.3
export MAVEN_HOME=/opt/tools/maven/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
3.git
yum install -y git
二、安装jenkins
下载rpm安装包:
mkdir -p /opt/tools/jenkins
cd /opt/tools/jenkins
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.354-1.1.noarch.rpm
不要使用官方的路径,贼慢。
安装jenkins:
rpm -ivh jenkins-2.354-1.1.noarch.rpm
修改文件夹权限:
chmod -R 777 /var/lib/jenkins
chmod -R 777 /var/cache/jenkins
chmod -R 777 /var/log/jenkins
//重新加载生效
systemctl daemon-reload
启动jenkins,默认端口是8080:
systemctl start jenkins
修改默认端口:
vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_PORT=8089"
获取初始密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
切换镜像源,进入到jenkins的默认的开发目录,在updates目录里面有一个default.json文件,这个文件里面有所有的插件的地址,这里面的地址记录的是国外的地址,所以是很慢的。
cd /var/lib/jenkins/updates
sudo sed -i 's#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g' default.json
sudo sed -i 's#www.google.com#www.baidu.com#g' default.json
sudo sed -i 's#https://mirrors.tuna.tsinghua.edu.cn#http://mirrors.tuna.tsinghua.edu.cn#g' default.json
Jenkins 2.354 版本默认启动内存大小为 256MB,垃圾回收器是ParallelGC,对于数量比较小的小项目打包构建问题不大,对于一些大项目以及多人协作打包构建,会出现卡顿和崩溃现象,所以我们要调整启动内存大小和修改垃圾回收器。编辑/usr/lib/systemd/system/jenkins.service,修改Environment属性:
Environment="JAVA_OPTS=-Djava.awt.headless=true -Xms8g -Xmx8g -XX:MaxNewSize=4g -XX:+UseG1GC"
具体分配的启动内存可根据本身机器配置做调整,垃圾回收器换成效率比较高的g1。然后重启服务。
三、安装插件和配置
1.安装插件
需要用到的常用插件,git parameter,maven integration,jdk integration,extend choice param plugin等
2.配置maven和jdk
maven配置文件
jdk安装目录
maven安装目录
四、问题与解决
1.切换jenkins失败
从root切换到jenkins账号使用:
su - jenkins
切换成功后提示符变成$,如果没有变,执行以下命令:
sudo usermod -s /bin/bash jenkins
2.无法连接仓库
-
宿主机安装git
-
宿主机root账号和jenkins账号都需要把git地址添加到host
#生成公私钥
ssh-keygen -t rsa
#本地连接git,保证网络、私钥没问题
ssh -i /opt/tools/gitlab_jekins_rsa [email protected] -p port
ssh -T -i /opt/tools/gitlab_jekins_rsa [email protected] -p port
ssh-keyscan -p port git.xxx.com >> ~/.ssh/known_hosts
3.构建脚本中无法执行mvn命令
这个问题出现的原因是,Jenkins 的构建任务默认是在一个全新的 bash 会话(shell)中执行的,该会话可能缺少一些必要的环境变量或者没有正确加载系统的 PATH 环境变量,导致无法找到 mvn 命令。
解决方案是在jenkins全局配置中添加环境变量:
4.npm打包失败
npm打包需要使用比较耗cpu和内存的npm工具。前边有说到jenkins启动内存已经调整比较大了,但是npm打包还是报内存溢出失败,是由于 Node.js 进程使用的内存超过了其可用内存限制,我们可以在构建步骤中调整nodejs的内存限制:
export NODE_OPTIONS="--max-old-space-size=8192"
当然上述配置是任务粒度,每增加一个项目都要添加上述配置,可以修改成全局配置,每个任务共享nodejs启动内存限制配置,具体修改方式可参考jenkins官方文档或翻阅其他资料。
参考
https://www.jenkins.io/
https://mirrors.tuna.tsinghua.edu.cn/
https://blog.csdn.net/weixin_43804995/article/details/126801501
https://blog.csdn.net/weixin_44896406/article/details/127032933
https://www.cnblogs.com/javastack/p/13707127.html