ich es geschafft, die folgende Python-Schnipsel bekommen einen Benutzer zu erstellen mit ssh-Schlüssel:
import json
import requests
def main():
data = {
'credentials': {
'scope': "GLOBAL",
'username': "jenkins",
'privateKeySource': {
'privateKey': "-----BEGIN RSA PRIVATE KEY-----\nX\n-----END RSA PRIVATE KEY-----",
'stapler-class': "com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"
},
'stapler-class': "com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"
}
}
payload = {
'json': json.dumps(data),
'Submit': "OK",
}
r = requests.post("http://%s:%d/credential-store/domain/_/createCredentials" % (HOSTNAME, 8080), data=payload)
if r.status_code != requests.codes.ok:
print r.text
Es ist so etwas wie eine REST-Schnittstelle, außer dass man die Interna des Codes und die Namen der Klassen wissen muss, dass die Objekte sollen, entschlüsseln.
Ich versuche, jenkins von einem ansible Skript zu konfigurieren (das extern zum jenkins Server läuft); Da der Java-CLI das Erstellen der Anmeldeinformationen nicht unterstützt, scheint das Python-Snippet der richtige Weg zu sein.
sicher, dass Sie _Jenkins eigene Benutzer database_ als Authentifizierungsmethode (_Sicherheit realm_) verwenden, sonst wird es nicht funktionieren. – kenorb