Jak mam powiedzieć Jenkinsowi, aby uruchomił konkretny projekt na określonym niewolniku?
Skonfigurowałem węzeł główny Jenkins i węzeł podrzędny, którego chcę używać do przemieszczania aplikacji. Ale nie mogę wymyślić, jak skonfigurować projekt, aby działał na utworzonym przeze mnie węźle podrzędnym.
Odpowiedzi:
Ustaw pole wyboru „Ogranicz, gdzie to zadanie może być uruchomione” w konfiguracji zadania i określ nazwę swojego urządzenia podrzędnego.
Jeśli później dodasz więcej urządzeń podrzędnych, możesz ustawić etykiety dla każdego urządzenia podrzędnego i określić je w konfiguracjach zadań.
Zobacz dokumentację referencyjną:
źródło
Jeśli uruchamiasz zadanie Pipeline, najpierw chcesz dodać etykietę (np. „Slave”) do węzła slave (lub agenta, jak się wydaje, że jest teraz nazywany).
Następnie w skrypcie potoku określasz etykietę, na której działa zadanie:
Potok deklaratywny:
Skryptowany potok:
To zadanie będzie teraz działać na dowolnym węźle z etykietą „slave”. Jeśli chcesz, aby zadanie działało tylko na tym konkretnym urządzeniu podrzędnym, nie używaj ponownie etykiety. I oczywiście etykieta nie musi być „niewolnikiem”; może być czymkolwiek chcesz.
Aktualizacja:
W potoku skryptowym, jeśli twój węzeł ma nazwę „Mój węzeł”, możesz również to zrobić:
Jeśli chcesz, aby blok kodu działał tylko w tym konkretnym węźle, jest to przydatne. Jednak używanie etykiet jest bardziej elastyczne i może ułatwić dodawanie węzłów w celu współdzielenia obciążenia.
źródło
Jeśli chcesz użyć Node / Label jako parametru, zainstaluj NodeLabel Parameter Plugin
źródło
params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);
(zamiast zwykłegoStringParameterValue
).