Como criar trabalhos cron em instâncias do Amazon EC2 em ambientes do Elastic Beanstalk?

3 minuto de leitura
0

Quero criar um trabalho cron que execute um script personalizado em todas as instâncias do Amazon Elastic Compute Cloud (Amazon EC2) em um ambiente existente do AWS Elastic Beanstalk.

Breve descrição

Você pode usar arquivos de configuração do Elastic Beanstalk, chamados .ebextensions, para criar trabalhos cron que são executados em todas as instâncias do Amazon EC2 em um ambiente do Elastic Beanstalk. No arquivo zip do aplicativo Elastic Beanstalk, crie um diretório chamado .ebextensions. O arquivo zip contém arquivos de configuração que são executados quando o aplicativo é implantado nas instâncias do Amazon EC2.

Observação: As etapas na resolução a seguir adicionam um trabalho cron que é executado em todas as instâncias do Amazon EC2 em um ambiente do Elastic Beanstalk ao mesmo tempo. Se você tiver uma tarefa periódica a ser executada em apenas uma instância, considere usar o arquivo cron-leaderonly-linux.config para ambientes web. Se você estiver usando um ambiente de trabalho dedicado, considere usar tarefas periódicas.

Resolução

Crie ou atualize seu arquivo de configuração

Há duas chaves no arquivo cron-linux.config: arquivos e comandos.

A chave arquivos especifica a localização do arquivo myscript.sh nas instâncias do Elastic Beanstalk e as permissões de arquivo necessárias. A chave comandos especifica uma lista de comandos a serem executados nas instâncias.

Faça o download do modelo cron-linux.config no repositório do AWS GitHub.

--ou--

Crie ou atualize um arquivo de configuração existente com base no exemplo a seguir:

files:
    "/etc/cron.d/mycron":
        mode: "000644"
        owner: root
        group: root
        content: |
            * * * * * root /usr/local/bin/myscript.sh

    "/usr/local/bin/myscript.sh":
        mode: "000755"
        owner: root
        group: root
        content: |
            #!/bin/bash

            date > /tmp/date
            # Your actual script content

            exit 0

commands:
    remove_old_cron:
        command: "rm -f /etc/cron.d/mycron.bak"

**Observação:**Ao nomear seu arquivo de configuração, considere que vários arquivos de configuração no diretório .ebextensions são executados em ordem alfabética por nome de arquivo. Você pode nomear seu arquivo de configuração cron-linux.config.

O arquivo cron-linux.config cria um arquivo cron chamado /etc/cron.d/mycron que está configurado para executar um script a cada minuto. O script myscript.sh gera a data e, em seguida, fecha quando é executado. Toda vez que o arquivo cron-linux.config é aplicado durante as implantações, um backup do arquivo /etc/cron.d/mycron é criado, chamado /etc/cron.d/mycron.bak. O último comando em cron-linux.config limpa o diretório /etc/cron.d removendo /etc/cron.d/mycron.bak.

Para obter mais informações sobre como personalizar seu ambiente usando .ebextensions, consulte Personalização avançada do ambiente com arquivos de configuração (.ebextensions).

Crie um pacote de origem do aplicativo

Para adicionar o arquivo de configuração ao código-fonte do aplicativo web, conclua as seguintes etapas:

1.    Na raiz da pasta do aplicativo, crie um diretório chamado .ebextensions.

2.    Mova o arquivo cron-linux.config que você criou ou atualizou para a pasta .ebextensions.

3.    Crie uma pasta zip para os arquivos do aplicativo, incluindo o novo arquivo de configuração.

O exemplo a seguir mostra a estrutura do diretório .ebextensions e do arquivo cron-linux.config no arquivo zip do aplicativo:

|-- .ebextensions
|        |-- cron-linux.config
|        |-- other .config files
|-- other application files

Informações relacionadas

Como configurar ambientes do Elastic Beanstalk

Como personalizar software em servidores Linux

Como personalizar software em servidores Windows

AWS OFICIAL
AWS OFICIALAtualizada há 4 anos