USECASE-5 (Integration GIT, Maven, Jenkins, Docker, Tomcat, Ansible und Kubernets)
-:
Anwendungsfall 2 →https:///cloudnloud/-70109c93be65
Anwendungsfall 3 →https:///cloudnloud/usecase-3-integration-git-maven-jenkins-docker-tomcat-92de9233ea93
Anwendungsfall4 →https:///cloudnloud/usecase-4-integration-git-maven-jenkins-docker-tomcat-and-ansible-adee3cd192d1
Was Sie in diesem Anwendungsfall lernen werden:
Als IT-Mitarbeiter arbeiten wir in vielen Bereichen (Codierung, Support, Infrastruktur), aber beim Onboarding eines neuen Dienstes wissen wir wirklich nicht, wie genau der Code in der Produktion bereitgestellt wird. Es gibt viele Möglichkeiten, unsere Anforderungen in die Produktion zu integrieren. In diesem Anwendungsfall wird eine der Möglichkeiten erläutert, wie wir unseren Code in der Produktion bereitstellen können.
In diesem Video habe ich auch erklärt, wie man die Probleme beheben kann. Nachdem diese Aufnahme abgeschlossen war, hatte ich ohne Fehlerbehebung ein weiteres Video aufgenommen. Aber ich habe das Gefühl, dass die Menschen auch lernen müssen, Fehler zu korrigieren. Deshalb habe ich es vorgezogen, dieses Video hochzuladen. Bleiben Sie bei Fail und erfahren Sie mehr
- Ansible – Bitte schauen Sie sich mein vorheriges Video an →https://lnkd.in/eaFVV3XX
- Docker – Bitte schauen Sie sich mein vorheriges Video an →https://lnkd.in/eaFVV3XX
- Jenkins – Bitte schauen Sie sich mein vorheriges Video an →https://lnkd.in/eaZHhFbH
- kubernetes – Bitte überprüfen Sie die Cloudnloud-Videos →https://www.youtube.com/watch?v=md2BtnJYtt8
- Docker-Hub-Konto → Anmeldenhttps://hub.docker.com/
- Schritt 1) Überprüfen Sie die SSH-Verbindung zwischen dem Ansible-Server und dem Kubernetes-Master und aktualisieren Sie die Hostdetails
- Schritt 2: Erstellen Sie YML-Dateien in Ansible für Kubernets CI-Pipelines
- Schritt 3) Image an den Docker-Hub übertragen und prüfen. 3.1: Ansible-Server in Jenkins aktualisieren. 3.2: Neuen Maven-Job erstellen und ausführen. 3.3: Im Docker-Hub validieren
- Schritt 4) Erstellen Sie YML-Dateien auf Masterservern sowohl für die Bereitstellung als auch für den Dienst in /root
- Schritt 5) Erstellen Sie YML auf einem Ansible-Server, um Kubernetes-YML-Server auszuführen
- Schritt 6) Erstellen Sie einen CD-Prozess mit Ansible und Jenkins
- Schritt 7) Verknüpfung zwischen CI- und CD-Prozess
- Schritt 8) Testen Sie das Ergebnis
- Schritt 9) In GIT integrieren
Melden Sie sich dann beim Ansible-Server an
ssh -i id_rsa root@IP _addressof kubernetes_server
Wenn keine Verbindung hergestellt werden kann, müssen Schlüssel zwischen dem Ansible-Server und dem Kubernetes-Server ausgetauscht werden
Melden Sie sich beim Ansible-Server an
ssh-keygen
ls -a
cd .ssh/
ssh-copy-id IPADDREE(second server ip address)
Schritt 2: Erstellen Sie YML-Dateien in Ansible für Kubernets CI-Pipelines
mkdir /opt/kuber
vi createimage.yaml
---
- hosts: ansible-server
become: true
tasks:
- name: create docker image using war file
command: docker build -t tomcat-image:latest .
args:
chdir: /opt/kuber
- name: create tag to image
command: docker tag tomcat-image veejee2331/tomcat-image
- name: push image on to dockerhub
command: docker push veejee2331/tomcat-image
- name: remove docker images form ansible server
command: docker rmi tomcat-image:latest veejee2331/tomcat-image
ignore_errors: yes
Jenkins-Plugin installieren → über SSH veröffentlichen
Jenkis verwalten → Systeme konfigurieren → auf SSH veröffentlichen → SSH-Server → hinzufügen
Name: Ansiblemaster
Hostname: IP-Adresse (private Bez desselben VPC)
Benutzername: ansadmin
Klicken Sie auf „Sitzung fortsetzen“.
Passwort: asnadmin-Passwort
Klicken Sie auf die Testverbindung (es zeigt Erfolg oder Misserfolg für unsere Bestätigung an).
Hinweis: Sie müssen die Schlüssel zwischen Jenkis und dem Master-Server austauschen, dann wird nur die Testverbindung erfolgreich sein
Schritt 3.2: Neuen Maven-Job erstellen und ausführen
Job erstellen → Maven-Projekt →
A) Quellcode-Verwaltungs-Repository:https://github.com/veejee2331/webapplicationZu erstellende Zweige: */main
B) Root-POM erstellen: pom.xml Ziele und Optionen: Neuinstallation des Pakets
C) Post-Schritte → Post-Buid-Schritt hinzufügen → Auswählen
Wählen Sie „Beitragsschritte“ → Wählen Sie „Dateien senden oder Befehle über SSH ausführen“ (dies ist verfügbar, sobald Sie das Plugin „Veröffentlichen über SSH“ installiert haben). Aktualisieren Sie die folgenden Informationen
SSH-Server: Name → Ansiablemaster (wird automatisch angezeigt, da wir den Congifg-Bereich in früheren Schritten aktualisiert haben) Übertragung: Quelldatei → webapp/target/*.war Removeprefix: webapp/target Remote-Verzeichnis: //opt//Docker
Noch einmal
Wählen Sie „Beitragsschritte“ → Wählen Sie „Dateien senden oder Befehle über SSH ausführen“ (dies ist verfügbar, sobald Sie das Plugin „Veröffentlichen über SSH“ installiert haben). Aktualisieren Sie die folgenden Informationen
SSH-Server: Name → Ansiablemaster (wird automatisch angezeigt, da wir in früheren Schritten im Congifg-Bereich aktualisiert haben) Exec-Befehl: Unter den Zeilen aktualisieren → Anwenden
cd /opt/docker
docker build -t tomcat_demo .
docker tag tomcat_demo veejee2331/tomcat_demo
docker push veejee2331/tomcat_demo
docker rmi tomcat_demo veejee2331/tomcat_demo
From tomcat:9-jre9
MAINTAINER "SREEKANTH"
COPY ./webapp.war /usr/local/tomcat/webapps/
Wie zu überprüfen
Einloggen inhttps://hub.docker.com→ Repositories → Sie können ein neues Image erstellen, was wir gepusht haben
#Schritt4: Erstellen Sie YML-Dateien auf Masterservern sowohl für die Bereitstellung als auch für den Dienst in /root
kubernetes-appdeploy.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
labels:
app: kube-ansible
spec:
replicas: 2
selector:
matchLabels:
app: kube-ansible
template:
metadata:
labels:
app: kube-ansible
spec:
containers:
- name: kube-ansible
image: veejee2331/tomcat_demo
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: app-service
labels:
app: kube-ansible
spec:
type: NodePort
selector:
app: kube-ansible
ports:
- port: 8080
targetPort: 8080
nodePort: 30080
im Anisble-Server /opt/kuber
vi ansible-deploy.yaml
---
- name: Create pods using deployment
hosts: kuber
user: root
tasks:
- name: create a deployment
command: kubectl apply -f kubernetes-appdeploy.yml
- name: update deployment with new pods if image updated in docker hub
command: kubectl rollout restart deployment app-deployment
---
- name: create service for deployment
hosts: kuber
user: root
tasks:
- name: create a service
command: kubectl apply -f kubernetes-appservice.yml
Gehen Sie zu Jenkins → Job erstellen → Freestyle-Projekt → Standard → Post-Build-Aktion → Build-Artefakte über SSH senden → Ansible-Server auswählen → Excel-Befehl →
ansible-playbook -i /opt/kuber/hosts /opt/kuber/ansible-deployment.yml; ansible-playbook -i /opt/kuber/hosts /opt/kuber/ansible-service.yaml;
Schritt 7) Verknüpfung zwischen CI- und CD-Prozess
In Schritt 3.2 haben wir CI erstellt
Gehen Sie zu CI-Job → wählen Sie den Job aus → konfigurieren → Post-Build-Aktion → wählen Sie „Andere Projekte erstellen“ → zu erstellendes Projekt (wählen Sie den Job „CD-Job Schritt 6“ aus) → „Anwenden“ → „Speichern“.
Führen Sie nun den CI-Job aus (erstellen).
Schritt 8) Testergebnis
Nachdem beide Jobs abgeschlossen sind, CI- und CD-Jobds, dann melden Sie sich beim Kubernets-Server an → überprüfen Sie die Bereitstellung, Pods und Dienste werden erstellt.
https://kubernetes-masterIPadress:nodeportnumber/uriname
Schritt 9) In GIT integrieren
Melden Sie sich beim Jenkins-CI-Job an → Konfigurieren → Poll-SCM aktivieren → Geben Sie * * * * * ein (jede Minute wird der Git-Bereich auf Aktualisierungen überprüft) und speichern Sie es
Ändern Sie einige Dateien am Github-Speicherort, dann werden automatisch CI/CD-Jobs gestartet.
Vernetzen Sie sich mit mir auf LinkedIn https://www.linkedin.com/in/sreestack/
Möchten Sie mehr über Cloud und DevOps erfahren oder stecken Sie in Ihrer Karriere fest? Folgen Sie Vijayabalan Balakrishnan und der CloudnLoud Tech Community für weitere Tipps und Karriereberatung.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































