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.
Création, téléchargement et déploiement de l'application
Créez d'abord un bundle d' WordPress applications, puis utilisez-le CodeDeploy CTs pour créer et déployer l'application.
Téléchargez WordPress, extrayez les fichiers et créez un. répertoire /scripts.
Commande Linux :
wget https://github.com/WordPress/WordPress/archive/master.zipWindows : collez
https://github.com/WordPress/WordPress/archive/master.ziple fichier dans une fenêtre de navigateur et téléchargez le fichier zip.Créez un répertoire temporaire dans lequel assembler le package.
Linux :
mkdir /tmp/WordPressWindows : Créez un répertoire WordPress « », vous utiliserez le chemin du répertoire ultérieurement.
Extrayez la WordPress source dans le répertoire WordPress « » et créez un fichier. répertoire /scripts.
Linux :
unzip master.zip -d /tmp/WordPress_Temp cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress rm -rf /tmp/WordPress_Temp rm -f master cd /tmp/WordPress mkdir scriptsWindows : Accédez au répertoire « WordPress » que vous avez créé et créez-y un répertoire « scripts ».
Si vous êtes dans un environnement Windows, veillez à définir le type de rupture des fichiers de script sur Unix (LF). Dans Notepad ++, il s'agit d'une option en bas à droite de la fenêtre.
Créez le fichier CodeDeploy appspec.yml dans le WordPress répertoire (si vous copiez l'exemple, vérifiez l'indentation, chaque espace compte). IMPORTANT : Assurez-vous que le chemin « source » est correct pour copier les WordPress fichiers (dans ce cas, dans votre WordPress répertoire) vers la destination prévue (/var/www/html/WordPress). Dans l'exemple, le fichier appspec.yml se trouve dans le répertoire contenant les WordPress fichiers, donc seul «/» est nécessaire. De plus, même si vous avez utilisé une AMI RHEL pour votre groupe Auto Scaling, laissez la ligne « os : linux » telle quelle. Exemple de fichier appspec.yml :
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/config_wordpress.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root-
Créez des scripts de fichiers bash dans le WordPress . répertoire /scripts.
Commencez
config_wordpress.shpar créer avec le contenu suivant (si vous préférez, vous pouvez modifier directement le fichier wp-config.php).Note
Remplacez
DBNamepar la valeur indiquée dans la RFC HA Stack (par exemple,wordpress).Remplacez
DB_MasterUsernamepar laMasterUsernamevaleur indiquée dans la RFC HA Stack (par exemple,admin).Remplacez
DB_MasterUserPasswordpar laMasterUserPasswordvaleur indiquée dans la RFC HA Stack (par exemple,p4ssw0rd).DB_ENDPOINTRemplacez-le par le nom DNS du point de terminaison dans les sorties d'exécution de la HA Stack RFC (par exemple,srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com). Vous pouvez le trouver dans l'GetRfcopération (CLI : get-rfc --rfc-id RFC_ID) ou dans la page de détails de la RFC de la console AMS pour la RFC HA Stack que vous avez précédemment soumise.#!/bin/bash chmod -R 755 /var/www/html/WordPress cp /var/www/html/WordPress/wp-config-sample.php /var/www/html/WordPress/wp-config.php cd /var/www/html/WordPress sed -i "s/database_name_here/DBName/g" wp-config.php sed -i "s/username_here/DB_MasterUsername/g" wp-config.php sed -i "s/password_here/DB_MasterUserPassword/g" wp-config.php sed -i "s/localhost/DB_ENDPOINT/g" wp-config.php Dans le même répertoire, créez
install_dependencies.shavec le contenu suivant :#!/bin/bash yum install -y php yum install -y php-mysql yum install -y mysql service httpd restartNote
Le protocole HTTPS est installé dans les données utilisateur au lancement afin de permettre aux contrôles de santé de fonctionner dès le départ.
Dans le même répertoire, créez
start_server.shavec le contenu suivant :Pour les instances Amazon Linux, utilisez ceci :
#!/bin/bash service httpd startPour les instances RHEL, utilisez ceci (les commandes supplémentaires sont des politiques qui autorisent SELINUX à accepter) : WordPress
#!/bin/bash setsebool -P httpd_can_network_connect_db 1 setsebool -P httpd_can_network_connect 1 chcon -t httpd_sys_rw_content_t /var/www/html/WordPress/wp-content -R restorecon -Rv /var/www/html service httpd start
Dans le même répertoire, créez
stop_server.shavec le contenu suivant :#!/bin/bash service httpd stopCréez le bundle zip.
Linux :
$ cd /tmp/WordPress $ zip -r wordpress.zip .Windows : Accédez à votre répertoire WordPress « », sélectionnez tous les fichiers et créez un fichier zip. N'oubliez pas de le nommer wordpress.zip.
Téléchargez le bundle d'applications dans le compartiment S3.
Le bundle doit être en place pour continuer à déployer la pile.
Vous avez automatiquement accès à toutes les instances de compartiment S3 que vous créez. Vous pouvez y accéder via vos bastions ou via la console S3, et télécharger le WordPress bundle avec le fichier zip drag-and-drop ou en le recherchant et en le sélectionnant.
Vous pouvez également utiliser la commande suivante dans une fenêtre shell ; assurez-vous que le chemin d'accès au fichier zip est correct :
aws s3 cp wordpress.zip s3://BUCKET_NAME/Déployez le bundle WordPress d'applications.
La collecte des données suivantes avant de commencer accélérera le déploiement.
DONNÉES REQUISES :
VPC-ID: Cette valeur détermine l'emplacement de votre compartiment S3. Utilisez le même ID VPC que celui que vous avez utilisé précédemment.CodeDeployApplicationNameetCodeDeployApplicationName: LaApplicationNamevaleur que vous avez utilisée dans la RFC HA 2-Tier Stack définit le CodeDeployApplicationName et le. CodeDeployDeploymentGroupName L'exemple utilise « WordPress », mais vous avez peut-être utilisé une valeur différente.S3Location: PourS3Bucket, utilisez celuiBucketNameque vous avez créé précédemment. LesS3BundleTypeetS3Keyproviennent du bundle que vous avez ajouté à votre boutique S3.
Exportez le schéma JSON des paramètres d'exécution pour le déploiement de CodeDeploy l'application CT dans un fichier JSON nommé Deploy CDApp Params.json.
aws amscm get-change-type-version --change-type-id "ct-2edc3sd1sqmrb" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > DeployCDAppParams.jsonModifiez le schéma comme suit et enregistrez-le sous le nom, vous pouvez supprimer et remplacer le contenu.
{ "Description": "DeployWPCDApp", "VpcId": "VPC_ID", "Name": "WordPressCDAppDeploy", "TimeoutInMinutes": 60, "Parameters": { "CodeDeployApplicationName": "WordPress", "CodeDeployDeploymentGroupName": "WordPress", "CodeDeployIgnoreApplicationStopFailures": false, "CodeDeployRevision": { "RevisionType": "S3", "S3Location": { "S3Bucket": "BUCKET_NAME", "S3BundleType": "zip", "S3Key": "wordpress.zip" } } } }Exportez le modèle JSON CreateRfc pour dans un fichier, dans votre dossier actuel, nommé Deploy CDApp RFC.json :
aws amscm create-rfc --generate-cli-skeleton > DeployCDAppRfc.jsonModifiez et enregistrez le fichier Deploy CDApp RFC.json, vous pouvez supprimer et remplacer le contenu. Notez que
RequestedStartTimeetRequestedEndTimesont désormais facultatifs ; leur exclusion crée une RFC ASAP qui s'exécute dès qu'elle est approuvée (ce qui se produit généralement automatiquement). Pour soumettre une RFC planifiée, ajoutez ces valeurs.{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-2edc3sd1sqmrb", "Title": "CD-Deploy-For-WP-RFC" }Créez le RFC en spécifiant le fichier Deploy CDApp Rfc et le fichier de paramètres d'exécution de Deploy CDApp Params :
aws amscm create-rfc --cli-input-json file://DeployCDAppRfc.json --execution-parameters file://DeployCDAppParams.jsonVous recevez RfcId le nouveau RFC dans la réponse. Enregistrez l'identifiant pour les étapes suivantes.
Soumettez le RFC :
aws amscm submit-rfc --rfc-idRFC_IDSi la RFC réussit, vous ne recevrez aucune sortie.
Pour vérifier l'état de la RFC, exécutez
aws amscm get-rfc --rfc-idRFC_ID