W dzisiejszym wpisie opisze jak dodać uprawnienie do kopiowania artefaktów w Jenkins.
W jednym z moich projektów pojawiła się ciekawa kwestia związana z uprawnieniami do kopiowania artefaktów pomiędzy zadaniami w Jenkinsie. Podczas pracy nad migracją zadań z jednego systemu do drugiego w nowym Jenkinsie pojawił się poniższy błąd:
ERROR: Unable to find project for artifact copy: my first project
This may be due to incorrect project name or permission settings; see help for project name in job configuration.
Finished: FAILURE
Błąd powiązany był z pluginem Copy Artifact, którego celem jest umożliwienie kopiowania artefaktów pomiędzy zadaniami. Wraz z wersją 1.44, plugin ten uruchamia się domyślnie w trybie produkcyjnym, co wiąże się z tym, że uprawnienia do kopiowania są ustawione o wiele bardziej restrykcyjnie.
W moim przypadku migracja zadań pomiędzy systemami spowodowała również uruchomienie nowej wersji pluginu, który domyślnie blokował wszystkie próby kopiowania artefaktów.
Jak rozwiązać ten problem?
Problem ten można rozwiązać na trzy sposoby:
- dodać informację o tym, które zadanie może kopiować artefakty
Podczas konfiguracji zadań możemy dodać informację, które zadanie może kopiować artefakty:
1. na stronie konfiguracji zadania
Na stronie konfiguracji zadania znajduje się opcja Permission to Copy Artifact. Po zaznaczeniu tej opcji możemy podać zadania, które będą miały uprawnienie do kopiowania artefaktów. Podczas dodawania nazwy Jenkins będzie starał znaleźć się odpowiednią nazwę i ją podpowie.
Co ważne, możemy podać wiele zadań oddzielonych przecinkami. Możemy też użyć znaku * (gwiazdka) aby podać schemat nazwy zadania.
2. w definicji pipeline’u (tryb deklaratywny)
pipeline {
agent any;
options {
copyArtifactPermission('Copy artifacts project,...');
}
stages{...}
}
3. w definicji pipeline’u (tryb skryptu)
properties([
copyArtifactPermission('Copy artifacts project,...'),
]);
node {
...
}
- Użyć dodatku Authorize Project
Dodatek Authorize Project umożliwia uruchomienie zadania jako konkretny użytkownik. Po zainstalowaniu tego dodatku można dodać informację, że zadanie jest uruchamiane jako użytkownik z uprawnieniami do odczytu artefaktów.
- Tryb migracji (nie zalecane)
Dodatek Copy Artifacts umożliwia włączenie trybu migracji, który umożliwia wyłączenie sprawdzania uprawnień. Tryb ten został zaprojektowany w celu migracji ze starej wersji dodatku do nowej i nie powinien być używany w środowisku produkcyjnym dłużej niż to jest potrzebne.
Be First to Comment