一、jenkins分布式节点
1)创建节点
- 创建远程工作目录
- 运行节点(依赖jdk)
2)创建项目
- jenkins添加webhook
选择gitee,添加webhook
# 使用ngrok映射公网地址
sudo tar -xvzf ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin
ngrok config add-authtoken 2hVzpESrnADT1PJqcdGCmYmDWmI_6LZKZXm83s6uvg6WfbgSH
ngrok http 8080
# 访问
https://356b-112-20-67-139.ngrok-free.app/generic-webhook-trigger/invoke?token=fa0apo-weqa-093d-seffe@123
-
添加git源码管理
jenkins添加gitee,ssh方式连接
查看私钥:cat ~/.ssh/id_rsa
-
执行shell(自动构建镜像并推送)
docker build -t autotpsite:v1 .
docker tag autotpsite:v1 192.168.xxx.xxx:5001/autotpsite:v1
docker login 192.168.xxx.xxx:5001
docker push 192.168.xxx.xxx:5001/autotpsite:v1
二、pipeline流水线
pipeline的出现代表企业人员可以更自由的通过代码来实现不同的工作流程。
1)流水线结构
Node:节点(某台机器),执行任务的具体环境
Stage:环节,表示一组操作,通常用来逻辑划分
脚本语法:shell+groovy
容器部署jenkins:
docker run -id --name jenkins2 -p 8080:8080 -p 50000:50000 -v /var/jenkins_node:/var/jenkins_home --restart=always --privileged=true registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins:v5
2)流水线语法
分为声明式语法和脚本式语法,一般使用脚本式语法。
流水线脚本配置Jenkinsfile:
node("autotpsite"){ //指定标签是autotpsite的节点运行此任务
// 需要运行的任务,命令行
stage("停止服务"){
checkout scm //下载同步代码文件
sh "docker-compose down"
}
stage("构建"){
//sh "docker build -t autotpsite:v2"
//测试流水线脚本
//def yml_content = readYaml file: 'docker-compose.yml'
//println(yml_content)
//sh "cd autotpsite && cat settings.py" //jenkins默认工作目录下
dir('autotpsite'){
sh "cat settings.py"
}
}
stage("打标签"){
//sh "docker tag autotpsite:v2 192.168.xxx.xxx:5001/autotpsite:v2"
}
stage("重启服务"){
sh "docker-compose up -d"
}
jenkins添加流水线脚本