Comment automatiser les déploiements WordPress simultanés dans plusieurs serveurs Linux en utilisant ANSIBLE - PARTIE 3

Comment automatiser les déploiements WordPress simultanés dans plusieurs serveurs Linux en utilisant ANSIBLE - PARTIE 3

Dans les deux articles précédents Anable série, nous avons expliqué comment installer et configurer Anable Pour exécuter les commandes et effectuer des tâches complexes dans plusieurs serveurs distants simultanément.

Automatiser plusieurs installations WordPress en utilisant ANSIBLE - PARTIE 3

Dans le tutoriel actuel, nous expliquerons comment configurer Wordpress Dans les mêmes serveurs distants:

Node1: 192.168.0.29 Node2: 192.168.0.30 

où nous avons installé, activé et commencé Apache (vous savez probablement maintenant pourquoi nous avons choisi de travailler avec un serveur Web comme premier exemple dans le dernier tutoriel).

Je vous encourage fortement à lire Partie 1 et Partie 2 avant de poursuivre afin de vous assurer que vous familiarisez avec les concepts associés à ANSIBLE.

Comment installer et configurer l'outil d'automatisation «Ansible» pour la gestion informatique - partie 1

Comment utiliser des livres de jeu anisbles pour automatiser les tâches complexes sur plusieurs serveurs distants - partie 2

Étape 1: Présentation des rôles anibles

Lorsque vous commencez à ajouter de plus en plus de tâches aux pièces, votre Manuels peut devenir de plus en plus difficile à gérer. Pour cette raison, l'approche recommandée dans ces situations (en fait, dans tous les cas) est d'utiliser une structure de répertoire qui contient les directives de chaque groupe de tâches dans des fichiers distincts.

Cette approche nous permet de réutiliser ces fichiers de configuration dans des projets séparés plus loin sur la route. Chacun de ces fichiers définit ce qu'on appelle dans le Écosystème anable un rôle.

