gitlab+jenkins+harbor实现CI/CD(3)——流水线作业

gitlab+jenkins+harbor实现CI/CD(3)——流水线作业

  • 一、发布主机准备
  • 二、通过ssh插件交付任务
  • 三、jenkins节点添加
  • 四、流水线项目构建


一、发布主机准备

yum install -y git
yum install -y docker-ce
rpm -ivh jdk-11.0.15_linux-x64_bin.rpm

准备好以上软件,配置好域名解析。
在jenkins主机执行

ssh-copy-id 192.168.213.133

二、通过ssh插件交付任务

在jenkins系统配置添加ssh节点。
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第1张图片
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第2张图片
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第3张图片
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第4张图片

三、jenkins节点添加

节点管理,添加节点
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第5张图片
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第6张图片
将主节点构建数设为0.

四、流水线项目构建

新建流水线项目
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第7张图片
gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第8张图片

pipeline {
    agent any

    stages {
        stage('check out') {
            steps {
                git credentialsId: '0c19fa3a-49ab-4d5f-a445-b1a76eb539a0', url: '[email protected]:root/project1.git', branch: 'main'
            }
        }
        stage('docker build') {
            steps {
                sh '''
                cd $WORKSPACE
                docker build -t reg.westos.org/library/demo:${BUILD_NUMBER} .
                '''
            }
        }
        stage('docker push') {
            steps {
                sh '''
                REPOSITORY=reg.westos.org/library/demo:${BUILD_NUMBER}
                docker tag $REPOSITORY reg.westos.org/library/demo:latest
                docker login reg.westos.org -u admin -p westos
                docker push $REPOSITORY
                docker push reg.westos.org/library/demo:latest
                '''
            }
        }
        stage('docker deploy') {
            steps {
                sshagent(credentials: ['0c19fa3a-49ab-4d5f-a445-b1a76eb539a0']) {
                    sh '''
                    ssh -o StrictHostKeyChecking=no [email protected] """
                    docker ps -a |grep myapp && docker rm -f myapp
                    docker rmi demo:latest
                    docker run -d --name myapp -p 80:80 demo:latest """
                    '''
                }    
            }
        }
    }
}

gitlab+jenkins+harbor实现CI/CD(3)——流水线作业_第9张图片

你可能感兴趣的:(jenkins,gitlab,ci/cd)