Jenkins管道中天蓝色失败的Terraform计划

时间:2019-07-31 08:46:31

标签: jenkins jenkins-pipeline terraform jenkins-groovy terraform-provider-azure

下面是Jenkins DSL规则,用于设置Terraform路径并检索服务主体凭据以运行Terraform初始化和Terraform计划。

针对Terraform 12.0版本运行时,即使我使用Jenkins自由样式作业使用以下管道中提​​到的相同Azure服务主体凭据进行了测试,但仍然出现以下错误,并且az login正常工作。

+ terraform init -input=false
[0m[1mInitializing modules...[0m

[0m[1mInitializing the backend...[0m
[31m
[1m[31mError: [0m[0m[1mError building ARM Config: Error populating Client ID from the Azure CLI: No Authorization Tokens were found - please re-authenticate using `az login`.[0m

[0m[0m[0m


    pipeline{
      agent any
      stages{
        stage('Set Terraform path') {
          steps {
            script {
              def tfHome = tool name: 'Terraform'
              env.PATH = "${tfHome}:${env.PATH}"
            }
            sh 'terraform version'

          }
        }

        stage('Provision infrastructure') {
            steps {
              dir('environments/dev')
              {
                  withCredentials([azureServicePrincipal('xx-xxx-subscription-azure-sp')]) {
                        sh 'az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID'
                        sh 'terraform init -input=false'
                        sh 'terraform plan -out=tfplan -input=false'
                }
                    // sh ‘terraform destroy -auto-approve’
              }

            }
        }
    }
}

0 个答案:

没有答案