sono riuscito ad ottenere il seguente frammento di Python per creare un utente con ssh-chiave:
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
e 'come una sorta di un'interfaccia REST, tranne che uno deve conoscere la struttura interna di codice ei nomi delle classi che gli oggetti si suppone per decodificare a.
sto cercando di configurare Jenkins da uno script ansible (correre esternamente al server Jenkins); poiché java cli non supporta la creazione delle credenziali, lo snippet python sembra la strada da percorrere.
fonte
2015-11-19 02:46:51
assicurarsi che si sta utilizzando _Jenkins’ proprio database_ utente come metodo di autenticazione (_Sicurezza realm_), altrimenti non funzionerà. – kenorb