Fermer

septembre 13, 2022

Déploiement d’une application conteneurisée sur le serveur Tomcat


Introduction:

« DevOps » est la combinaison d’outils et de technologies qui aide les organisations à fournir des applications avec un minimum d’effort et dans un délai plus court.

Dans ce blog, j’ai mis en place une stratégie DevOps en intégrant Github, Jenkins et Docker pour fournir de petites applications basées sur Java.
Architecture du projet :

Photo20

Les outils utilisés:

  1. Matou:

Tomcat est un serveur Web open source utilisé pour exécuter des applications basées sur Java. C’est le serveur Web le plus utilisé, dans lequel nous devons déplacer le fichier .war dans le répertoire /webapps, puis Tomcat installera automatiquement le fichier .war et déploiera l’application. Par défaut, Tomcat s’exécute sur le port 8080.

  1. Jenkin :

Jenkins est un outil d’automatisation qui est principalement utilisé pour automatiser les tâches qui prennent plus de temps lorsqu’elles sont effectuées manuellement. Jenkins prend en charge plusieurs plugins pour intégrer des outils ou logiciels tiers. Jenkins construit et teste votre code source en continu, ce qui permettrait aux développeurs d’apporter plus facilement des modifications lors du développement de tout logiciel.

  1. Docker:

Docker est un logiciel qui utilise une version avancée de la virtualisation au niveau du système d’exploitation appelée conteneurisation. Cela nous permet de construire, tester et déployer notre application rapidement. Il a regroupé des packages logiciels dans des conteneurs.

Étapes détaillées :

  1. Lancez l’instance EC2 pour l’hôte Docker :

Lancez une instance EC2 pour l’hôte docker. Le port 8090 doit être ouvert dans le groupe de sécurité car nous accéderons à notre application sur ce port. Une fois Docker installé, nous devons démarrer le service Docker et vérifier l’état du service Docker avec les commandes ci-dessous.

Commandes :

  • miam installer docker -y
  • démarrage du docker de service
  • état du docker de service
  1. Création d’un utilisateur docker :


Pour effectuer la tâche de gestion Docker, nous devons d’abord créer un utilisateur docker et l’ajouter au groupe docker.

Commandes :

  • useradd dockeradmin
  • passwd dockeradmin
  • usermod -aG docker dockeradmin
  1. Activation de l’authentification basée sur le mot de passe :

Pour permettre à Jenkins de déployer des fichiers war sur l’hôte Docker, nous devons activer l’authentification par mot de passe. Pour cela, nous devons apporter certaines modifications au fichier de configuration ssh.

Commande:

Ici, dans ce fichier de configuration, nous devons décommenter PermitRootLogin et Authentification par mot de passe

Photo21

Après avoir apporté des modifications au fichier sshd_config, nous devons redémarrer le service sshd pour refléter les modifications que nous avons apportées.

Commande:

  1. Création de Dockerfile :

Nous devons créer un Dockerfile qui téléchargera l’image de base de Tomcat depuis dockerhub et copiera le fichier war généré dans le répertoire /opt/docker vers le chemin /usr/local/tomcat/webapps.

Commandes :

  • cd/opt
  • menu fixe mkdir
  • vi Dockerfile

Le contenu du Dockerfile devrait ressembler à ceci :

Photo22

  1. Lancez l’instance Ubuntu et installez Jenkins dessus:

  • Accédez aux jenkins avec une adresse IP publique dans le navigateur.
  • Copiez le chemin mentionné dans le composant logiciel enfichable ci-dessous « /var/lib/Jenkins/secrets/initialAdminPassword ».
  • Exécutez la commande sur le serveur en tant que « cat /var/lib/Jenkins/secrets/initialAdminPassword ».
  • Vous obtiendrez le mot de passe initial, copiez-le et collez-le sur la console de Jenkins.
  • Installez les plugins suggérés.
  • Créer un utilisateur administrateur.

Photo23

  1. Installer le plug-in Publish Over SSH dans Jenkins:

  • Sur la console Jenkins, cliquez sur « Gérer Jenkins ».
  • Cliquez sur « Gérer les plugins ».
  • Dans l’onglet disponible, recherchez « Publier sur SSH ».
  • Installer sans redémarrage.

Photo24

  1. Ajout d’un serveur docker dans Jenkins:

Nous devons ajouter un serveur docker dans Jenkins afin que Jenkins puisse déployer des fichiers war sur le conteneur.

  • Sur la console Jenkins, cliquez sur « Gérer Jenkins ».
  • Cliquez sur « Configurer le système ».
  • En bas, cliquez sur l’onglet « Ajouter SSH »
  • Entrez le dockeradmin comme nom d’utilisateur, mot de passe et adresse IP privée du serveur Docker ici.

Photo25

  1. Création du job Jenkins :

  • Sur la console Jenkins, cliquez sur « Nouvel élément »
  • Sélectionnez le travail de style libre et ok.
  • Dans la gestion du code source, ajoutez l’url git comme « https://github.com/Vijaygawate/docker_app_deployment.git”
    Ceci est le dépôt de démonstration que j’ai créé pour ce projet.
  • Sélectionnez la branche comme « principale ».
  • Dans la section de construction, ajoutez « paquet d’installation propre » sous les objectifs et les options.
  • Dans l’action de post-construction, ajoutez « cd /opt/docker » et « docker build -t docker_demo ». sous la section des commandes exec.
  • Ajoutez à nouveau l’action de post-construction et la commande mentionnée pour créer un conteneur à partir de l’image de construction.
    commande : docker run -d –name docker_demo -p 8090:8080 docker_demo

Photo26

Photo27

  1. Construire le travail de Jenkins :
    Avec les configurations ci-dessus, construisez le travail Jenkins et nous devrions avoir réussi à construire notre travail.Photo28
  1. Accéder à l’application sur le navigateur
    Accédez à l’application avec l’URL ci-dessous
     : 8090/webapps
    Et nous pourrons voir le contenu de l’application

Image29

Conclusion:
Comme nous pouvons le voir dans l’approche ci-dessus, l’application Java a été déployée avec succès sur le serveur Tomcat dans le conteneur Docker. De plus, avec cette approche, nous pouvons réduire le temps de déploiement de n’importe quelle application.






Source link