Etapa 2: configurar seu conteúdo de origem para ser implantado na instância Amazon Linux ou Red Hat Enterprise Linux instância do Amazon EC2 - AWS CodeDeploy

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Etapa 2: configurar seu conteúdo de origem para ser implantado na instância Amazon Linux ou Red Hat Enterprise Linux instância do Amazon EC2

Agora é hora de configurar o conteúdo de origem do seu aplicativo, para que você tenha algo para implantar na instância.

Obter o código-fonte

Para este tutorial, você implantará a plataforma de publicação de conteúdo WordPress da sua máquina de desenvolvimento na sua instância do Amazon EC2 de destino. Para obter o código-fonte do WordPress, você pode usar chamadas internas de linha de comando. Ou, se tiver o Git instalado na sua máquina de desenvolvimento, poderá usá-lo como alternativa.

Para estas etapas, partimos do princípio de que você tenha feito download de uma cópia do código-fonte do WordPress no diretório /tmp da sua máquina de desenvolvimento. (É possível escolher qualquer diretório desejado, mas lembre-se de substituir /tmp pela localização sempre que esse diretório for especificado nas etapas.)

Escolha uma das duas opções a seguir para copiar os arquivos de código-fonte do WordPress em sua máquina de desenvolvimento. A primeira opção usa chamadas integradas de linha de comando. A segunda opção usa o Git.

Para obter uma cópia do código-fonte do WordPress (chamadas internas de linha de comando)

  1. Chame o comando wget para fazer download de uma cópia do código-fonte do WordPress, como um arquivo .zip, no diretório atual:

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. Chame os comandos unzip, mkdir, cp e rm para:

    • Descompactar o arquivo master .zip no /tmp/WordPress_Temp diretório (pasta).

    • Copiar seu conteúdo descompactado na pasta de destino /tmp/WordPress.

    • Excluir a pasta temporária /tmp/WordPress_Temp e o arquivo master.

    Execute os comandos um de cada vez:

    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

    Isso deixará você com um conjunto limpo de arquivos de código-fonte do WordPress na pasta /tmp/WordPress.

Para obter uma cópia do código-fonte do WordPress (Git)

  1. Baixe e instale o Git na sua máquina de desenvolvimento.

  2. Na pasta /tmp/WordPress, chame o comando git init.

  3. Chame o comando git clone para clonar o repositório público do WordPress, criando sua própria cópia dele na pasta de destino /tmp/WordPress:

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

    Isso deixará você com um conjunto limpo de arquivos de código-fonte do WordPress na pasta /tmp/WordPress.

Criar scripts para executar seu aplicativo

Em seguida, crie uma pasta e scripts no diretório. O CodeDeploy usa esses scripts para configurar e implantar sua revisão de aplicativo na instância do Amazon EC2 de destino. É possível usar qualquer editor de texto para criar os scripts.

  1. Crie um diretório de scripts na sua cópia do código-fonte do WordPress:

    mkdir -p /tmp/WordPress/scripts
  2. Crie um arquivo install_dependencies.sh no /tmp/WordPress/scripts. Adicione as seguintes linhas ao arquivo. Este script install_dependencies.sh instala Apache, MySQL e PHP. Ele também adiciona suporte do MySQL ao PHP.

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. Crie um arquivo start_server.sh no /tmp/WordPress/scripts. Adicione as seguintes linhas ao arquivo. Este script start_server.sh inicia Apache e MySQL.

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. Crie um arquivo stop_server.sh no /tmp/WordPress/scripts. Adicione as seguintes linhas ao arquivo. Este script stop_server.sh para 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. Crie um arquivo create_test_db.sh no /tmp/WordPress/scripts. Adicione as seguintes linhas ao arquivo. Este script create_test_db.sh usa o MySQL para criar um banco de dados de test para uso do WordPress.

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. Finalmente, crie um script change_permissions.sh em /tmp/WordPress/scripts. Ele é usado para alterar as permissões de pastas no Apache.

    Importante

    Este script mostra permissões atualizadas na pasta /tmp/WordPress para que qualquer pessoa possa gravar nele. Isso é necessário para que o WordPress possa gravar em seu banco de dados durante Etapa 5: atualizar e reimplantar o aplicativo WordPress. Depois que o aplicativo do WordPress for configurado, execute o seguinte comando para atualizar permissões em uma configuração mais segura:

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. Dê todas as permissões executáveis de scripts. Na linha de comando, digite:

    chmod +x /tmp/WordPress/scripts/*

Adicionar um arquivo de especificação de aplicativo

Em seguida, adicione um arquivo de especificação de aplicativo (arquivo AppSpec), um arquivo formatado em YAML usado pelo CodeDeploy para:

  • Mapear os arquivos de origem na sua revisão de aplicativo para os respectivos destinos na instância do Amazon EC2 de destino.

  • Especificar permissões personalizadas para arquivos implantados.

  • Especificar os scripts a serem executados na instância do Amazon EC2 de destino durante a implantação.

O arquivo AppSpec deve ser nomeado appspec.yml. Ele deve ser colocado no diretório raiz do código-fonte do aplicativo. Neste tutorial, o diretório raiz é . /tmp/WordPress

Com seu editor de texto, crie um arquivo chamado appspec.yml. Adicione as seguintes linhas ao arquivo:

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

O CodeDeploy usa esse arquivo AppSpec para copiar todos os arquivos da pasta /tmp/WordPress na máquina de desenvolvimento na pasta /var/www/html/WordPress da instância do Amazon EC2 de destino. Durante a implantação, o CodeDeploy executa os scripts especificados como root na pasta /var/www/html/WordPress/scripts da instância do Amazon EC2 de destino em eventos especificados durante o ciclo de vida da implantação, como BeforeInstall e AfterInstall. Se algum desses scripts demorar mais de 300 segundos (5 minutos) para ser executado, o CodeDeploy interromperá a implantação e a marcará como falha.

Para obter mais informações sobre essas configurações, consulte o CodeDeploy AppSpec referência de arquivo.

Importante

Os locais e números de espaços entre cada um dos itens desse arquivo são importantes. Se o espaçamento estiver incorreto, o CodeDeploy gerará um erro que pode ser difícil de depurar. Para obter mais informações, consulte AppSpec Espaçamento de arquivos.