前端环境安装, 可以看我上一篇文章 链接: link
Git安装, 可以官网下载tar.gz包, https://github.com/git/git/releases, 然后命令解压
tar -zxvf git-2.37.3.tar.gz
进入到git的解压缩目录, 先安装所需要的依赖, 然后编译安装
# 安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
# 指定前缀编译
make prefix=/usr/local/web/git all
# 编译完后安装
make prefix=/usr/local/web/git install
进入到安装目录, 执行
git --version
查看是否成功, 然后配置环境变量
vi /etc/profile
文件底部添加如下
export PATH=$PATH:/usr/local/web/git/bin
使生效
source /etc/profile
然后任意目录下执行
git --version
查看是否成功
配置Git的用户名, 邮箱, 密码, 关闭SSL验证
# 关闭ssl校验
git config --global http.sslVerify "false"
# 用户名
git config --global user.name "你自己的用户名"
# 密码
git config --global user.password "你自己的密码"
# 邮箱
git config --global user.email "你自己的邮箱地址"
配置Git和Nodejs, Dashboard–>Global Tool Configuration下, 也可以配置Maven, Jdk, Gradle, Ant等
新建项目 (新建Item)
我这里使用了自定义的工作空间, 可使用默认的默认路径在/root/.jenkins/workspace下
我这里添加构建Git分支参数的选择, 可以打不同分支的包, 不需要可以忽略此步
也可以添加单选下拉的参数, 我这有修改网卡的需求, 没有修改网卡不需要的可以忽略此步, 可以在脚本中使用${host}获取使用
配置Gitlab远程仓库地址, 我这里是HTTP的地址, 凭据使用的是自己登录Gitlab的用户名密码即可, 可以直接添加, 也可以到Manage Jenkins --> Manage Credentials进行添加
然后编写执行脚本
# 删除上一次打的包
rm -rf ./zxelec ./zxelec*.zip
# 安装
yarn install
# 构建
yarn build
# 压缩打zip包
zip -r zxelec-${host}.zip ./zxelec
# 打的包 统一放到/usr/local/web/build目录下
mv zxelec-${host}.zip /usr/local/web/build/
# scp传输包
scp /usr/local/web/build/zxelec-${host}.zip root@${host}:/usr/local/openresty/nginx/html/
# 执行远程服务命令
ssh ssh root@${host} "cd /usr/local/openresty/nginx/html/;mv zxelec-${host}.zip zxelec.zip;unzip -o zxelec.zip"
MAVEN + JAVA打包部署脚本
mvn clean package
if [ ${host} = 'ALL' ]
then
hostArray=("10.0.xx.xx" "10.1.xx.xx" "10.2.xx.xx" "10.3.xx.xx")
for element in ${hostArray[@]}
do
scp /root/.jenkins/workspace/zxelec-back/zxelec-imwp/target/zxelec-imwp.jar root@$element:/home/viss/imwp_b/imwp_b/
ssh root@$element "sh /home/viss/imwp_b/bin/imwp_start.sh stop"
done
else
scp /root/.jenkins/workspace/zxelec-back/zxelec-imwp/target/zxelec-imwp.jar root@${host}:/home/viss/imwp_b/imwp_b/
ssh root@${host} "sh /home/viss/imwp_b/bin/imwp_start.sh stop"
fi
因为我这里有跨服务传输, 所以要免密码处理, 要不scp和ssh没有权限, 输入一次密码后, 以后就不需要密码了
主要的两个命令
# 生成公钥和私钥
ssh-keygen -t rsa
# 然后将公钥复制到目标服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub root@xx.xx.xx.xx
# 如上面命令报ERROR,执行以下命令
ssh-keygen -R xx.xx.xx.xx
构建时的页面
输出日志的日志信息
然后看执行结果就就行了, 完活