

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
<a name="ex-create-app"></a>

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.

1. 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.

1. 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
   ```

1. 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**  
{{DBName}}Sustitúyalo por el valor indicado en el RFC de HA Stack (por ejemplo,`wordpress`).  
{{DB\_MasterUsername}}Sustitúyalo por el `MasterUsername` valor indicado en el RFC de HA Stack (por ejemplo,`admin`).  
{{DB\_MasterUserPassword}}Sustitúyalo por el `MasterUserPassword` valor indicado en el RFC de HA Stack (por ejemplo,`p4ssw0rd`).  
{{DB\_ENDPOINT}}Sustitú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 [GetRfc](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_GetRfc.html)operació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
   ```

1. 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.

1. 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
     ```

1. En el mismo directorio, cree `stop_server.sh` con el siguiente contenido:

   ```
   #!/bin/bash
   service httpd stop
   ```

1. 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/
   ```

1. 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.
   + `CodeDeployApplicationName`y`CodeDeployApplicationName`: 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`: Para`S3Bucket`, 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
      ```

   1. 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" }
              }
          }
      }
      ```

   1. 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
      ```

   1. 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"
      }
      ```

   1. 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.

   1. Envíe el RFC:

      ```
      aws amscm submit-rfc --rfc-id {{RFC_ID}}
      ```

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

   1. Para comprobar el estado del RFC, ejecute

      ```
      aws amscm get-rfc --rfc-id {{RFC_ID}}
      ```