Dans notre cas, nous créerons deux rôles. L'un d'eux (appelé dépendances de WP) sera utilisé pour installer les dépendances WordPress (Php et Mariadb - Pas besoin d'installer Apache car il est déjà installé).

L'autre rôle (nommé WP-install-config) inclura toutes les tâches nécessaires associées à l'installation et à la configuration de WordPress.

Étape 2: Création de rôles anibles

Anible est livré avec un utilitaire appelé galaxie anable Cela nous aidera à créer la structure du répertoire pour nos rôles. Nous ferons cela dans / etc / anible / playbooks (dans lequel nous avons créé Partie 2) mais en théorie, vous pouvez le configurer dans un autre répertoire si vous le souhaitez.

# cd / etc / anible / playbooks # ANSIBLE-GALAXY INIT WP-Dépendances # ANSIBLE-GALAXY INIT WP-INSTALL-CONFIG 
Anible: créer des rôles wordpress

Next confirme les rôles nouvellement créés.

# ls -r / etc / anible / playbooks 
ANNIBLE: confirmer la structure du répertoire WordPress

Dans l'image ci-dessus, nous pouvons voir que galaxie anable a créé deux répertoires avec le même nom que nos rôles et d'autres sous-répertoires (par défaut, des dossiers, gestionnaires, méta, Tâches, modèles, et varbac) et un Réadmettre.Maryland fichier à l'intérieur de chacun d'eux.

De plus, un fichier YAML nommé principal.YML a été créé dans tous les répertoires énumérés plus tôt, à l'exception des fichiers et des modèles.

Nous commencerons par modifier les fichiers de configuration suivants comme indiqué:

1. / etc / ANSIBLE / PlayBooks / WP Dépendances / tâches / Main.YML. Notez que nous incluons httpd Au cas où vous n'auriez pas suivi avec les tutoriels précédents de cette série.

principal.YML
--- # Fichier de tâches pour les dépenses WP - Nom: Packages de mise à jour (Ceci est équivalent à Yum Update -y) yum: name = * State = Dermter - Name: Install Dependces pour wordpress yum: name = item state = présent avec_items : - Httpd - MariaDb-Server - MariaDB - PHP - PHP-MYSQL - MySQL-Python - Nom: Assurez-vous que MariaDB exécute (et activez-le au démarrage) Service: Name = MariaDb State = démarré activé = Oui - Nom: Copie ~ /.mon.CNF aux nœuds Copie: src = / root /.mon.cnf dest = / root /.mon.CNF - Nom: Créez la base de données MARIADB MYSQL_DB: NAME = WP_MYSQL_DB State = Present - Name: Create MariaDB Username and Password MySql_User: Login_User = ROOT LOGIN_PASSWORD = YORMARIADBROOTPASSWORDHERE CHAP = *.*:TOUS 

2. / etc / anible / playbooks / wp-dépendances / par défaut / Main.YML

principal.YML
--- # Fichier par défaut pour les dépendances WP WP_MYSQL_DB: MYWP WP_MYSQL_USER: WPUSER WP_MYSQL_PASSWORD: WPP4SSS 

3. / etc / anible / playbooks / wp-stall-config / tâches / main.YML:

principal.YML
--- # Fichier de tâches pour WP-Install-Config - Nom: Créer un répertoire pour télécharger WordPress Commande: Mkdir -P / Opt / Source / WordPress - Nom: Télécharger WordPress get_url: url = https: // www.wordpress.org / dernier.le goudron.gz dest = / opt / source / wordpress / wordpress.le goudron.gz validate_certs = no - Nom: Extrait WordPress Commande: "TAR XZF / OPT / Source / WordPress / WordPress.le goudron.gz -c / var / www / html - strip-components 1 "- nom: envoyer la configuration de la copie du fichier: src = / root / wp-config-échantillon.php dest = / var / www / html / wp-config.Mode PHP = 0644 

4. WP-Config-échantillon.php (fourni dans cette pastebin) comme suit et l'enregistrez sur votre machine de contrôleur ANSIBL (comme vous pouvez le voir dans la dernière directive de copie ci-dessus, je l'ai téléchargée dans le répertoire domestique du SuperUser (/ root / wp-config-échantillon.php).

Important: Veuillez noter que la valeur des variables Db_name, Db_user, et Db_password sont les mêmes que dans / etc / anible / playbooks / wp-dépendances / par défaut / Main.YML:

WP-Config-échantillon.php
… / ** Le nom de la base de données pour WordPress * / Define ('db_name', 'mywp'); / ** Nom d'utilisateur de base de données MySQL * / Define ('DB_USER', 'WPUSER'); / ** Mot de passe de la base de données MySQL * / Define ('db_password', 'wpp4ss');… 

5. Pour de nouvelles installations de serveurs de base de données où le mot de passe racine est vide, comme dans ce cas, malheureusement, nous devons configurer le mot de passe pour la racine de l'utilisateur individuellement dans chaque machine via mysql_secure_installation.

Pour autant que je sache, il n'y a pas de solution de contournement disponible qui vous permettra de configurer le mot de passe racine via Anable Dans la même étape où vous créez le compte de base de données administrative pour WordPress.

Assurez-vous d'utiliser le même mot de passe chez tous les hôtes, puis copier les informations d'identification dans /racine/.mon.CNF (L'emplacement réel peut différer dans votre cas, mais dans tous les cas, il doit correspondre à la valeur du SRC paramètre pour la tâche Copie ~ /.mon.CNF aux nœuds dans / etc / ANSIBLE / PlayBooks / WP Dépendances / tâches / Main.YML).

Dans ce fichier (voir ci-dessus), nous avons supposé que le mot de passe pour root est YourMariAdBrootPassword.

Mot de passe de base de données ANSIBLE

6. Ensuite, notre livre de jeu (/ etc / anible / playbooks / playbook.YML) sera beaucoup plus organisé et simple par rapport au tutoriel précédent:

# Cat Playbook.YML 
Playbooks WordPress anible
- Hôtes: Rôles de serveurs: - Dépendances WP - WP-Install-Config 

Enfin, il est temps d'exécuter ces tâches en invoquant notre livre de jeu:

# ANSIBLE-PLAYbook Playbook.YML 

Vérifions maintenant si nous pouvons accéder à la page d'administration WordPress à l'aide des adresses IP de Node1 192.168.0.29 et Node2 192.168.0.30:

Installation de WordPress ansible

Vous pouvez afficher les deux dernières étapes du screencast suivant:

Comme vous pouvez le voir, vous pouvez configurer plusieurs installations WordPress avec peu ou pas d'efforts en utilisant Anable. Alors vous pouvez utiliser le respect Administrer Interface utilisateur pour configurer chaque site séparément.

Considérations finales

Si vous utilisez une autre distribution à déployer Wordpress, Le nom des packages peut varier, mais il revient à installer le serveur Web Apache, le serveur de base de données MARIADB et le module Python MySQL. Si tel est le cas, utilisez le système de gestion des logiciels de votre distribution pour rechercher le nom exact du package que vous devez installer.

Résumé

Dans cette série, nous avons expliqué comment utiliser Anable Pour exécuter les commandes et exécuter des tâches complexes dans plusieurs machines Linux simultanément.

L'un de ces exemples est la mise en place Wordpress, Comme nous l'avons discuté dans ce guide. Que vous soyez un administrateur système ou un blogueur, j'espère que vous avez trouvé utile les concepts et les exemples de ce tutoriel.

Bonne chance et n'hésitez pas à nous laisser tomber si vous avez besoin d'aide ou si vous avez des commentaires ou des suggestions!