1,安装 java 运行环境 jre
1,下载
选择 linux 版本
2,安装
1,将 jar 包上传到 linux
2,解压并剪切到 /usr/local/java 目录
这里的目录可以自定义,不过一般安装软件都会放在该目录下
tail -zxf 压缩包
3,修改环境变量
vim /etc/profile
在文件的末尾新增内容
JAVA_HOME=/usr/local/java
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
激活配置(重启也可以)
source /etc/profile
3,测试是否安装成功
java -version
2,安装 java 包管理工具 maven
1,下载
选择 linux 版本
2,安装
1,解压文件到 /usr/local/maven 目录
2,添加环境变量
vim /etc/profile
在文件的末尾新增内容
PATH=$PATH:/usr/local/maven/bin
激活配置(重启也可以)
source /etc/profile
3,修改 配置文件
vim /usr/local/maven/conf/settings.xml
修改默认仓库为 阿里的仓库,加快 jar 包的下载速度
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地 JAR 包 保存地址 -->
<localRepository>/usr/local/maven/jar</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<!-- 远程仓库, 由于国外网络的原因,建议使用阿里云的仓库 -->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!-- 配置创建项目的版本默认为 JDK8,默认5 -->
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
4,测试是否安装成功
mvn -v
3,安装 GIT 客户端
1,采用 yum 安装
yum install -y git
2,监测是否安装成功
git --version
4,安装 docker
记得安装 docker 的一个辅助工具 docker-compose
5,安装 jenkins
1,安装 http下载工具 wget
已经存在不必安装
yum -y install wget
2,下载安装包
这一步等待时间可能比较长,请耐心等待
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
将 war 包移动到 /usr/local/jenkins 目录
mv jenkins.war /usr/local/jenkins/
3,启动 jenkins
cd /usr/local/jenkins/
nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war --httpPort=8431 > jenkins.log 2>&1 &
-Dhudson.util.ProcessTree.disable=true 解决 jenkins 执行 shell 脚本有时候不等待导致失败的问题
4,访问与配置
1,浏览器访问
输入地址:http://192.168.200.102:8431/jenkins 注意修改自己的 ip 地址 和 端口
2,根据上面的提示获取登入密码
cat /root/.jenkins/secrets/initialAdminPassword
3,选择先不安装插件
选择插件安装
选择无,在安装
4,创建用户 jenkins/jenkins
5,修改插件下载地址
1,载入插件文件
点击进入:Jenkins -> Manage Jenkins -> Manage Plugins -> Available,加载出插件
2,修改服务器端的默认文件
cd /root/.jenkins/updates/
# 注意下面是一条命令,只是比较长
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
3,页面上修改 Update Site 的地址
点击进入:Jenkins -> Manage Jenkins -> Manage Plugins -> Advanced
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
点击 sumbit 后重启
前端重启方式,直接访问:http://192.168.200.102:8431/restart 注意修改成自己的 ip 和 端口
4,插件的安装方式
Jenkins->Manage Jenkins->Manage Plugins->Available
在搜索框输入检索想要的插件并勾选
某些插件可能需要重启才能生效
6,构建项目
1,相关插件
1,汉化插件
Localization: Chinese (Simplified)
该插件会部分汉化 jenkins,使界面展示比较友好
2,凭据插件
Credentials Binding
该插件用来管理凭据(账号,密码),之后可用作 git 账号的管理
3,代码管理插件
Git
2,添加环境变量
1,JDK
Jenkins->Global Tool Configuration->JDK->新增JDK
2,maven
Jenkins->Global Tool Configuration->Maven-> 新增Maven
3,找一个 gitee 仓库
最好是 一个 java 的 maven 项目仓库,写上可以访问的控制器,项目大家自由发挥,只要能正常打包和部署就行
4,添加 git 账号密码票据
1,进入凭据界面
2,点击添加凭据
3,填写凭据表单
5,创建一个项目
1,选择自由风格的项目
2,添加 git 配置
3,保存后点击构建
点击构建
点击进入控制台输出,可以看到代码已经从 git 仓库下载到服务器了
为了确保,我们也可以进入工作目录查看是否真的拉取了代码
cd /root/.jenkins/workspace
ls -l
6,修改配置,让项目编译打包
1,点击配置
2,添加构建脚本
书写想要执行的代码,这里的脚本只是做个测试,仅供参考,具体根据自己的业务逻辑
echo "开始构建项目"
mvn install -Dmaven.test.skip=true
echo "构建项目成功"
echo "启动项目"
if [ -f /root/jar/sql-script.pid ]; then
PID=$(cat /root/jar/sql-script.pid)
kill -9 $PID
rm -rf /root/jar/sql-script.pid
rm -rf /root/jar/sql-script.jar
fi
mv target/sql-script.jar /root/jar/sql-script.jar
java -jar /root/jar/sql-script.jar &
echo $! > /root/jar/sql-script.pid
echo "项目启动成功"
3,保存后点击构建
可以看到项目已经启动成功
也可以正常访问,如果不使用 docker,也不需要分布式,到这里也就完成了项目的一键部署
7,打包 docker 镜像
1,docker 构建脚本
新建两个文件放置到下面的位置
Dockerfile 内容
FROM openjdk:oraclelinux8
COPY sql-script.jar sql-script.jar
EXPOSE 80
ENTRYPOINT ["java", "-jar", "sql-script.jar"]
docker-compose.yml 内容
version: '3.1'
services:
tomcat:
restart: always
image: springboot-sql-script:hwq
container_name: sql-script
ports:
- 8761:80
2,修改 jenkins 构建脚本
echo "开始构建项目"
mvn install -Dmaven.test.skip=true
echo "构建项目成功"
rm -rf /root/jar/sql-script.jar
rm -rf /root/jar/Dockerfile
rm -rf /root/jar/docker-compose.yml
cp target/sql-script.jar /root/jar/sql-script.jar
cp shell/Dockerfile /root/jar/Dockerfile
cp shell/docker-compose.yml /root/jar/docker-compose.yml
cd /root/jar
docker build -t springboot-sql-script:hwq .
docker-compose down
docker-compose up -d
IMAGE_ID=$(docker images -f "dangling=true" -q)
if [ "$IMAGE_ID" != "" ]; then
docker rmi $IMAGE_ID
fi
3,保存后点击构建
4,最后在说一点
该脚本是适用于单节点部署
正常在生产开发中,一般会部署,maven 仓库 和 docker 仓库,脚本还应该涉及 jar 包的上传 和 docker 镜像的上传
如果要实现多节点还应该结合 dokcer swarm 或者 k8s 实现集群部署