Cześć. Dzisiaj pokażę Wam jak możecie w przeciągu godziny zainstalować serwer Jenkins oraz uruchomić w nim swoje pierwsze zadanie.
Czym jest Jenkins?
Jenkins jest narzędziem open source służącym do automatyzacji pracy związanej z procesem Continuous Integration i Continuous Delivery. Jest to narzędzie, które wspiera pracę programistów w ciągłym budowaniu, testowaniu a nawet automatycznej instalacji projektów na środowiskach testowych i produkcyjnych.
Czym jest Docker Compose?
Docker to oprogramowanie służące do uruchamiania aplikacji w środowisku zwirtualizowanym. Dzięki niemu możemy uruchomić aplikację w osobnym kontenerze, które jest niezależne od systemu operacyjnego. W ten sposób możemy przygotować różne środowiska korzystające z różnych narzędzi bez obawy konfliktów pomiędzy wersjami bibliotek i frameworków.
Sam Docker Compose jest narzędziem umożliwiającym definiowanie i uruchamianie aplikacji opartych na Dockerze. Dzięki temu narzędziu można zdefiniować za pomocą plików YAML całe środowiska składające się z wielu kontenerów. Jako przykład takiego środowiska mogę podać aplikację www, która składa się z kontenera zawierającego serwer www oraz drugiego kontenera zawierającego bazę danych dla tej aplikacji.
Wymagane narzędzia
Aby rozpocząć instalację Jenkinsa należy upewnić się, że posiadamy wymagane narzędzia. W związku z tym, że instalacja będzie oparta na narzędziu Docker Compose należy się upewnić, że mam je już zainstalowane.
Aby zweryfikować czy Docker Compose jest dostępny możecie wykorzystać tą komendę:
> docker-compose -v
Docker Compose version v2.0.0
Jeśli jeszcze nie macie tego narzędzia, to proponuję zainstalować je zgodnie z instrukcją na tej stronie: https://docs.docker.com/compose/install/
W przypadku Windowsa i Mac OS, Docker Compose jest składnikiem pakietu Docker Desktop. W przypadku Linuxa pakiet ten należy zainstalować oddzielnie.
Uwaga: wszystkie komendy w tym poradniku uruchamiane są z poziomu konsoli Linux, co oznacza, że nie zadziałają w standardowej konsoli systemu Windows. Tutaj proponuję skorzystać z Windows Subsystem for Linux (WSL), który można zainstalować na systemie Windows 10.
Utworzenie konfiguracji dla Docker Compose
Proponuję na samym początku utworzyć osobny katalog, w którym będziemy pracować nad projektem oraz dodatkowy katalog gdzie będziemy przechowywać dane z Jenkinsa (~/ jenkins_home ).
> mkdir jenkins
> mkdir ~/jenkins_home
> cd jenkins
Teraz tworzymy plik docker-compose.yml i kopiujemy do niego poniższą zawartość:
# docker-compose.yml
version: '3.7'
services:
jenkins:
image: jenkins/jenkins:lts
privileged: true
user: root
ports:
- 8080:8080
- 50000:50000
container_name: jenkins-lts
volumes:
- ~/jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/local/bin/docker:/usr/local/bin/docker
Powyższa konfiguracja pozwoli nam utworzyć kontener z najnowszą wersją serwera Jenkins (LTS). Najważniejsze elementy tej konfiguracji to:
- image – określa nam obraz, z którego chcemy skorzystać.
- ports – określa nam jakie porty chcemy udostępnić z kontenera na zewnątrz. W naszym wypadku będą to porty 8080 (www) oraz 50000 (api)
- container_name – nazwa naszego kontenera
- volumes – to wirtualne wolumeny, z których korzysta kontener. W naszym wypadku mamy tutaj katalog jenkins_home, który znajduje się na naszym systemie oraz dodatkowe dwa wolumeny, które umożliwiają korzystanie z Dockera z poziomu Jenkinsa.
Uruchamiamy kontener
Uruchomienie kontenera wykonuje się za pomocą jednej, prostej komendy:
> docker-compose up -d
Po uruchomieniu komendy Docker pobierze obraz Jenkinsa z serwerów oraz uruchomi kontener. W moim przypadku wyglądało to tak:
Zanim przejdziemy do przeglądarki musimy jeszcze skopiować hasło administratora, które zostało utworzone automatycznie podczas pierwszego uruchomienia serwera. Robimy to za pomocą komendy:
docker exec jenkins-lts cat /var/jenkins_home/secrets/initialAdminPassword
Pierwsze uruchomienie Jenkinsa
Mając już hasło możemy przejść do przeglądarki. W adres URL wpisujemy http://localhost:8080/ i powinna pojawić się nam poniższa strona:
Tutaj w pole Administrator password wpisujemy hasło, które przed chwilą skopiowaliśmy. Po wpisaniu hasła przechodzimy dalej Continue.
W następnym kroku mamy możliwość wyboru dodatków, które chcemy zainstalować na naszym serwerze. Tutaj proponuję skorzystać z domyślnej listy dodatków wybierając opcję Install suggested plugins.
Po kilku chwilach Jenkins powinien zainstalować wymagane dodatki.
W następnym kroku musimy utworzyć konto administratora. Po podaniu wymaganych informacji klikamy na Save and Continue.
Na następnym ekranie pojawi się informacja o adresie serwera. Zostawiamy tutaj domyślny adres i przechodzimy dalej (Save and Finish).
Podstawowa konfiguracja została zakończona!
Po przejściu dalej powinien ukazać się nam taki ekran:
Gratulację, właśnie zainstalowałeś Jenkinsa!
Tworzymy pierwsze zadanie
Pierwsze zadania zostanie oparte na prostym projekcie Hello World stworzonym w Javie: https://github.com/Coveros/helloworld. Aby umożliwić zbudowanie projektu należy skonfigurować Jenkinsa aby mógł skorzystać z narzędzia Maven.
W tym celu przechodzimy do panelu konfiguracyjnego Jenkinsa (Manage Jenkins):
W następnym ekranie przechodzimy do Global Tool Configuration:
Na następnym ekranie przechodzimy do sekcji Maven i klikamy Add Maven. Tutaj podajemy nazwę konfiguracji Maven (po prostu maven) i resztę zostawiamy z wartościami domyślnymi. Ustawienia zapisujemy.
Po skonfigurowaniu wracamy na główny ekran (klikamy na Dashboard) i tworzymy nasze pierwsze zadanie:
Na kolejnym ekranie definiujemy nasze zadanie. Podajemy jego nazwę oraz wybieramy typ Freestyle project.
Na nowym ekranie przechodzimy do sekcji Source Code Managment. Tam wybieramy Git i wpisujemy w pole Repository URl adres https://github.com/Coveros/helloworld.git. To adres naszego repozytorium Git w GitHubie.
W ten sposób zdefiniowaliśmy źródło projektu dla naszego zadania.
Później przechodzimy do sekcji Build, gdzie będziemy definiować nasze zadania związane z budowaniem projektu. Klikamy tutaj Add build step i wybieramy Invoke top-level Maven targets. Tutaj wybieramy zdefiniowaną wcześniej konfigurację maven. Dodatkowo określamy cele naszego procesu budowania (Goals): clean package.
Teraz dodajmy drugi krok naszego procesu budowania: Execute shell i podajmy tam komendę: java -cp target/helloworld-1.1.jar com.coveros.demo.helloworld.HelloWorld. Ta komenda uruchomi naszą aplikację i wyświetli wynik w konsoli.
Zapisujemy teraz naszą konfigurację i uruchamiamy nasze zadanie Build Now:
Bo kilku chwilach zadanie powinno się uruchomić i zakończyć sukcesem (kolor zielony).
Tutaj warto spojrzeć jak wyglądał cały proces budowania. Możemy to zrobić poprzez kliknięcie na linka #1. A potem klikamy na Console Output:
Na nowej stronie powinniśmy zobaczyć log z całego zadania.
W logu powinniśmy zobaczyć informację o prawidłowym zbudowaniu aplikacji oraz wyniku testowego wywołania aplikacji.
Zatrzymujemy kontenter
Uruchomiona wcześniej komenda docker-compose spowodowała, że kontener uruchomił się w tle. Jeżeli chcecie zatrzymać kontener wystarczy wywołać poniższą komendę w katalogu jenkins:
docker-compose down
Podsumowanie
W tym poradniku pokazałem Wam jak można w prosty sposób uruchomić serwer Jenkins. Co istotne, serwer uruchomiony jest w kontenerze ale zapisuje swoje dane do katalogu dostępnym na Waszym komputerze/serwerze. To powoduje, że jesteście w stanie w prosty sposób zarchiwizować te dane albo nawet przenieść je na inny komputer czy serwer. W ten sposób też dane nie zostaną utracone nawet w przypadku usunięcia kontenera.
Be First to Comment