一、Jenkinsfile理解

Jenkins Pipeline 提供了一套可扩展的工具,用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件(称为 Jenkinsfile )中,该文件可以被放入项目的源代码控制库中(即把Jenkinsfile文件放到gitlab的代码仓库中,Jenkins构建任务时,拉取该仓库到本地,然后读取Jenkinsfile的内容,执行相关的步骤)。

二、实验目的

通过Jenkinsfile文件,控制Jenkins版本发布,首先拉取指定的远程仓库文件到jenkins节点服务器上, 然后获取仓库文件下的Jenkinsfile文件内容,执行里面相关的内容,如: 1、打印当前的环境变量 2、构建镜像 3、创建deployment

三、整理myblog 项目仓库内容

1、在gitlab myblog项目中新建Jenkinsfile文件,内容如下:

pipeline {
    agent { label '10.3.153.202'}      #指定在那台Jenkins节点上运行
    stages {
        stage('更新开始') {
            steps {
                echo '更新开始'
                sh 'printenv'
            }
        }
        stage('build-image') {
            steps {
                retry(2) { sh 'docker build . -t myblog:latest'}    #构建镜像
            }
        }
        stage('deploy') {
            steps {
                timeout(time: 1, unit: 'MINUTES') {sh "kubectl apply -f deploy/"     #创建deployment
                }
            }
        }
    }
}

2、在gitlab myblog 中创建Dockerfile文件与deploy文件夹的app.yaml(具体内容省略)

3、把以上创建的文件与文件夹推送到gitlab仓库

四、Jenkins操作步骤

1、在项目中选择"Pipeline script from SCM"

2、选择我们要拉取的代码

3、此时,只需点击保存,即可完成我们需要的构建

五、验证构建结果

备注:后面我查看此次执行的Jenkins节点(10.3.153.202)服务器是否已经创建了该deployment