USECASE-3 (integracja GIT, Maven, Jenkins, Docker, Tomcat)

Apr 09 2023
Zanim tu przyjedziesz, obejrzyj przypadek użycia 2. Czego się nauczysz z tego przypadku użycia: Jako pracownicy IT pracujemy nad wieloma obszarami (kodowanie, wsparcie, infrastruktura), ale wprowadzając nową usługę tak naprawdę nie jesteśmy świadomi, jak dokładnie kod zostanie wdrożony do produkcji. Istnieje wiele możliwości, dzięki którym możemy wdrożyć nasze wymagania do produkcji.

Proszę obejrzeć przypadek użycia-2 przed przyjściem tutaj

Czego nauczysz się w tym przypadku użycia:

Jako pracownicy IT pracujemy w wielu obszarach (kodowanie, wsparcie, infrastruktura), ale wprowadzając nową usługę tak naprawdę nie jesteśmy świadomi, jak dokładnie kod zostanie wdrożony do produkcji. Istnieje wiele możliwości wdrożenia naszych wymagań do produkcji. Ten przypadek użycia wyjaśni jeden ze sposobów wdrożenia naszego kodu w środowisku produkcyjnym.

W tym filmie wyjaśniłem również, jak rozwiązywać problemy. Po zakończeniu tego nagrywania nagrałem kolejny film bez rozwiązywania problemów. Ale czuję, że ludzie też muszą się nauczyć, jak poprawiać błędy. Więc wolałem przesłać ten film. Keep Fail i dowiedz się więcej

Kroki

  • krok 1: Zainstaluj Jenkins, Maven, GIT i Tomcat (patrz przypadek użycia 2)
  • krok 2: Zainstaluj Dockera
  • krok 3: Dodaj informacje o Dockerze w jenkins
  • krok 4: Wymień klucze ssh między serwerem Jenkins a serwerem Docker
  • krok 5: Utwórz zadanie jenkinsa
  • krok 6: Uzyskaj dostęp do aplikacji internetowej

Obejrzyj wcześniejsze filmy (Jak zainstalować Jenkinsa, Mavena i Tomcata) i postępuj zgodnie z załączonymi dokumentami w tym samym repozytorium

Kiedy Jenkins, maven i kocur będą gotowi

krok 2: Zainstaluj Dockera

Zainstaluj dockera na instancji EC2 i uruchom usługi

yum install docker

service docker start

Proszę uważnie postępować zgodnie z poniższymi instrukcjami

useradd dockeradmin

passwd dockeradmin

usermod -aG docker dockeradmin

visudo

dockeradmin ALL=(ALL)       NOPASSWD: ALL (add dockeradmin user after root)

vi /etc/ssh/sshd_config ( disable --> PasswordAuthentication no & enable PasswordAuthentication yes )

service sshd restart

mkdir /opt/docker

chown -R dockeradmin:dockeradmin /opt/docker/

vi Dockerfile
From tomcat:9-jre9 

# Maintainer
MAINTAINER "cloudnloud" 

# copy war file on to container 
COPY ./webapp.war /usr/local/tomcat/webapps

Zaloguj się do konsoli Jenkins i dodaj serwer Docker, aby wykonywać polecenia z Jenkins

Zarządzaj Jenkinsem → Konfiguruj system → Publikuj przez SSH → dodaj serwer Docker i poświadczenia Kliknij dodaj  Serwer SSH: dockerhost Nazwa hosta: ip serwera (publiczny ip) Nazwa użytkownika: dockeradmin Kliknij advange  włącz hasło hasło: podaj hasło dockeradmin

krok 4: Wymień klucze między serwerem Jenkins a serwerem Docker

zaloguj się do jenkinsa jako użytkownik dockeradmin

ssh-keygen

ls -a cd .ssh/ ssh-copy-id IPADDREE (adres IP drugiego serwera)

(aby połączyć serwer dokera z serwerem jenkins (na serwerach jenkins instalujesz oba junekins, tomcat, git)

krok 5: utwórz zadanie jenkinsa

Utwórz zadanie Jenkins

utwórz zadanie → projekt maven →

A) Repozytorium zarządzania kodem źródłowym:https://github.com/veejee2331/webapplicationGałęzie do zbudowania : */main

B) Zbuduj główny POM: pom.xml Cele i opcje: czysty pakiet instalacyjny

C) Kroki postu → Dodaj krok po kompilacji → wybierz

wysyłać pliki lub wykonywać polecenia przez SSH

Nazwa: docker_host Pliki źródłowe: webapp/target/*.warUsuń prefiks: webapp/targetZdalny katalog://opt//docker

Polecenia wykonawcze:

docker stop cloundnloud_demo;
docker rm -f cloundnloud_demo;
docker image rm -f cloundnloud_demo;
cd /opt/docker;
docker build -t cloundnloud_demo .

wysyłać pliki lub wykonywać polecenia przez SSH

Nazwa: docker_host Komenda Exec:

docker run -d --name cloundnloud_demo -p 8090:8080 cloundnloud_demo

F) Wykonaj zadanie Jenkinsa

G) ponownie sprawdź obrazy i kontenery na hoście Docker. Tym razem obraz i kontener są tworzone przez zadanie Jenkinsa

krok 6: Uzyskaj dostęp do aplikacji internetowej

Uzyskaj dostęp do aplikacji internetowej z przeglądarki działającej na kontenerze

http://<docker_host_Public_IP>:8090/uri