Crear, cargar e implementar la aplicación - Guía de incorporación avanzada de AMS

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.

Crear, cargar e implementar la aplicación

En primer lugar, cree un paquete de WordPress aplicaciones y, a continuación, utilice el CodeDeploy CTs para crear e implementar la aplicación.

  1. Descargue WordPress, extraiga los archivos y cree un. directorio /scripts.

    Comando de Linux:

    wget https://github.com/WordPress/WordPress/archive/master.zip

    Windows: pégalo https://github.com/WordPress/WordPress/archive/master.zip en una ventana del navegador y descarga el archivo zip.

    Cree un directorio temporal en el que ensamblar el paquete.

    Linux:

    mkdir /tmp/WordPress

    Windows: cree un directorio WordPress «», utilizará la ruta del directorio más adelante.

  2. Extraiga la WordPress fuente al directorio WordPress «» y cree un. directorio /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 scripts

    Windows: vaya al directorio «WordPress» que creó y cree allí un directorio de «scripts».

    Si se encuentra en un entorno Windows, asegúrese de establecer el tipo de interrupción de los archivos de script en Unix (LF). En Notepad ++, esta opción se encuentra en la parte inferior derecha de la ventana.

  3. Cree el archivo CodeDeploy appspec.yml en el WordPress directorio (si va a copiar el ejemplo, compruebe la hendidura, cada espacio cuenta). IMPORTANTE: Asegúrese de que la ruta «fuente» sea correcta para copiar los WordPress archivos (en este caso, en su WordPress directorio) al destino esperado (/). var/www/html/WordPress En el ejemplo, el archivo appspec.yml está en el directorio con los WordPress archivos, por lo que solo se necesita «/». Además, aunque haya utilizado una AMI de RHEL para su grupo de Auto Scaling, deje la línea «os: linux» tal como está. Ejemplo de archivo 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
  4. Cree scripts de archivos bash en. WordPress directorio /scripts.

    En primer lugar, cree config_wordpress.sh con el siguiente contenido (si lo prefiere, puede editar el archivo wp-config.php directamente).

    nota

    DBNameSustitúyalo por el valor indicado en el RFC de HA Stack (por ejemplo,wordpress).

    DB_MasterUsernameSustitúyalo por el MasterUsername valor indicado en el RFC de HA Stack (por ejemplo,admin).

    DB_MasterUserPasswordSustitúyalo por el MasterUserPassword valor indicado en el RFC de HA Stack (por ejemplo,p4ssw0rd).

    DB_ENDPOINTSustitúyalo por el nombre DNS del punto final en los resultados de ejecución del RFC de la pila HA (por ejemplo,srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com). Puede encontrarlo en la GetRfcoperación (CLI: get-rfc --rfc-id RFC_ID) o en la página de detalles del RFC de la consola AMS para el RFC de la pila de alta disponibilidad que envió anteriormente.

    #!/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
  5. En install_dependencies.sh el mismo directorio, cree con el siguiente contenido:

    #!/bin/bash yum install -y php yum install -y php-mysql yum install -y mysql service httpd restart
    nota

    HTTPS se instala como parte de los datos del usuario en el momento del lanzamiento para permitir que las comprobaciones de estado funcionen desde el principio.

  6. En el mismo directorio, cree start_server.sh con el siguiente contenido:

    • Para las instancias de Amazon Linux, usa lo siguiente:

      #!/bin/bash service httpd start
    • Para las instancias de RHEL, usa esto (los comandos adicionales son políticas que permiten que SELINUX las acepte): 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
  7. En el mismo directorio, cree stop_server.sh con el siguiente contenido:

    #!/bin/bash service httpd stop
  8. Cree el paquete zip.

    Linux:

    $ cd /tmp/WordPress $ zip -r wordpress.zip .

    Windows: Ve a tu directorio WordPress «», selecciona todos los archivos y crea un archivo zip, asegúrate de llamarlo wordpress.zip.

  1. Cargue el paquete de aplicaciones en el bucket de S3.

    El paquete debe estar en su lugar para poder seguir desplegando la pila.

    Tendrá acceso automáticamente a cualquier instancia de bucket de S3 que cree. Puedes acceder a él a través de tus bastiones o a través de la consola S3 y cargar el WordPress paquete con el archivo zip drag-and-drop o buscarlo y seleccionarlo.

    También puedes usar el siguiente comando en una ventana de shell; asegúrate de tener la ruta correcta al archivo zip:

    aws s3 cp wordpress.zip s3://BUCKET_NAME/
  2. Implemente el paquete de WordPress aplicaciones.

    Si recopila los siguientes datos antes de empezar, la implementación será más rápida.

    DATOS NECESARIOS:

    • VPC-ID: Este valor determina dónde estará su bucket de S3. Use el mismo ID de VPC que utilizó anteriormente.

    • CodeDeployApplicationNameyCodeDeployApplicationName: El ApplicationName valor que utilizó en el RFC de pila de 2 niveles de HA estableció el y el CodeDeployApplicationName . CodeDeployDeploymentGroupName En el ejemplo se utiliza «WordPress», pero es posible que haya utilizado un valor diferente.

    • S3Location: ParaS3Bucket, usa el BucketName que creaste anteriormente. Los S3BundleType y S3Key son del paquete que pusiste en tu tienda S3.

    1. Genera el esquema JSON de los parámetros de ejecución para la CodeDeploy aplicación Deploy Params.json en un archivo JSON denominado Deploy CDApp Params.json.

      aws amscm get-change-type-version --change-type-id "ct-2edc3sd1sqmrb" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > DeployCDAppParams.json
    2. Modifique el esquema de la siguiente manera y guárdelo como, puede eliminar y reemplazar el contenido.

      { "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" } } } }
    3. Envía la plantilla JSON CreateRfc a un archivo, en tu carpeta actual, denominado Deploy CDApp RFC.json:

      aws amscm create-rfc --generate-cli-skeleton > DeployCDAppRfc.json
    4. Modifica y guarda el archivo Deploy CDApp RFC.json. Puedes eliminar y reemplazar el contenido. Tenga en cuenta que RequestedStartTime ahora RequestedEndTime son opcionales; al excluirlos, se crea un RFC ASAP que se ejecuta tan pronto como se aprueba (lo que normalmente ocurre automáticamente). Para enviar una RFC programada, añada esos valores.

      { "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-2edc3sd1sqmrb", "Title": "CD-Deploy-For-WP-RFC" }
    5. Cree la RFC especificando el archivo CDApp Rfc de despliegue y el archivo de parámetros de ejecución de Deploy CDApp Params:

      aws amscm create-rfc --cli-input-json file://DeployCDAppRfc.json --execution-parameters file://DeployCDAppParams.json

      Recibirá el RfcId nuevo RFC en la respuesta. Guarde el ID para los pasos siguientes.

    6. Envíe el RFC:

      aws amscm submit-rfc --rfc-id RFC_ID

      Si la RFC es correcta, no recibirá ningún resultado.

    7. Para comprobar el estado del RFC, ejecute

      aws amscm get-rfc --rfc-id RFC_ID