jenkins报错
课前回顾
Jenkins的插件安装
- Jenkins插件管理页面
- 各大镜像源
- 手动安装,下载hpi文件
Jenkins freestyle风格
请简述至少三个Jenkins job的自动构建策略,并连接一种策略实现每次代码提交即编译,要求提供安全认证
1.没有装git命令
2.gitlab项目页面没有配置Jenkins的公钥
3.gitlab的域名没有在Jenkins的机器上解析
4.Jenkins页面上没有配置Jenkins的私钥
5.Jenkins使用jenkins用户启动的,但是公钥推的是root用户
# 手动上线的步骤(不需要编译的)
1.从gitlab上拉代码,到Jenkins机器上
2.将代码加上时间和tag号打包
3.将代码推送到web服务器上
4.解压代码
5.做软链接发布
## 自动
[root@jenkins scripts]# cat deploy_www.sh
#!/bin/bash
### 变量定义
DATE=$(date +%F)
package_name="www_${DATE}_${git_tag_version}.zip"
code_dir='/data/www_code'
soft_link='/code/www'
dev_server='172.16.1.9'
test_server='172.16.1.7'
prod_server='172.16.1.8'
###
# 1.将代码打包
cd ${WORKSPACE} &&\
rm -f ./*.zip &&\
zip -r ${package_name} ./*
# 2.发送到web机器上 && 3.解压代码 && 4.删除软链接 && 5.部署代码(做软链接)
deploy(){
for ip in $1;do
ssh ${ip} "mkdir -p ${code_dir}"
scp ${package_name} ${ip}:${code_dir}
ssh ${ip} "cd ${code_dir} && unzip ${package_name} -d ${package_name%.*}"
ssh ${ip} "rm -f ${soft_link}"
ssh ${ip} "ln -s ${code_dir}/${package_name%.*} ${soft_link}"
done
}
case $env in
dev)
deploy $dev_server
;;
test)
deploy $test_server
;;
prod)
deploy $prod_server
;;
esac
## Jenkins配置gitlab报错
1.没有装git命令
2.gitlab项目页面没有配置Jenkins的公钥
3.gitlab的域名没有在Jenkins的机器上解析
4.Jenkins页面上没有配置Jenkins的私钥
5.Jenkins使用jenkins用户启动的,但是公钥推的是root用户
- freestyle
- gitlab webhook
- Maven
- gitlab webhook
- 记录jenkins的webhook url
- 在高级中获取jenkins的token
- 进入gitlab的项目
- 设置
- 集成(webhook)
- 将url和token填写到集成中
- 添加钩子
- gitlab webhook
- pipeline
gitlab的钩子
1.记录jenkins webhook的url:http://10.0.0.92:8080/project/freestyle-git-webhook
2.生成一个tocken记录下来:56df131ebc301b2166910c0e04e436da
## 代码提交到不同的分支,就部署不同的环境
if [ $BRANCH_NAME == 'ceo_branch' ];then
/bin/sh -x /var/lib/jenkins/scripts/deploy_dev_www.sh
elif [ $BRANCH_NAME == 'master' ];then
/bin/sh -x /var/lib/jenkins/scripts/deploy_staging_www.sh
elif
fi
注意:gitlab的钩子,永远不要往生产环境部署