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' EC2 instance Amazon Amazon 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.
Rubriques
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' EC2 instance Amazon 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.
Rubriques
Pour obtenir une copie du code WordPress source (appels de ligne de commande intégrés)
-
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 -
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_Temptemporaire et le fichiermaster.
Exécutez une par une les commandes :
unzip master -d /tmp/WordPress_Tempmkdir -p /tmp/WordPresscp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPressrm -rf /tmp/WordPress_Temprm -f masterCela vous laisse un ensemble propre de fichiers de code WordPress source dans le
/tmp/WordPressdossier. -
Pour obtenir une copie du code WordPress source (Git)
-
Téléchargez et installez Git
sur votre machine de développement. -
Dans le dossier
/tmp/WordPress, appelez la commande git init. -
Appelez la git clone commande pour cloner le WordPress dépôt public, en créant votre propre copie dans le dossier de
/tmp/WordPressdestination :git clone https://github.com/WordPress/WordPress.git /tmp/WordPressCela vous laisse un ensemble propre de fichiers de code WordPress source dans le
/tmp/WordPressdossier.
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' EC2 instance Amazon cible. Vous pouvez utiliser un éditeur de texte quelconque pour créer ces scripts.
-
Créez un répertoire de scripts dans votre copie du code WordPress source :
mkdir -p /tmp/WordPress/scripts -
Créez un fichier
install_dependencies.shdans/tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce scriptinstall_dependencies.shinstalle 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 -
Créez un fichier
start_server.shdans/tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce scriptstart_server.shdémarre Apache et MySQL.#!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service -
Créez un fichier
stop_server.shdans/tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Ce scriptstop_server.sharrê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 -
Créez un fichier
create_test_db.shdans/tmp/WordPress/scripts. Ajoutez les lignes suivantes dans le fichier. Cecreate_test_db.shscript utilise MySQL pour créer unetestbase de données WordPress à utiliser.#!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB -
Enfin, créez un script
change_permissions.shdans/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/WordPresspour 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 -
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
-
Mappez les fichiers source de la révision de votre application à leurs destinations sur l' EC2 instance Amazon cible.
-
spécifier des autorisations personnalisées pour les fichiers déployés ;
-
Spécifiez les scripts à exécuter sur l' EC2 instance Amazon 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' EC2 instance Amazon cible. Pendant le 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' EC2 instance Amazon cible lors d'événements spécifiques du cycle de vie du déploiement, tels que BeforeInstall etAfterInstall. 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 de plus amples informations, veuillez consulter AppSpec Espacement des fichiers.