У меня есть jenkinsfile, который работал и мог автоматически развертывать некоторую инфраструктуру с помощью terraform. К сожалению, после добавления модуля terraform с источником git он перестал работать со следующей ошибкой:
+ terraform init -input=false -upgrade
Upgrading modules...
- module.logstash
Updating source "git::https://bitbucket.org/*****"
Error downloading modules: Error loading modules: error downloading 'https://bitbucket.org/*****': /usr/bin/git exited with 128: Cloning into '.terraform/modules/34024e811e7ce0e58ceae615c545a1f8'...
fatal: could not read Username for 'https://bitbucket.org': No such device or address
script returned exit code 1
Указанные выше URL-адреса были затемнены. Ниже приведен сокращенный синтаксис модуля:
module "logstash" {
source = "git::https://bitbucket.org/******"
...
}
Ниже представлен файл Jenkins:
pipeline {
agent {
label 'linux'
}
triggers {
pollSCM('*/5 * * * *')
}
stages {
stage ('init') {
steps {
sh 'terraform init -input=false -upgrade'
}
}
stage('validate') {
steps {
sh 'terraform validate -var-file="production.tfvars"'
}
}
stage('deploy') {
when {
branch 'master'
}
steps {
sh 'terraform apply -auto-approve -input=false -var-file=production.tfvars'
}
}
}
}
Я считаю, что это проблема с внутренним терраформом с использованием git для проверки модуля, но Дженкинс не настроил клиент git внутри самого задания конвейера. Желательно, чтобы я мог каким-то образом передать учетные данные, используемые заданием многоотраслевого конвейера, в само задание и настроить git, но я не понимаю, как это сделать. Любая помощь будет оценена.
withCredentials
в вашем коде конвейера. - person Matt Schuchard   schedule 11.10.2018