Cara menggunakan banyak kredensial di withCredentials di Jenkins Pipeline

Saya memiliki langkah berikut dalam pipa jenkins deklaratif saya: Saya membuat skrip yang berasal dari folder resources/ saya menggunakan libraryResource. Skrip ini berisi kredensial untuk pengguna autobuild saya dan untuk beberapa pengguna admintest.

stage('Build1') {
                steps {
                    node{
                        def script = libraryResource 'tests/test.sh'
                        writeFile file: 'script.sh', text: script
                        sh 'chmod +x script.sh'
                        withCredentials([usernamePassword(credentialsId: xxx, usernameVariable: 'AUTOBUILD_USER', passwordVariable: 'AUTOBUILD_PASSWD')]){
                            sh './script.sh "
                        }

                    }

                }   

Ini berfungsi dengan baik. Saya dapat menggunakan pengguna autobuild saya. Sekarang saya sedang mencari cara terbaik untuk memasukkan juga kredensial pengguna admintest saya. Apakah saya harus 'menyarangkannya' dengan bagian withCredentials kedua atau dapatkah saya menambahkan lagi usernamePassword 'array'?


person lvthillo    schedule 24.11.2017    source sumber


Jawaban (2)


Tentu, Anda dapat menggunakan satu blok withCredentials untuk menetapkan beberapa kredensial ke variabel berbeda.

withCredentials([
    usernamePassword(credentialsId: credsId1, usernameVariable: 'USER1', passwordVariable: 'PASS1'),
    usernamePassword(credentialsId: credsId2, usernameVariable: 'USER2', passwordVariable: 'PASS2')
]){
    //...
}
person Vitalii Vitrenko    schedule 24.11.2017
comment
Bagaimana cara melakukan ini dengan Groovy? - person Steve K; 04.12.2018
comment
@meshfields ini Groovy - person Vitalii Vitrenko; 04.03.2020
comment
@SteveK stage('stage 2') { langkah{ withCredentials([usernamePassword(usernameVariable: 'user_1', passwordVariable: 'password_1', credentialId: 'id_1'), usernamePassword(usernameVariable: 'username_2', passwordVariable: 'password_2', kredensialId: 'id_2')]){ sshagent(kredensial : ['jenkins_ssh_user_key']) { sh } } } } - person Mohsen Abasi; 11.07.2021

Anda juga dapat menggunakan ini dengan $class

                    withCredentials([[
                      $class: 'AmazonWebServicesCredentialsBinding',
                      credentialsId: 'awsID',
                      accessKeyVariable: 'AWS_ACCESS_KEY_ID',
                      secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'],

                    [$class: 'UsernamePasswordMultiBinding',
                      credentialsId: 'myID',
                      usernameVariable: 'USR',
                      passwordVariable: 'PWD']])
person Max    schedule 14.02.2019
comment
Kelas apa pun untuk teks string - person WhoAmI; 11.06.2020