Jenkins的实战部署

前言

Jenkins 是一个可扩展的持续集成引擎,主要作用:简化部署流程,降低部署风险,快速回滚,解放开发和运维人员。
CICD是持续集成(Continuous Integration)和持续部署(Continuous Deployment),是指通过自动化的构建、测试和部署,实现软件产品可循环使用的快速交付流程。

Jenkins的工作流程

1.开发者向Gitlab提交代码
2.GitLab使用 WebHook通知Jenkins有代码更新。
3.Jenkins 从节点(指定分支)拉取代码到服务器本地
4.Jenkins对拉取到本地的代码进项打包(mvn clean install),生成本地war或者jar包
5.Jenkins在服务器上对打包后的war或者jar进行部署  java  -jar  xxxx.war
6.Jenkins将构建报告以邮件方式通知开发者
7.将Jenkins的界面开放给开发或者测试人员,他们只需要点击 build ,选择分支,一键部署即可

centos7中Jenkins的安装

1.安装jdk

jdk-11.0.18_linux-x64_bin.tar.gz方式 
创建文件夹  
mkdir -p /usr/local/java
上传 jdk-11.0.18_linux-x64_bin.tar.gz 到/home/java,并解压 tar -zxvf jdk-11.0.18_linux-x64_bin.tar.gz
修改配置文件
vi /etc/profile,   添加
export JAVA_HOME=/usr/local/java/jdk-11.0.18
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version

如果有java8的环境,移除再重新配置java11的配置
whereis  java 
rm -rf  /usr/bin/java
ln -s /usr/local/java/bin/java /usr/bin/java

2.安装maven

apache-maven-3.6.1-bin.tar.gz
mkdir -p /usr/local/mvn
tar -zxvf  apache-maven-3.6.1-bin.tar.gz
vi /etc/profile
export MAVEN_HOME=/usr/local/mvn/apache-maven-3.6.1
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
mvn -v
记得修改setting 文件 
<localRepository>/usr/local/repo</localRepository>

3.安装git

v2.32.0.tar.gz
mkdir -p /usr/local/git
git 安装省略,详见 https://blog.csdn.net/liutong880818/article/details/127177930
git --version
tar -zxvf git-2.30.2.tar.gz
提前安装可能需要的依赖
yum install curl-devel expat-devel openssl-devel zlib-devel gcc-c++ 
yum install perl-ExtUtils-MakeMaker automake autoconf libtool make
编译安装 Git
cd git-2.30.2
make configure
./configure --prefix=/usr/local/git
make profix=/usr/local/git
make install
vi /etc/profile
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
source /etc/profile
git --version

4.安装Jenkins

jenkins.war
nohup java -jar jenkins.war --httpPort=9000 >>log 2>&1 &
ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
访问; http://192.168.12.171:9000
重启 http://192.168.12.171:9000/restart

报错:AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.a
解决:yum install fontconfig
重启Jenkins
ok!

5.Jenkins创建任务

5.1Jenkins各种插件安装—插件管理

Git plugin 
Git Parameter  
Publish Over SSH 
 Maven Integration
Pipeline Maven Integration Plugin    
Role-based Authorization Strategy

5.2 全局工具配置

jdk
git
mvn
ssh server
凭据配置
gitlab私钥配置

5.3生成git的公钥和私钥

生成私钥和公钥
config --list
git config --global user.name "xuelin.zhou"
git config --global user.email "zhouxl@sijibao.com"
git config --global user.password 'Zxl123456!'
git config --global --unset user.password

 ssh-keygen -t rsa -C "zhouxl@sijibao.com"      
 查看私钥
 cat /root/.ssh/id_rsa
 全部复制 ,放在Jenkins的全局凭证那里


 查看公钥
  cat /root/.ssh/id_rsa.pub
  全部复制,放在gitlab上面   gitlab上  我的------setting----SSH Keys

公钥私钥

5.4 创建Jenkins任务

构建一个maven项目,如果没有这个选项,则需要安装maven插件,去【插件管理】那里安装

Jenkins任务
常规配置
git 参数
git配置
git代码检出到子目录
ssh server配置
注意事项
exce command

#!/bin/sh
ps -ef |grep -v grep | grep cu-extension-service | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
cd /home/wyyt/server/cu-extension/cu-extension-service/target
tar -zxvf  *-SNAPSHOT.tar.gz
rm -rf  *-SNAPSHOT.tar.gz
nohup /usr/local/java/jdk-11.0.18/bin/java -jar boot/cu-extension-service.jar --spring.cloud.nacos.discovery.register-enabled=true --server.servlet.context-path=/  --spring.config.location=config/ >/home/wyyt/cu-extension/log-extension.log 2>&1 &

