udało mi się następujący fragment kodu Pythona aby utworzyć użytkownika z ssh-Key:
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
jest to coś w rodzaju interfejs REST wyjątkiem, że trzeba znać wewnętrzne kodu i nazwy klas, które obiekty są rzekomo do dekodowania.
Próbuję skonfigurować jenkins ze skryptu ansible (działającego zewnętrznie na serwerze Jenkinsa); ponieważ java cli nie obsługuje tworzenia poświadczeń, wydaje się, że jest to fragment kodu Pythona.
Upewnij się, że używasz _Jenkins’ własne database_ użytkownika jako metody uwierzytelniania (_security realm_), w przeciwnym razie nie będzie działać. – kenorb