Etapa 2: Configure seu conteúdo de origem para ser implantado na instância Amazon Linux ou Red Hat Enterprise Linux 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: Configure seu conteúdo de origem para ser implantado na instância Amazon Linux ou Red Hat Enterprise Linux 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

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

Para essas etapas, presumimos que você baixou uma cópia do WordPress código-fonte para o /tmp diretório em 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 WordPress origem para 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 WordPress código-fonte (chamadas de linha de comando integradas)

  1. Chame o wget comando para baixar uma cópia do WordPress código-fonte, como um arquivo.zip, para o 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 deixa você com um conjunto limpo de arquivos de WordPress código-fonte na /tmp/WordPress pasta.

Para obter uma cópia do WordPress código-fonte (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 git clone comando para clonar o WordPress repositório público, fazendo sua própria cópia dele na pasta de /tmp/WordPress destino:

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

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

Criar scripts para executar seu aplicativo

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

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

    mkdir -p /tmp/WordPress/scripts
  2. Crie um arquivo install_dependencies.sh no /tmp/WordPress/scripts. Adicione as seguintes linhas ao arquivo. Esse install_dependencies.sh script instala o ApacheSQL, My e. PHP Também adiciona Meu SQL apoio PHP a.

    #!/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. Esse start_server.sh script inicia o Apache e o 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. Esse stop_server.sh script interrompe o Apache e o 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. Esse create_test_db.sh script usa My SQL para criar um test banco de dados WordPress para uso.

    #!/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 ele WordPress possa gravar em seu banco de dados duranteEtapa 5: atualizar e reimplantar seu aplicativo WordPress . Depois que o WordPress aplicativo estiver configurado, execute o comando a seguir para atualizar as permissões para 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 do aplicativo (AppSpec arquivo), um arquivo YAMLformatado usado por CodeDeploy to:

  • Mapeie os arquivos de origem na revisão do seu aplicativo para seus destinos na EC2 instância de destino da Amazon.

  • Especificar permissões personalizadas para arquivos implantados.

  • Especifique scripts a serem executados na EC2 instância de destino da Amazon durante a implantação.

O AppSpec arquivo deve ser nomeadoappspec.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

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

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, CodeDeploy gera um erro que pode ser difícil de depurar. Para obter mais informações, consulte AppSpec Espaçamento de arquivos.