jenkins一键部署github项目

个人目前理解jenkins部署分为两步:

  1. 构建项目,如生成jar
  2. 自动执行sh脚本
    如果没有jenkins,我们可能需要将jar移动到服务器,然后执行java -jar跑程序,jenkins可以替代我们执行这些东西,下面从0开始(仅供参考,也是个人记录)

为啥不用docker安装jenkins,因为坑多,下面步骤,如果你们系统有jdk,mvn,git环境,就自动跳过
文末提供演示案例

安装jdk1.8环境(最新版本的jenkins需要jdk11+)

bash 复制代码
cd /usr/local

mkdir java

cd java

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

tar  -zxvf  jdk-8u141-linux-x64.tar.gzrm -rf jdk-8u141-linux-x64.tar.gz

vim /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.8

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

java -version

echo $JAVA_HOME

安装mvn环境

bash 复制代码
cd /usr/local

mkdir maven

wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz --no-check-certificatetar -zxvf apache-maven-3.6.1-bin.tar.gzrm -rf apache-maven-3.6.1-bin.tar.gz

cd /usr/local/maven/

mkdir repo

vim conf/settings.xml 

#修改配置文件,找到如下修改
<localRepository>/usr/local/maven/repo</localRepository>

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf></mirror>

export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1 

export PATH=$MAVEN_HOME/bin:$PATH

source /etc/profilels

mvn -v

echo $MAVEN_HOME

安装git

bash 复制代码
yum install git -y

安装jenkins环境

bash 复制代码
#安装jenkins(最新版的jenkins需要jdk11,所以需要对应的版本信息)
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm

rpm -ivh jenkins-2.346.3-1.1.noarch.rpm

echo $JAVA_HOME

#candidates添加JAVA_HOME路径
vim /etc/init.d/jenkins    

vim /etc/sysconfig/jenkins

#将JENKINS_USER="jenkins 改为 JENKINS_USER="root"
systemctl start jenkins

#设置jenkins开机自启动
systemctl enable jenkins.service

#查看jenkins运行状态
systemctl status jenkins.service

# cat /var/lib/jenkins/secrets/initialAdminPassword
#项目路径 /var/lib/jenkins/workspace/

配置jenkins

找到 Global Tool Configuration,这里的配置,都是自己安装的,不依赖jenkins,这样个人觉得可控

jenkins需要安装maven插件,在plugin那里,自行百度一下

测试jenkins一键部署

准备环境:

centos7

jenkins

java项目(github地址,由于github网络较差,我使用giteegitee地址,配置是一样的)

其他,docker,docker-compose(安装docker,docker-compose),模拟依赖mysql,redis

  1. 新建项目
    2. 配置
    账号密码自己搞一下,我比较懒

附上脚本

说明:先用mvn编译,再把脚本移到 /home/compose下,执行 start.sh

dos2unix Window文件转linux文件,没有就yum installl 下载一个

cp 里面有个$JOB_NAME,这个是jenkins的环境变量,也就是项目名称

jenkins会把项目文件放在/var/lib/jenkins/workspace里面

附:这套流程下来,会遇到各种问题,道友们自己加油解决,本身流程是没有问题的

bash 复制代码
echo "构建开始"
mvn clean install -Dmaven.test.skip=true
echo "构建成功"
echo '初始化部署脚本'
rm -rf /home/compose
mkdir /home/compose
chmod 777 /home/compose
cp /var/lib/jenkins/workspace/$JOB_NAME/src/main/docker/docker-compose.yml /home/compose/
cp /var/lib/jenkins/workspace/$JOB_NAME/src/main/docker/start.sh  /home/compose/
cp /var/lib/jenkins/workspace/$JOB_NAME/src/main/docker/Dockerfile  /home/compose/
cp /var/lib/jenkins/workspace/$JOB_NAME/target/compose-demo-1.0-SNAPSHOT.jar /home/compose/
echo '初始化脚本完成'
echo '执行shell脚本'
cd /home/compose
echo 'dos2unix格式化sh脚本'
dos2unix start.sh
sh start.sh
echo 'shell脚本执行成功'

道友们加油

成功结果:

jenkins pipeline-script参考下篇文章

相关推荐
我言秋日胜春朝★2 分钟前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器
饮啦冰美式33 分钟前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu
wowocpp33 分钟前
ubuntu 22.04 server 安装 和 初始化 LTS
linux·运维·ubuntu
Lign1731439 分钟前
ubuntu unrar解压 中文文件名异常问题解决
linux·运维·ubuntu
大霞上仙1 小时前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
Karoku0662 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
为什么这亚子2 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
布值倒区什么name2 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)
运维·服务器·bug
。puppy3 小时前
HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,OSPF(静态路由,环回,缺省,空接口),NAT
运维·服务器
颇有几分姿色3 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器