文档版本 | v 1.0 |
---|---|
更新日期 | 2017.12.29 |
作者 | 追马 |
扩散范围 | 全网 |
一、准备工作 1.1、环境准备 软件版本功能jenkins2.95提供平台Pipeline2.5提供平台1.2、推荐阅读 分分钟部署安装jenkins 二、jenkins和k8s集成相关事宜 2.1、大致的流程相关
2.2、简单的pipeline demo,每个公司的场景不太一样,仅供参考
pipeline {
// 在任意节点上执行
agent any
// 设定时间戳,在console log上会有显示
options {
timestamps()
}
// 全局环境变量
environment {
// 定义一些代码仓库的根目录,work目录相关的属性
name = "zhuima"
}
// workflow,stages只能出现一次
stages {
// workflow中的每一步都是一个单独的动作,可以在不同的agent上运作
stage('\u2705 1、获取代码') {
steps {
script {
echo "\u2705 1、获取代码"
}
}
}
stage('\u2705 2、代码预编译') {
// 不同语言操作方式不太一样
steps {
echo "\u2705 2、代码预编译"
}
}
stage('\u2705 3、build镜像') {
// 看自己场景
steps {
echo "\u2705 3、build镜像"
}
}
stage('\u2705 4、打tag上传harbor') {
// 推送iamges到harbor镜像
steps {
echo "\u2705 4、打tag上传harbor"
}
}
stage('\u2705 5、清理系统上的镜像') {
// 清理本地的images,防止本地空间的占用
steps {
echo "\u2705 5、清理系统上的镜像"
}
}
stage('\u2705 6、创建k8s yaml文件') {
// 生成yaml文件
steps {
echo "\u2705 6、创建k8s yaml文件"
}
}
stage('\u2705 7、运行yaml文件') {
// 推送第6步生成的yaml文件到远程机器上,然后在远程机器上执行kubectl动作
steps {
echo "运行yaml文件"
}
}
stage('\u2705 8、DNS进行域名注册') {
steps {
echo "DNS进行域名注册"
}
}
stage('\u2705 9、清理构建目录') {
steps {
echo "\u2705 9、清理构建目录"
}
}
stage('\u2705 10、清理历史构建记录') {
steps {
script {
properties([[$class: 'BuildDiscarderProperty',
strategy: [$class: 'LogRotator', numToKeepStr: '10']]])
}
}
}
}
// 无论stages执行结果如何,post始终会执行
post {
always {
echo "WorkFlow Finished, ByeBye!"
}
}
}
官方文档: https://jenkins.io/doc/book/pipeline/
w3cschool教程: https://www.w3cschool.cn/jenkins/list/