2013-05-22 13 views
13

Mam klaster Jenkins, który jest współdzielony przez kilka zespołów, dzięki któremu mogę skonfigurować zadania tworzenia, jednak nie mogę łatwo wprowadzić zmian w konfiguracji Jenkins.Jak zarządzać maven settings.xml na udostępnionym serwerze Jennkins?

Istnieje centralny menedżer repozytorium "nexus pro", ale każdy zespół/grupa w tym bardzo dużym przedsiębiorstwie międzynarodowym ma własne repozytorium, a publikowanie do repo wymaga kombinacji nazwy użytkownika i hasła.

Oznacza to, że muszę skonfigurować serwer Jenkins z maven settings.xml, który jest unikalny dla zespołu, z którym pracuję, nie psując konfiguracji maven innych użytkowników klastra Jenkins.

Git jest repozytorium kontroli źródła.

  1. Na wspólnym klastrze Jenkinsa jak skonfigurować maven settings.xml, który jest unikalny dla grupy zadań kompilacji lub pojedynczego zadania? Jakie są najlepsze praktyki w radzeniu sobie z tego typu sytuacją?

Odpowiedz

17

Polecam pomocą configuration file plugin, zapewnia interfejs do edycji jednego lub więcej Maven ustawień plików.

Te pliki ustawień można przekazać do kompilacji Mavena za pomocą opcji "-s".

+0

z tą wtyczką, jak znaleźć nazwę, którą należy podać - s? – Sarief

+0

Wtyczka pliku konfiguracyjnego umożliwia utworzenie pliku ustawień Maven na ekranach administracyjnych Jenkins. Ścieżka tego pliku zostanie automatycznie przekazana do twojego kroku kompilacji Mavena, jeśli wybierzesz go z zadania kompilacji. –

+0

Jeśli korzystasz z Nexusa Pro dla swojego maven repo, warto spojrzeć na odpowiedź RCross poniżej – user1084563

2

można określić dla każdego zadania w ramach Maven Opcje zaawansowane określonej ścieżki seetings.xml

+1

Problem polega na tym, że najpierw otrzymuję plik settings.xml na serwer Jnkins, ponieważ nie mam dostępu do powłoki maszyny Jenkins. – ams

+0

może możesz spróbować dodać plik settings.xml do pliku obszaru roboczego i użyć zmiennych Jennkins (takich jak JENKINS_HOME), aby ustawić ścieżkę do obszaru roboczego. Innym pomysłem jest to, że możesz skonfigurować w globalnych ustawieniach metodę settings.xml i jeśli dobrze pamiętam, możesz zdefiniować ją jako "obszar roboczy względny" – yodamad

2

Zarządzamy wszystkimi naszymi węzłami kompilacji za pomocą Puppet. Zapewnia większą kontrolę niż plik settings.xml. Wysoce zalecane

Lalki to oprogramowanie do automatyzacji IT, które pomaga administratorom systemów w zarządzaniu infrastrukturą przez cały cykl jej życia, od udostępniania i konfiguracji, po zarządzanie łatkami i zgodność. Za pomocą Puppet można w łatwy sposób zautomatyzować powtarzalne zadania, szybko wdrażać krytyczne aplikacje i proaktywnie zarządzać zmianami, skalując od 10 do 1000 serwerów, lokalnie lub w chmurze.

1

Jeśli firma korzysta Nexus Pro (jak już wspomniano), to unikatowy Maven settings.xml mogą być tam przechowywane i pobierane w czasie kompilacji używając Nexus-maven-plugin, jak opisano tutaj: http://books.sonatype.com/nexus-book/reference/maven-settings.html

połączeniu z tokenów dostępu (ponownie, Nexus Pro to robi), nie trzeba się niebezpiecznie przechowywać haseł w settings.xml (patrz https://books.sonatype.com/nexus-book/reference/usertoken.html)

+2

Linki są martwe! :( – hfm

+0

Jest to bardzo przydatna odpowiedź dla każdego, kto korzysta z Nexusa, a także naprawił linki – user1084563

+0

Naprawiono linki – user1084563

0

dobrym sposobem, aby zautomatyzować provisioning wykonawców maven o określonej konfiguracji używa ElasticBox Jenkins plugin.

Wystarczy tylko utworzyć pole dla niewolnika Maven, które definiują wszystkie zmienne dostosowywania i pliki mają być używane przez niego i wybierz preferowany cloud dostawcę do wdrażania go.

ElasticBox daje również elastyczność w tworzeniu nowych niewolników i tylko w razie potrzeby automatycznie je zniszczyć po określonym czasie przechowywania.

Oto jak do podłączenia Jenkins z ElasticBox:

https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-setup/#jenkins-configure-plugin

Oto jak zautomatyzować tworzenie Jenkins niewolników z ElasticBox:

https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-slaves/

Jest blogu o tym, jak łatwo można budować i wdrażać z GitHub żądanie ściągania z wtyczką ElasticBox Jenkins:

https://elasticbox.com/blog/github-pull-requests-jenkinsplugin/

Powiązane problemy