2015-06-08 18 views

Odpowiedz

11

Skopiowanie $ HUDSON_HOME/credentials.xml nie jest rozwiązaniem, ponieważ Jenkins szyfruje hasła i nie można ich odszyfrować przez inną instancję, chyba że oba mają wspólny klucz.

Więc, albo użyć tych samych klawiszy encription w obu przypadkach Jenkins (Where's the encryption key stored in Jenkins?) lub co można zrobić, to:

  1. Tworzenie tego samego użytkownika/hasło, trzeba się podzielić, w instancji 2-cie Jenkins tak, że generowane jest poprawne hasło
  2. Co jest naprawdę ważne, to, że identyfikator użytkownika w obu credentials.xml jest taki sam. Do tego (patrz przykład poniżej) credentials.xml dla użytkownika: Jenkins<id>c4855f57-5107-4b69-97fd-298e56a9977d</id> identyfikator musi być taka sama w obu credentials.xml

    <com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin="[email protected]"> 
        <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash"> 
        <entry> 
         <com.cloudbees.plugins.credentials.domains.Domain> 
         <specifications/> 
         </com.cloudbees.plugins.credentials.domains.Domain> 
         <java.util.concurrent.CopyOnWriteArrayList>     
         <com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl> 
          <scope>GLOBAL</scope> 
          <id>c4855f57-5107-4b69-97fd-298e56a9977d</id> 
          <description>Para SVN</description> 
          <username>jenkins</username> 
          <password>J1ztA2vSXHbm60k5PjLl5jg70ZooSFKF+kRAo08UVts=  
          </password>       
         </com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl> 
         </java.util.concurrent.CopyOnWriteArrayList> 
        </entry> 
        </domainCredentialsMap> 
    </com.cloudbees.plugins.credentials.SystemCredentialsProvider> 
    
+1

Gdzie Jenkins przechowuje klucz szyfrujący? Cierpiałem przez to od dłuższego czasu! :( Za każdym razem, gdy migrowałem Jenkinsa, musiałbym ponownie wprowadzić wszystkie dane uwierzytelniające! – Fadi

+0

To powinna być zaakceptowana przyjęta odpowiedź: –

0

Czy próbowałeś skopiować folder $ JENKINS_HOME/users i $ JENKINS_HOME/credentials.xml do innej instancji Jenkinsa?

+0

Używam uwierzytelniania ldap dla samego serwera, ale te poświadczenia są dla git i dostępu do bazy danych. Gdzie są przechowywane? w folderze wtyczek? – sakurashinken

+0

Jeśli tworzysz globalne dane uwierzytelniające (w sekcji administracyjnej Jenkinsa), znajdują się one w pliku credentials.xml. –

+0

Dzięki, to była właściwa lokalizacja. – sakurashinken

1

Byłem też w obliczu tego samego problemu. To, co zadziałało, skopiowałem plik credentials.xml, config.xml i secrets z istniejących jenkins do nowej instancji. Po ponownym uruchomieniu jenkins wszystko działało dobrze.

+0

Tutaj znajdziesz ładny opis: [link] (https: //support.cloudbees. com/hc/en-us/articles/115001634268-How-to-migrate-credentials-to-a-new-Jenkins-instance-) –

Powiązane problemy