Ich habe den folgenden Schritt in meiner deklarativen Jenkins-Pipeline: Ich erstelle ein Skript, das aus meinem resources/
-Ordner stammt, mithilfe von libraryResource. Dieses Skript enthält Anmeldeinformationen für meinen autobuild
-Benutzer und für einige admintest
-Benutzer.
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 "
}
}
}
Das funktioniert gut. Ich kann meinen autobuild
-Benutzer verwenden. Jetzt suche ich nach dem besten Weg, wie ich auch die krendentiellen Elemente meines admintest
-Benutzers einbeziehen kann. Muss ich ihn mit einem zweiten withCredentials
-Teil "verschachteln" oder kann ich wieder ein usernamePassword
-Array hinzufügen?
Natürlich können Sie einen withCredentials
-Block verwenden, um verschiedenen Variablen mehrere Berechtigungsnachweise zuzuweisen.
withCredentials([
usernamePassword(credentialsId: credsId1, usernameVariable: 'USER1', passwordVariable: 'PASS1'),
usernamePassword(credentialsId: credsId2, usernameVariable: 'USER2', passwordVariable: 'PASS2')
]){
//...
}
Sie können dies auch mit $ class verwenden
withCredentials([[
$class: 'AmazonWebServicesCredentialsBinding',
credentialsId: 'awsID',
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'],
[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'myID',
usernameVariable: 'USR',
passwordVariable: 'PWD']])