centos7 安装jenkins集成gitee自动部署springcloud项目
小伙伴们,你们好呀,我是老寇一、前提条件centos7 安装jdk1.8二、安装过程# 从Jenkins清华大学镜像站下载wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.332.1-1.1.noarch.rpm# 安装Jenkinsrpm -ivh jenkins-2.332.1-1.1.noarc
小伙伴们,你们好呀,我是老寇
>>> 头脑风暴 <<<
思考:为什么要采用Jenkins?
1.提交代码后能自动部署,无需手动点击,节省时间,提高效率
2.自动拉取代码,无需人工拉取
实现:自动部署实现思路?
1.Jenkins拉取最新代码,然后构建项目
2.构建完之后,需要停掉之前的服务
3.移除掉之前的jar包,并复制新构建的jar到指定目录
4.启动jar包
目录
一、前提条件
2.安装git
yum -y install git
git --version
二、安装过程
# 从Jenkins清华大学镜像站下载
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.332.1-1.1.noarch.rpm
# 安装Jenkins
rpm -ivh jenkins-2.332.1-1.1.noarch.rpm
# 修改配置文件
vi /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_GROUP="root"
#修改Jenkins相关文件夹用户权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
# 设置jdk软连接(需提前安装jdk)
ln -s /usr/local/jdk/bin/java /usr/bin/java
# 启动Jenkins
systemctl start jenkins
# 查看状态
systemctl status jenkins
三、安装插件
1.访问 http://ip:8080
2.服务器执行命令 cat /var/lib/jenkins/secrets/initialAdminPassword
3.选择安装推荐插件
4.创建管理员账号
5.服务器执行命令 systemctl restart jenkins
6.重新访问 http://ip:8080
7.全局工具配置
jdk配置
maven配置
8.安装插件
下载gitee
下载Maven Integration plugin => 此图省略
9.配置gitee交互凭证
获取gitee私人令牌 => 从首页设置进 => 生成令牌 => 复制令牌
10.全局配置gitee => gitee
11.创建任务
创建maven项目
码云仓库 => 管理 => WebHooks
填完之后,自己点击测试,返回200则说明配置成功,否则需要检查配置是否正确
#!/bin/bash
sh /opt/laokou/build.sh build && sh /opt/laokou/build.sh run
前方高能,请注意回避
本文最麻烦的就是:shell脚本执行 部分命令没有权限
解决方案
vi /etc/sudoers
在root下面新增一行
jenkins ALL=(ALL) NOPASSWD:ALL
执行kill、cp等命令前都需要加上sudo
最后点击立即构建即可
四、总结
附启动微服务jar的脚本
注:执行脚本前,需要提前授权
cd /opt/laokou && sed -i 's/\r$//' build.sh && chmod u+x build.sh
#!/bin/bash
#参数
project_path="/opt/laokou"
admin="admin"
gateway="gateway"
register="register"
monitor="monitor"
#运行
run() {
cd ${project_path}
echo 'remove file...'
sudo rm -rf *.jar
echo 'copy file...'
sudo cp jar的位置,根据实际情况来/${admin}.jar ${project_path}
sudo cp jar的位置,根据实际情况来/${gateway}.jar ${project_path}
sudo cp jar的位置,根据实际情况来/${register}.jar ${project_path}
sudo cp jar的位置,根据实际情况来/${monitor}.jar ${project_path}
# 就是执行 sudo nohup java -jar admin.sh 只是说根据实际情况,需要配置参数
echo "run ${admin}..."
sudo sh laokou-${admin}.sh
# 就是执行 sudo nohup java -jar gateway.sh 只是说根据实际情况,需要配置参数
echo "run ${gateway}..."
sudo sh laokou-${gateway}.sh
# 就是执行 sudo nohup java -jar register.sh 只是说根据实际情况,需要配置参数
echo "run ${register}..."
sudo sh laokou-${register}.sh
# 就是执行 sudo nohup java -jar monitor.sh 只是说根据实际情况,需要配置参数
echo "run ${monitor}..."
sudo sh laokou-${monitor}.sh
}
#打包
build() {
echo "stop ${admin}..."
admin_pid=`ps -ef|grep ${admin}.jar|grep -v grep|awk '{print $2}'`
if [ -z ${admin_pid} ]; then
echo "${admin} is already stopped..."
else
sudo kill ${admin_pid}
fi
echo "stop ${gateway}..."
gateway_pid=`ps -ef|grep ${gateway}.jar|grep -v grep|awk '{print $2}'`
if [ -z ${gateway_pid} ]; then
echo "${gateway} is already stopped..."
else
sudo kill ${gateway_pid}
fi
echo "stop ${register}..."
register_pid=`ps -ef|grep ${register}.jar|grep -v grep|awk '{print $2}'`
if [ -z ${register_pid} ]; then
echo "${register} is already stopped..."
else
sudo kill ${register_pid}
fi
echo "stop ${monitor}..."
monitor_pid=`ps -ef|grep ${monitor}.jar|grep -v grep|awk '{print $2}'`
if [ -z ${monitor_pid} ]; then
echo "${monitor} is already stopped..."
else
sudo kill ${monitor_pid}
fi
}
if [ $1 == "run" ]; then
run
else
build
fi
最麻烦的就是shell执行权限设置,解决思路就是修改 /etc/sudoers,问题就解决啦
大功告成
更多推荐
所有评论(0)