pipeline{
agent any
stages{
stage('Checkout') {
steps {
git branch: 'master',
credentialsId: 'xxx-test-credentials',
url: 'https://gitlab.com/xxxx-xxxx/xxxxx/terraform.git'
sh "pwd"
sh "ls -lat"
}
}
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('xxx-test-service-principal')]) {
script{
sh 'terraform init'
sh 'terraform plan'
sh 'az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID'
}
}
// sh ‘terraform destroy -auto-approve’
}
}
}
}
}
我运行了上面运行Terraform初始化和计划的基本管道。我已经使用创建的服务主体凭据对要在其中创建资源的订阅进行身份验证,但是即使在我尝试运行该管道的Jenkins上安装了Azure CLI插件,也遇到了以下错误。>
[1m [31mError:[0m [0m [1mError刷新状态:发生1个错误:
* provider.azurerm:构建AzureRM客户端时出错:找不到Azure CLI授权配置文件。请确保已安装Azure CLI,然后使用az login
登录。
[0m
[0m [0m [0m
答案 0 :(得分:0)
我相当确定您需要先进行身份验证,然后再进行规划,请尝试以下操作:
sh 'az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID'
sh 'terraform init'
sh 'terraform plan'