Jenkins+Git+github 自动化部署
前言
服务器原来已经安装了jdk ,tomcat 等等就省略了这些安装
安装Jenkins
1:准备Jenkins必需环境 java(安装步骤略)
2:yum安装Jenkins
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
wget -O /root/jenkins.io.key https://pkg.jenkins.io/redhat/jenkins.io.key
rpm --import /root/jenkins.io.key
yum clean all && yum makecache
yum install -y jenkins
3:修改Jenkins默认端口
进入/etc/sysconfig/ vim jenkins 修改8080 为****
4:启动Jenkins
systemctl start jenkins
如果出现 Job for jenkins.service failed because the control process exited with error code. See “systemctl status jenkins.service” and “journalctl -xe” for details. 则进入 cd /etc/init.d/ vim jenkins 添加自己java的环境变量地址
如果出现告警:
Warning: jenkins.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
执行systemctl daemon-reload 即可。
HTTPS访问并配置Jenkins
1:nginx下conf nginx.con配置文件中添加 并重启nginx:
/usr/local/nginx/sbin/nginx -s reload
2:在jenkins配置文件中添加 JENKING_ARGS=’’–prefix=/jenkins" 并重启jenkins:
service jenkins restart
3:访问https://域名/jenkins
查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
4:选择插件安装
等待安装完成
安装maven
1:下载并解压 并解压
2:配置环境变量
source /etc/profile
3:查看maven版本
mvn -v
安装git
1:下载git安装包 https://github.com/git/git/releases
2:上传到linux
3: 解压
tar -zxvf git-2.26.0.tar.gz
4:进入
cd git-2.26.0
5:安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf -y
(可以事先用rpm -q xx 查看是否安装了默写依赖)
6:删除旧版
yum -y remove git
7:编译
make prefix=/usr/local/git all
8:安装
make prefix=/usr/local/git install
9:配置环境变量
vi /etc/profile
10:查看版本
11:配置git的用户名
git config --global user.name "***"
12: 配置git的邮箱
git config --global user.email "*@*.com"
13:生成密钥文件,连续回车即可,默认生成在/root/.ssh文件夹下 ls可能不显示 直接cd .ssh即可进入
15:打开github 下来用户选择 setting
16:添加秘钥
17:生成token 复制备用
18:生成webhooks https://域名/jenkins/github-webhook/
将Linux服务器注册到Jenkins上
1:新建节点
配置如下
配置好执行编译能连接说明没问题
配置jenkins
1:进入系统管理—选择系统配置
2:添加 弹出页面
3:进入系统管理-选择全局工具配置
4:新建任务
配置如下
复制git项目地址
添加到下图,账号密码自行输入
选择 检出到子目录 自定义文件名称
#当jenkins进程结束后新开的tomcat进程不被杀死
BUILD_ID=DONTKILLME
#加载变量
. /etc/profile
#配置运行参数
#PROJ_PATH为设置的jenkins目录的执行任务目录
export PROJ_PATH=`pwd`
#配置tomcat所在目录
export TOMCAT_APP_PATH=/usr/local/tomcat
#执行写好的自动化部署脚本
sh /root/jenkins/deploy.sh
如果执行编译出现 Permission denied 是因为权限引起(安装完jenkins后,linux中默认使用的jenkins这个用户) 现在改为root
vi /etc/sysconfig/jenkins
2:执行
sudo chown -R root /var/log/jenkins
sudo chgrp -R root /var/log/jenkins
sudo chown -R root /var/lib/jenkins
sudo chgrp -R root /var/lib/jenkins
sudo chown -R root /var/cache/jenkins
sudo chgrp -R root /var/cache/jenkins
3:如果执行编译出现$’\r’:command not found执行 命令:
dos2unix deploy.sh
deploy.sh
#!/usr/bin/env bash
#编译+部署项目站点
#需要配置如下参数
# 项目路径, 在Execute Shell中配置项目路径, pwd 就可以获得该项目路径
# export PROJ_PATH=这个jenkins任务在部署机器上的路径
# 输入你的环境上tomcat的全路径
# export TOMCAT_APP_PATH=tomcat在部署机器上的路径
### base 函数
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
#上面注释的或者下面的
#cd $TOMCAT_APP_PATH/bin
#sh shutdown.sh
}
cd $PROJ_PATH/jenkins-xcx
mvn clean install
# 停tomcat
killTomcat
# 删除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT/*
# 复制新的工程到tomcat上
cp $PROJ_PATH/jenkins-xcx/target/xxx.war $TOMCAT_APP_PATH/webapps/ROOT/
cd $TOMCAT_APP_PATH/webapps/ROOT/
chmod 777 xxx.war
jar -xvf xxx.war
rm -rf $TOMCAT_APP_PATH/webapps/ROOT/xxx.war
# 启动Tomcat
cd $TOMCAT_APP_PATH/bin
sh startup.sh