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填写到集成中
        • 添加钩子
  • 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的钩子,永远不要往生产环境部署
posted @ 2022-09-01 18:20  Gabydawei  阅读(122)  评论(0编辑  收藏  举报