pom文件

/home/wyyt/server/cu-extension/pom.xml
clean install  -DskipTests=true

修改admin 密码
在这里插入图片描述
在这里插入图片描述
权限配置
在这里插入图片描述
在这里插入图片描述

6搭建过程中的坑

6.1 git Authentication failed for 128

升级git版本 删除原有 git  ln 重新 简历ln  链接
whereis git 
rm -rf /usr/local/bin/git
ln -s /usr/local/git/bin/git /usr/bin/git

6.2 Jenkins启动失败

最新的Jenkins 依赖 jdk11   ,需要安装 jdk11

6.2.1Jenkins插件安装失败

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

在这里插入图片描述
在这里插入图片描述

6.3搭建过程中常用调试命令

curl -H "Content-Type: application/json" -H "Authorization: 49e0028ab5b44c139494d4d6c6960e9d" -X POST -d '{"belongToDate":"2023-02"}' "https://sc-gateway.test027.com/cu/enterprise/index/todo/purchase/businessInfos"

nohup java -jar boot/cu-extension-service.jar --spring.cloud.nacos.discovery.register-enabled=false  --server.servlet.context-path=/  --spring.config.location=config/ >/dev/null 2>&1 &


git ls-remote -h http://git.sijibao.com/cu/cu-extension.git HEAD

启动
nohup java -jar jenkins.war --httpPort=9000 >>log 2>&1 &
关闭
ps -ef |grep -v grep | grep jenkins | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
查看端口号8080正在使用的进程
netstat -alnp | grep 8080   

git config --global user.name "xuelin.zhou"

git config --global user.email "zhouxl@sijibao.com"

ssh-keygen -t rsa -C "zhouxl@sijibao.com"

git config --global --unset user.password

git config --global user.password
git config --list

yum install -y isof 
yum intall -t net-tools

isof -i:9005
netstat -ntulp | grep 9005
ps -ef|grep java 
ps -ef|grep java | grep 进程号
Jenkins的启动脚本
vi start.sh
#!/bin/bash
nohup java -jar jenkins.war --httpPort=9000 >>log 2>&1 &
chmod +x start.sh
./start.sh
vi stop.sh
#!/bin/bash
ps -ef |grep -v grep | grep jenkins | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
./stop.sh

redis安装

wget https://download.redis.io/releases/redis-6.2.6.tar.gz
 tar -xvf redis-6.2.6.tar.gz
 cd redis-6.2.6
 make
 make install
 vi /redis.conf
 daemonize = yes         ---开启后台启动
 requirepass  123456    ----密码
 protected-mode no    ------远程连接
 bind 192.168.12.124    ---远程连接ip
 touch start.sh  stop.sh
 vi  start.sh
 /usr/local/redis/redis-6.2.6/src/redis-server  /usr/local/redis/redis-6.2.6/redis.conf
 vi stop.sh
 ps  -ef |grep -v grep | grep redis | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
  chmod +x start.sh stop.sh

6.4安装包

Jenkins安装包
jenkins.war -----Jenkins 2.391
apache-maven-3.6.1-bin.tar
jdk-11.0.18_linux-x64_bin.tar.gz
v2.32.0.tar.gz ----git
redis-6.2.6.tar.gz

