Fase 2: configura il contenuto sorgente da distribuire sull'istanza Amazon Linux o Red Hat Enterprise Linux Amazon EC2 - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fase 2: configura il contenuto sorgente da distribuire sull'istanza Amazon Linux o Red Hat Enterprise Linux Amazon EC2

È ora possibile configurare l'applicazione dei contenuti di origine in modo da avere materiale da distribuire all'istanza.

Ottieni il codice sorgente

In questo tutorial, distribuisci la piattaforma di pubblicazione WordPress dei contenuti dalla tua macchina di sviluppo all'istanza Amazon EC2 di destinazione. Per ottenere il codice WordPress sorgente, puoi utilizzare chiamate da riga di comando integrate. In alternativa, si può usare Git se è installato nel computer di sviluppo.

Per questi passaggi, supponiamo che tu abbia scaricato una copia del codice WordPress sorgente /tmp nella directory del tuo computer di sviluppo. È possibile scegliere una directory qualsiasi, ma ci si deve ricordare di sostituire la posizione per /tmp nel punto specificato in queste fasi.

Scegli una delle due opzioni seguenti per copiare i file WordPress sorgente sulla tua macchina di sviluppo. La prima opzione utilizza le chiamate della riga di comando integrata. La seconda usa Git.

Per ottenere una copia del codice WordPress sorgente (chiamate da riga di comando integrate)

  1. Chiamate il wget comando per scaricare una copia del codice WordPress sorgente, come file.zip, nella directory corrente:

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. Chiamare i comandi unzip, mkdir, cp e rm per:

    • Decomprimere il file .zip master nella directory (cartella) /tmp/WordPress_Temp.

    • Copiare i contenuti estratti dallo zip nella cartella di destinazione /tmp/WordPress.

    • Eliminare la cartella temporanea /tmp/WordPress_Temp e il file master.

    Eseguire uno alla volta i comandi:

    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

    Questo ti lascia con un set pulito di file di codice WordPress sorgente nella /tmp/WordPress cartella.

Per ottenere una copia del codice WordPress sorgente (Git)

  1. Scaricare e installare Git sul computer di sviluppo.

  2. Nella cartella /tmp/WordPress, chiamare il comando git init.

  3. Chiamate il git clone comando per clonare l' WordPressarchivio pubblico, creandone una copia nella cartella di /tmp/WordPress destinazione:

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

    Questo ti lascia con un set pulito di file di codice WordPress sorgente nella /tmp/WordPress cartella.

Crea script per eseguire la tua applicazione

Quindi, crea una cartella e degli script nella directory. CodeDeploy utilizza questi script per configurare e distribuire la revisione dell'applicazione sull'istanza Amazon EC2 di destinazione. È possibile usare qualsiasi editor di testo per creare gli script.

  1. Crea una directory di script nella tua copia del codice sorgente: WordPress

    mkdir -p /tmp/WordPress/scripts
  2. Creare un file install_dependencies.sh in /tmp/WordPress/scripts. Aggiungere le seguenti righe al file. Questo script install_dependencies.sh installa Apache, MySQL e PHP. Aggiunge inoltre il supporto MySQL a PHP.

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. Creare un file start_server.sh in /tmp/WordPress/scripts. Aggiungere le seguenti righe al file. Questo script start_server.sh avvia Apache e MySQL.

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. Creare un file stop_server.sh in /tmp/WordPress/scripts. Aggiungere le seguenti righe al file. Questo script stop_server.sh arresta Apache e 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. Creare un file create_test_db.sh in /tmp/WordPress/scripts. Aggiungere le seguenti righe al file. Questo create_test_db.sh script utilizza MySQL per creare test un database WordPress da utilizzare.

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. Infine creare uno script change_permissions.sh in /tmp/WordPress/scripts. Questo viene utilizzato per modificare le autorizzazioni per la cartella in Apache.

    Importante

    Questo script ha aggiornato le autorizzazioni nella cartella /tmp/WordPress in modo che tutti possano scriverci. Questo è necessario per WordPress poter scrivere nel suo database durante. Fase 5: Aggiornare e ridistribuire l'applicazione WordPress Dopo aver configurato l' WordPress applicazione, esegui il comando seguente per aggiornare le autorizzazioni a un'impostazione più sicura:

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. Assegnare autorizzazioni eseguibili a tutti gli script. Sulla riga di comando, digitare:

    chmod +x /tmp/WordPress/scripts/*

Aggiungere un file di specifiche dell'applicazione

Quindi, aggiungete un file di specifiche dell'applicazione (AppSpec file), un file in formato YAML utilizzato da per: CodeDeploy

  • Mappa i file di origine nella revisione dell'applicazione alle relative destinazioni sull'istanza Amazon EC2 di destinazione.

  • Specificare autorizzazioni personalizzate per i file distribuiti.

  • Specificare gli script da eseguire sull'istanza Amazon EC2 di destinazione durante la distribuzione.

Il AppSpec file deve avere un nome. appspec.yml Deve essere inserito nella directory root del codice sorgente dell'applicazione. In questo tutorial, la directory root è /tmp/WordPress.

Con un editor di testo, creare un file denominato appspec.yml. Aggiungere le seguenti righe al file:

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 utilizza questo AppSpec file per copiare tutti i file nella /tmp/WordPress cartella sulla macchina di sviluppo nella /var/www/html/WordPress cartella sull'istanza Amazon EC2 di destinazione. Durante la distribuzione, CodeDeploy esegue gli script specificati come root nella /var/www/html/WordPress/scripts cartella sull'istanza Amazon EC2 di destinazione in occasione di eventi specifici durante il ciclo di vita della distribuzione, ad esempio e. BeforeInstall AfterInstall Se l'esecuzione di uno di questi script impiega più di 300 secondi (5 minuti), CodeDeploy interrompe la distribuzione e contrassegna la distribuzione come fallita.

Per ulteriori informazioni su queste impostazioni, consulta i CodeDeploy AppSpec riferimento al file.

Importante

Le ubicazioni e i numeri di spazi tra ciascuna delle voci in questo file sono importanti. Se la spaziatura non è corretta, CodeDeploy genera un errore di cui potrebbe essere difficile eseguire il debug. Per ulteriori informazioni, consulta AppSpec Spaziatura tra i file.