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 init и plan. Я использовал учетные данные субъекта-службы, созданные для аутентификации в подписке, в которой я хотел создать ресурсы, но получаю следующую ошибку, хотя плагин Azure CLI был установлен на Jenkins, откуда я пытаюсь запустить этот конвейер.
[1m [31mError: [0m [0m [1mError обновление состояния: произошла 1 ошибка: * provider.azurerm: ошибка при создании клиента AzureRM: профиль авторизации Azure CLI не найден. Убедитесь, что Azure CLI установлен, а затем войдите в систему с az login
.
[0m
[0m[0m[0m
az: command not found
, хотя я уже установил подключаемый модуль Azure cli. Может быть, порядок выполнения команд будет работать, еслиaz login
работает нормально ... 24.07.2019az cli
24.07.2019Azure cli
для Jenkins не интегрируется с конвейером Jenkins ... 25.07.2019