Paso 2: Configure el contenido fuente para implementarlo en la EC2 instancia Amazon de Amazon Linux o Red Hat Enterprise Linux - AWS CodeDeploy

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 2: Configure el contenido fuente para implementarlo en la EC2 instancia Amazon de Amazon Linux o Red Hat Enterprise Linux

Ha llegado el momento de configurar el contenido de origen de su aplicación para tener algo que implementar en la instancia.

Obtener el código fuente

Para este tutorial, debes implementar la plataforma de publicación de WordPress contenido desde tu máquina de desarrollo en la EC2 instancia de Amazon de destino. Para obtener el código WordPress fuente, puedes usar llamadas de línea de comandos integradas. O bien, si tiene instalado Git en su equipo de desarrollo, puede utilizarlo en su lugar.

Para estos pasos, suponemos que has descargado una copia del código WordPress fuente en el /tmp directorio de tu máquina de desarrollo. (Puede elegir cualquier directorio que desee, pero no olvide sustituir la ubicación por /tmp siempre que se especifique en estos pasos).

Elige una de las dos opciones siguientes para copiar los archivos WordPress fuente a tu máquina de desarrollo. La primera opción utiliza llamadas a línea de comandos integradas. La segunda opción utiliza Git.

Para obtener una copia del código WordPress fuente (llamadas de línea de comandos integradas)

  1. Ejecute el wget comando para descargar una copia del código WordPress fuente, en forma de archivo.zip, en el directorio actual:

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. Ejecute los comandos unzip, mkdir, cp y rm para:

    • Descomprimir el archivo .zip master en el directorio (carpeta) /tmp/WordPress_Temp.

    • Copiar el contenido descomprimido en la carpeta de destino /tmp/WordPress.

    • Eliminar la carpeta temporal /tmp/WordPress_Temp y el archivo master.

    Ejecute los comandos de uno en uno:

    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

    Esto deja un conjunto limpio de archivos de código WordPress fuente en la /tmp/WordPress carpeta.

Para obtener una copia del código WordPress fuente (Git)

  1. Descargue e instale Git en el equipo de desarrollo.

  2. En la carpeta /tmp/WordPress, ejecute el comando git init.

  3. Ejecuta el git clone comando para clonar el WordPress repositorio público y haz tu propia copia del mismo en la carpeta de /tmp/WordPress destino:

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

    Esto deja un conjunto limpio de archivos de código WordPress fuente en la /tmp/WordPress carpeta.

Crear scripts para ejecutar la aplicación

A continuación, cree una carpeta y scripts en el directorio. CodeDeploy utiliza estos scripts para configurar e implementar la revisión de la aplicación en la EC2 instancia de Amazon de destino. Puede utilizar cualquier editor de texto para crear los scripts.

  1. Crea un directorio de scripts en tu copia del código WordPress fuente:

    mkdir -p /tmp/WordPress/scripts
  2. Cree un archivo install_dependencies.sh en /tmp/WordPress/scripts. Añada las líneas siguientes al archivo. Este install_dependencies.sh script instala ApacheSQL, My yPHP. También añade Mi SQL soporte aPHP.

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. Cree un archivo start_server.sh en /tmp/WordPress/scripts. Añada las líneas siguientes al archivo. Este start_server.sh script inicia Apache y MySQL.

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. Cree un archivo stop_server.sh en /tmp/WordPress/scripts. Añada las líneas siguientes al archivo. Este stop_server.sh script detiene Apache y 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. Cree un archivo create_test_db.sh en /tmp/WordPress/scripts. Añada las líneas siguientes al archivo. Este create_test_db.sh script usa My SQL para crear una test base de datos WordPress para su uso.

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. Por último, cree un script change_permissions.sh en /tmp/WordPress/scripts. Esto se utiliza para cambiar los permisos de carpeta en Apache.

    importante

    Este script ha actualizado los permisos de la carpeta /tmp/WordPress de modo que cualquiera pueda escribir en ella. Esto es necesario para WordPress poder escribir en su base de datos durantePaso 5: Actualizar y volver a implementar la aplicación WordPress . Una vez configurada la WordPress aplicación, ejecute el siguiente comando para actualizar los permisos a una configuración más segura:

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. Conceda permisos ejecutables a todos los scripts. En la línea de comando, escriba:

    chmod +x /tmp/WordPress/scripts/*

Añadir un archivo de especificación de la aplicación

A continuación, añada un archivo de especificaciones de la aplicación (AppSpec archivo), un archivo YAMLcon formato que se utiliza para: CodeDeploy

  • Asigne los archivos fuente de la revisión de su aplicación a sus destinos en la EC2 instancia de Amazon de destino.

  • Especificar permisos personalizados para los archivos implementados.

  • Especifique los scripts que se ejecutarán en la EC2 instancia de Amazon de destino durante la implementación.

El AppSpec archivo debe tener un nombreappspec.yml. Debe colocarse en el directorio raíz del código fuente de la aplicación. En este tutorial, el directorio raíz es /tmp/WordPress.

Mediante su editor de texto, cree un archivo denominado appspec.yml. Añada las líneas siguientes al archivo:

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 usa este AppSpec archivo para copiar todos los archivos de la /tmp/WordPress carpeta de la máquina de desarrollo a la /var/www/html/WordPress carpeta de la EC2 instancia de Amazon de destino. Durante la implementación, CodeDeploy ejecuta los scripts especificados como root en la /var/www/html/WordPress/scripts carpeta de la EC2 instancia de Amazon de destino en eventos específicos durante el ciclo de vida de la implementación, como BeforeInstall yAfterInstall. Si alguno de estos scripts tarda más de 300 segundos (5 minutos) en ejecutarse, CodeDeploy detiene el despliegue y marca el despliegue como fallido.

Para obtener más información sobre la configuración, consulte CodeDeploy AppSpec referencia de archivo.

importante

Las ubicaciones y el número de espacios entre cada uno de los elementos de este archivo son importantes. Si el espaciado es incorrecto, se produce CodeDeploy un error que puede ser difícil de depurar. Para obtener más información, consulte AppSpec Espaciado de archivos.