Étape 2 : configurer votre contenu source à déployer sur l'instance Amazon EC2 Amazon Linux ou Red Hat Enterprise Linux - AWS CodeDeploy

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Étape 2 : configurer votre contenu source à déployer sur l'instance Amazon EC2 Amazon Linux ou Red Hat Enterprise Linux

Désormais, il est temps de configurer le contenu source de votre application pour que vous ayez quelque chose à déployer sur l'instance.

Obtenez le code source

Dans le cadre de ce didacticiel, vous déployez la plateforme de publication de WordPress contenu depuis votre machine de développement vers l'instance Amazon EC2 cible. Pour obtenir le code WordPress source, vous pouvez utiliser les appels de ligne de commande intégrés. Ou, si Git est installé sur votre machine de développement, vous pouvez l'utiliser à la place.

Pour ces étapes, nous supposons que vous avez téléchargé une copie du code WordPress source /tmp dans le répertoire de votre machine de développement. (Vous pouvez choisir n'importe quel répertoire, mais n'oubliez pas de remplacer /tmp par votre emplacement chaque fois que ce répertoire est spécifié dans ces étapes.)

Choisissez l'une des deux options suivantes pour copier les fichiers WordPress source sur votre machine de développement. La première option utilise des appels de ligne de commande intégrés. La deuxième option utilise Git.

Pour obtenir une copie du code WordPress source (appels de ligne de commande intégrés)

  1. Appelez la wget commande pour télécharger une copie du code WordPress source, sous forme de fichier .zip, dans le répertoire actuel :

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. Appelez les commandes unzip, mkdir, cp et rm pour :

    • Décompressez le fichier master.zip dans le répertoire (dossier) /tmp/WordPress_Temp.

    • Copiez son contenu décompressé dans le dossier de destination /tmp/WordPress.

    • Supprimez le dossier /tmp/WordPress_Temp temporaire et le fichier master.

    Exécutez une par une les commandes :

    unzip master -d /tmp/WordPress_Temp
    mkdir -p /tmp/WordPress
    cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
    rm -rf /tmp/WordPress_Temp
    rm -f master

    Cela vous laisse un ensemble propre de fichiers de code WordPress source dans le /tmp/WordPress dossier.

Pour obtenir une copie du code WordPress source (Git)

  1. Téléchargez et installez Git sur votre machine de développement.

  2. Dans le dossier /tmp/WordPress, appelez la commande git init.

  3. Appelez la git clone commande pour cloner le WordPress dépôt public, en créant votre propre copie dans le dossier de /tmp/WordPress destination :

    git clone https://github.com/WordPress/WordPress.git /tmp/WordPress

    Cela vous laisse un ensemble propre de fichiers de code WordPress source dans le /tmp/WordPress dossier.

Créez des scripts pour exécuter votre application

Créez ensuite un dossier et des scripts dans le répertoire. CodeDeploy utilise ces scripts pour configurer et déployer la révision de votre application sur l'instance Amazon EC2 cible. Vous pouvez utiliser un éditeur de texte quelconque pour créer ces scripts.

  1. Créez un répertoire de scripts dans votre copie du code WordPress source :

    mkdir -p /tmp/WordPress/scripts
  2. Créez un fichier install_dependencies.sh dans /tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce script install_dependencies.sh installe Apache, MySQL et PHP. Il ajoute également la prise en charge de MySQL à PHP.

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. Créez un fichier start_server.sh dans /tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce script start_server.sh démarre Apache et MySQL.

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. Créez un fichier stop_server.sh dans /tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce script stop_server.sh arrête Apache et MySQL.

    #!/bin/bash isExistApp=pgrep httpd if [[ -n $isExistApp ]]; then systemctl stop httpd.service fi isExistApp=pgrep mysqld if [[ -n $isExistApp ]]; then systemctl stop mariadb.service fi isExistApp=pgrep php-fpm if [[ -n $isExistApp ]]; then systemctl stop php-fpm.service fi
  5. Créez un fichier create_test_db.sh dans /tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce create_test_db.sh script utilise MySQL pour créer une test base de données WordPress à utiliser.

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. Enfin, créez un script change_permissions.sh dans /tmp/WordPress/scripts. Il permet de modifier les autorisations des dossiers dans Apache.

    Important

    Ce script a mis à jour les autorisations sur le dossier /tmp/WordPress pour que tout le monde puisse écrire dans celui-ci. Cela est nécessaire pour WordPress pouvoir écrire dans sa base de données pendantÉtape 5 : Mettez à jour et redéployez votre application WordPress . Une fois l' WordPress application configurée, exécutez la commande suivante pour mettre à jour les autorisations selon un paramètre plus sécurisé :

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. Fournissez à tous les scripts des autorisations d'exécution. Sur la ligne de commande, tapez :

    chmod +x /tmp/WordPress/scripts/*

Ajouter un fichier de spécification d'application

Ajoutez ensuite un fichier de spécification d'application (AppSpec fichier), un fichier au format YAML utilisé pour : CodeDeploy

  • Mappez les fichiers source de la révision de votre application à leurs destinations sur l'instance Amazon EC2 cible.

  • spécifier des autorisations personnalisées pour les fichiers déployés ;

  • Spécifiez les scripts à exécuter sur l'instance Amazon EC2 cible lors du déploiement.

Le AppSpec fichier doit être nomméappspec.yml. Il doit être placé dans le répertoire racine du code source de l'application. Dans ce didacticiel, le répertoire racine est /tmp/WordPress.

Grâce à votre éditeur de texte, créez un fichier nommé appspec.yml. Ajoutez les lignes suivantes dans le fichier :

version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

CodeDeploy utilise ce AppSpec fichier pour copier tous les fichiers du /tmp/WordPress dossier de la machine de développement vers le /var/www/html/WordPress dossier de l'instance Amazon EC2 cible. Au cours du déploiement, CodeDeploy exécute les scripts spécifiés tels qu'ils root figurent dans le /var/www/html/WordPress/scripts dossier de l'instance Amazon EC2 cible lors d'événements spécifiques du cycle de vie du déploiement, tels que BeforeInstall et. AfterInstall Si l'exécution de l'un de ces scripts prend plus de 300 secondes (5 minutes), CodeDeploy arrête le déploiement et marque le déploiement comme ayant échoué.

Pour plus d'informations sur ces paramètres, consultez la rubrique CodeDeploy AppSpec référence de fichier.

Important

Les emplacements et les nombres d'espaces entre les différents éléments de ce fichier sont importants. Si l'espacement est incorrect, CodeDeploy cela génère une erreur qui peut être difficile à déboguer. Pour plus d'informations, voir AppSpec Espacement des fichiers.