L'un des projets les plus récents que j'ai réalisés était un projet d'examen pour un programme d'ingénierie cloud que je suis en train de suivre. Il nous a été demandé de :
Assurez-vous que le script bash est réutilisable et lisible.
Utilisation d'un playbook Ansible :
Pour commencer ce projet, je dois provisionner deux serveurs Ubuntu nommés "Maître" et "Esclave" à l'aide de vagrant.
Je vais fournir Ubuntu 22.04 LTS pour le maître et l'esclave et j'utiliserai un environnement multi-machines, cela signifie essentiellement que je définirai deux machines virtuelles dans un seul fichier vagrant.
La première chose que je fais est d'initialiser la boîte, la boîte que j'utilise estUbuntu/jammy64et parce que j'utilise un environnement multi-machines, je passerai le-m(minimal) indicateur pour que le VagrantFile soit créé sans tous les commentaires.
init vagabond -m ubuntu/jammy64Lorsque j'ouvre le VagrantFile pour le modifier, nous pouvons voir qu'il n'a que la configuration de base sans tous les commentaires.
vi Fichier VagrantPour configurer mes VM, je vais entrer le code ci-dessous dans mon VagrantFile.
Vagrant.configure("2") faire |config| config.vm.define "master" faire |master| master.vm.box = "ubuntu/jammy64" master.vm.hostname = "master" master.vm.network "private_network", tapez : "dhcp" master.vm.network :forwarded_port, invité : 22, hôte : 2030, id : "ssh" master.vm.provider "virtualbox" faire |v| v.name = "Maître" end end config.vm.define "slave" do |slave| slave.vm.box = "ubuntu/jammy64" slave.vm.hostname = "slave" slave.vm.network "private_network", tapez : "dhcp" slave.vm.network :forwarded_port, invité : 22, hôte : 2032, id : "ssh" slave.vm.provider "virtualbox" faire |v| v.name = "Esclave" fin fin finDans le VagrantFile, j'ai simplement spécifié le type de boîtier de base avec lequel chaque VM serait créée, je me suis assuré qu'elles utilisaient un réseau privé et qu'elles obtenaient leur adresse IP du serveur DHCP. J'ai également spécifié le nom et le nom d'hôte de chaque VM.
Une autre chose que j'ai faite a été de coder en dur le port SSH hôte afin de gérer le conflit SSH qui se produirait, dès le saut, une autre raison pour laquelle j'ai fait cela est pour que le port n'entre pas en conflit avec les autres machines virtuelles que j'ai sur mon ordinateur portable. .
Pour provisionner les machines virtuelles, j'ai exécuté la commande
vagabonderÀ partir des images ci-dessous, vous pouvez voir que mes machines maître et esclave ont été provisionnées avec succès.
Pour y accéder et commencer à travailler avec, je me connecte en SSH en spécifiant leurs noms, comme indiqué ci-dessous
maître ssh vagabond esclave ssh vagabondUne pile LAMP est un acronyme pour le système d'exploitation Linux ; le serveur Web, Apache ; le serveur de base de données, MySQL ; et le langage de programmation, PHP.
Il s'agit d'une pile très courante que les développeurs utilisent pour créer des sites Web et des applications Web.
La tâche nous demandait d'écrire un script qui serait utilisé pour automatiser l'installation de la pile LAMP. Avec ce script, le déploiement de la pile LAMP ainsi que le déploiement de l'application Laravel seront entièrement automatisés, ce script sera écrit de manière à ne nécessiter aucune intervention de l'utilisateur. Je vais essayer d'expliquer ma logique en cours de route.
Retrouvez le script complet ici, pour créer votre script créez un nouveau fichier avec l'éditeur vi :
vi déployerlamp.shPour commencer, je souhaite que ce script cesse de s'exécuter chaque fois qu'il rencontre une erreur, car le déploiement réussi de l'application Laravel dépend de la présence de tous les composants de ce script sur le serveur. Pour ce faire, nous utiliserons ledéfinir -ecommande, démarrez votre script de cette façon.
#!/bin/bash # Cette commande fermera immédiatement le script si une commande se termine avec un statut différent de zéro -eEnsuite, nous mettrons à jour le référentiel apt afin que nos packages soient à jour.
# Mettre à jour le référentiel apt sudo apt updateNous arrivons enfin au début de l'événement principal, nous allons maintenant ajouter la commande qui installe Apache à notre script, comme mentionné précédemment, Apache est un serveur Web très populaire utilisé par les développeurs.
Pour installer Apache, ajoutez la commande ci-dessous à votre script
# Installez Apache et gérez les éventuelles erreurs echo "Installation d'Apache ======================================= ===============" echo sudo apt install -y apache2 || { echo "Erreur lors de l'installation d'Apache"; sortie 1 ; } echo "Apache installé avec succès ========================================" echoLes commandes echo sont là pour nous informer à chaque étape de ce que fait le script.
La commandesudo apt install -y apache2 || { echo "Erreur lors de l'installation d'Apache"; sortie 1 ; }installera Apache ou imprimera un message d'erreur selon que l'installation réussit ou non.
MySQL est un serveur de base de données SQL rapide, multithread, multi-utilisateurs et robuste. Il est destiné aux systèmes de production critiques à forte charge et aux logiciels déployés en masse.
Ajoutez ce qui suit à votre script bash.
# Installez MySQL et gérez les éventuelles erreurs echo "Installation de MySQL ======================================= ===============" echo sudo...
[Courte citation de 8% de l'article original]