2016-10-11 1 views
0

Ich habe einen jenkins Job, der ein grandle Skript ausführt, das android Speicher und Schlüsselpasswörter vom keychain abruft. Das Skript funktioniert läuft gut auf meinem lokalen Rechner, aber ich versuche es auf den jenkins Job hinzuzufügen und es andernfalls das Produkt in dem Schlüsselbund suchen:Jenkins Baujob kann Artikel in einem Schlüsselbund nicht finden

security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.

Der Befehl es versucht zu laufen ist: security -q find-generic-password -a jenkins -gl storePassword

Wenn Sie diesen Befehl vom Terminal ausführen, wird das Kennwort erwartungsgemäß abgerufen.

Ich denke, das Problem ist damit zu tun, dass jenkins job unter jenkins user läuft. Ich habe versucht, su zu jenkins Benutzer und ich denke, es hat nur System keychain - wenn ich tun security list-keychains es kommt mit System.keychain. Meine Speicher- und Schlüssel-Passwörter befinden sich innerhalb des Login-Schlüsselbunds, auf den der Benutzer von jenkins keinen Zugriff hat. Irgendwelche Vorschläge, wie Sie das beheben können? Ich habe versucht, den Schlüsselbund durch Sicherheit zu erstellen, aber das hat nicht wirklich funktioniert.

Antwort

0

Nur für den Fall ist dies nützlich für jemanden:

1) Erstellen Sie einen neuen Schlüsselanhänger mit Schlüsselanhänger-Zugang. Nennen wir es zum Beispiel 'Jenkins'.
2) Kopieren der Schlüsselbund der jenkins Bibliotheksverzeichnis ($HOME/Library/Keychains/jenkins.keychain)
3) laufen auf der chown jenkins:jenkinsjenkins.keychain
4) laufen sudo su jenkins Jenkins Benutzer zu schalten.
5) Fügen Sie die jenkins.keychain der Schlüsselbund-Liste hinzu security list-keychains -s ~/Library/Keychains/jenkins.keychain
6) fügen Sie einen Bash-Skript-Aufruf zum jenkins-Build-Prozess hinzu, um den Schlüsselbund zu entsperren. Idealerweise sollte der Anruf das Passwort verwenden, das in den jenkins build über das mask password plugin gespeichert wurde. So etwas wie security unlock-keychain -p "${jenkins_keychain_password}" "$HOME/Library/Keychains/jenkins.keychain"

Dies ist ein guter Leitfaden für weitere Informationen: http://www.egeek.me/2015/04/12/jenkins-setting-up-ios-code-signing/

Verwandte Themen