Saya memiliki jenkinsfile yang berfungsi dan dapat menerapkan beberapa infrastruktur secara otomatis dengan terraform. Sayangnya setelah menambahkan modul terraform dengan sumber git, modul tersebut berhenti berfungsi dengan kesalahan berikut:
+ 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 di atas dikaburkan setelah kejadian tersebut. Di bawah ini adalah sintaks modul cut down:
module "logstash" {
source = "git::https://bitbucket.org/******"
...
}
Di bawah ini adalah file 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'
}
}
}
}
Saya yakin ini adalah masalah dengan terraform secara internal yang menggunakan git untuk memeriksa modul tetapi Jenkins belum mengonfigurasi klien git dalam pekerjaan pipeline itu sendiri. Sebaiknya saya dapat meneruskan kredensial yang digunakan oleh pekerjaan pipa multibranch ke dalam pekerjaan itu sendiri dan mengkonfigurasi git tetapi saya tidak tahu bagaimana cara melakukannya. Bantuan apa pun akan dihargai.
withCredentials
apa pun dalam kode saluran Anda. - person Matt Schuchard   schedule 11.10.2018