如何创建jenkins作业以部署在多个EC2实例上

时间:2018-09-05 15:10:49

标签: amazon-web-services amazon-ec2 jenkins-pipeline tomcat8

我是云新手,我创建了一个Jenkins服务器和tomcat服务器, 我已经成功测试了简单的CICD实现。 现在,我想知道如何将我的代码部署到多个服务器。 对于前。如果我有4个不同的实例与tomcat安装。那么如何将单个源代码部署到不同的服务器上?

1 个答案:

答案 0 :(得分:1)

您没有提到,但我认为您正在使用带有声明性管道的Jenkinsfile,因为您确实应该这样做。不要尝试在网页上配置所有内容,因为它不具有可伸缩性并且没有版本控制。

首先,对于多次使用的步骤,我总是将其设置为共享库。基本上,您为共享库设置了一个git存储库,并将其导入到Jenkinsfile中。阅读此official document了解详细说明。 一种快速实现此目的的简便方法是将它们作为函数简单地放在Jenkinsfile的末尾

在我必须部署到多个位置的Jenkinsfile中,这是我会做的一个最小示例。

@Library('shared-library') _

pipeline {
    agent any
    environment
    {
        DEPLOYMENT_URL_A = 'a.master.motif.org'
        DEPLOYMENT_URL_B = 'b.master.motif.org'
    }
    stages {
        stage ('Build') {
            steps {
                script {
                    YOUR BUILD STEPS HERE
                }
            }
        }
    }
    stage ('Deployment') {
        steps {
            script {
                    deployment("${deploymentUrlA}")
                    deployment("${deploymentUrlB}")
                    }
                }
            }
        }
    }
    post {
        always {
            deleteDir()
        }
    }
}

请注意,部署共享库中的一种方法。可能是这样的(我在所有服务器上都有一个jenkins用户设置以进行远程部署)。

#!/usr/bin/env groovy
def call(deploymentUrl) {
    sh """ssh -o StrictHostKeyChecking=no \\
        jenkins@${deploymentUrl} \\
        YOUR DEPLOYMENT STEP HERE"""
}