6.5 [INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:06 min
[INFO] Finished at: 2024-01-23T10:44:19+08:00
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /home/wyyt/cu-extension/.flattened-pom.xml to com.wyyt/cu-extension/2.0.4-SNAPSHOT/cu-extension-2.0.4-SNAPSHOT.pom
/home/wyyt/cu-extension/.flattened-pom.xml is not inside /root/.jenkins/workspace/cu-extension/home/wyyt/cu-extension/; will archive in a separate pass
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-api/.flattened-pom.xml to com.wyyt/cu-extension-api/2.0.4-SNAPSHOT/cu-extension-api-2.0.4-SNAPSHOT.pom
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-api/target/cu-extension-api-2.0.4-SNAPSHOT.jar to com.wyyt/cu-extension-api/2.0.4-SNAPSHOT/cu-extension-api-2.0.4-SNAPSHOT.jar
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-api/target/cu-extension-api-2.0.4-SNAPSHOT-sources.jar to com.wyyt/cu-extension-api/2.0.4-SNAPSHOT/cu-extension-api-2.0.4-SNAPSHOT-sources.jar
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-service/.flattened-pom.xml to com.wyyt/cu-extension-service/2.0.4-SNAPSHOT/cu-extension-service-2.0.4-SNAPSHOT.pom
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-service/target/cu-extension-service.jar to com.wyyt/cu-extension-service/2.0.4-SNAPSHOT/cu-extension-service-2.0.4-SNAPSHOT.jar
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-service/target/cu-extension-service-sources.jar to com.wyyt/cu-extension-service/2.0.4-SNAPSHOT/cu-extension-service-2.0.4-SNAPSHOT-sources.jar
[JENKINS] Archiving /home/wyyt/cu-extension/cu-extension-service/target/cu-extension-service-2.0.4-SNAPSHOT.tar.gz to com.wyyt/cu-extension-service/2.0.4-SNAPSHOT/cu-extension-service-2.0.4-SNAPSHOT-2.0.4-SNAPSHOT.tar.gz
channel stopped
Finished: UNSTABLE

解决办法:
Use password authentication, or use a different key ----选中
在这里插入图片描述

6.6 nohup: failed to run command ‘java’: No such file or directory

原因是nohup java命令无法识别 服务器的jdk位置不对
解决方案:把nohup java命令换成全路径 比如nohup /usr/local/java/jdk-11.0.18/bin/java 启动即可

#!/bin/sh

ps -ef |grep -v grep | grep cu-extension-service | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
cd /home/wyyt/cu-extension/cu-extension-service/target
tar -zxvf  *-SNAPSHOT.tar.gz
rm -rf  *-SNAPSHOT.tar.gz
nohup /usr/local/java/jdk-11.0.18/bin/java -jar boot/cu-extension-service.jar --spring.cloud.nacos.discovery.register-enabled=true --server.servlet.context-path=/  --spring.config.location=config/ >/home/wyyt/cu-extension/log-extension.log 2>&1 &

6.7 start.sh

echo 'stop trade server.....'
ps -ef |grep -v grep | grep cu-extension-service | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
echo 'start trade server....'
nohup /usr/local/java/jdk-11.0.18/bin/java -jar /home/wyyt/cu-extension/cu-extension-service/target/boot/cu-extension-service.jar --spring.cloud.nacos.discovery.register-enabled=true --server.servlet.context-path=/  --spring.config.location=/home/wyyt/cu-extension/cu-extension-service/target/config/ >/home/wyyt/cu-extension/log-extension.log 2>&1 &

6.8 stop.sh

ps -ef |grep -v grep | grep cu-extension-service | awk '{print $2}' | xargs kill -s 9 >/dev/null 2>&1
chmod +x start.sh stop.sh
./start.sh
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Jenkins部署Vue项目的实战步骤: 1. 在Jenkins服务器上安装Node.js和npm:确保Jenkins服务器上安装了Node.js和npm。你可以使用以下命令检查它们是否已安装: ``` node -v npm -v ``` 如果没有安装,请根据操作系统的不同,使用适当的方式进行安装。 2. 创建一个新的自由风格的软件项目:在Jenkins主页,点击“新建任务”,输入任务名称,选择“自由风格的软件项目”,然后点击“确定”。 3. 配置源码管理:在项目配置页面的“源码管理”部分,选择你的版本控制工具(如Git),填写你的代码仓库URL和认证信息。 4. 配置构建触发器:在项目配置页面的“构建触发器”部分,选择适合你的触发方式,例如定时触发、代码提交触发等。 5. 配置构建环境:在项目配置页面的“构建环境”部分,勾选“Provide Node & npm bin/ folder to PATH”选项。 6. 配置构建步骤: - 点击“添加构建步骤”,选择“执行Shell”。 - 在Shell脚本框中,输入以下命令: ``` npm install npm run build ``` 这将安装Vue项目的依赖项,并构建生产版本的代码。 7. 配置构建后操作: - 点击“增加构建后操作步骤”,选择“Archive the artifacts”。 - 在“Files to archive”字段中,输入构建产物的路径,例如:`dist/**/*`。 - 点击“保存”。 8. 保存并应用配置:点击页面底部的“保存”按钮。 现在,当你触发Jenkins项目构建时,它将自动拉取代码、安装依赖、构建Vue项目,并将构建产物存档起来。你可以进一步配置部署步骤,例如将构建产物发布到Web服务器或CDN上。 希望这个实战步骤能够帮助你成功部署Vue项目到Jenkins

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值