Script de auto-inicialização de configuração de escalonamento automático da AWS e acesso ssh

1

Não sou especialista em redes e estou com dificuldades tentando configurar o dimensionamento automático para um aplicativo da Web.

Eu tenho um servidor - podemos chamá-lo de mestre - (fora do grupo de escalonamento automático) que eu uso para a fila memcache e beanstalkd. Eu também quero usar este servidor para fazer uma sincronização de código-fonte usando o rsync.

Eu quero que meu servidor do grupo de escalonamento automático seja capaz de executar ssh neste servidor mestre para executar um rsync e garantir que a AMI tenha a versão mais recente do aplicativo.

Eu quero realizar essa sincronização quando o alarme de aumento de escala for acionado e uma nova instância for iniciada. Eu li que eu tenho que user --user-data-file para executar o script na primeira vez que o servidor é inicializado.

Portanto, esta é toda a informação que tenho no momento. Configurei minha política de "configuração de lançamento", "grupo de escalonamento automático", "escalar para cima" e "reduzir escala" e ambos os alertas para acionar essa política.

Estou usando uma AMI customizada (privada) baseada na AMI pública do Centos 6. Quando uma nova instância do grupo de dimensionamento automático é iniciada, tenho a impressão de que o script bootstrap.sh não é executado. Aqui está a minha configuração de lançamento:

as-create-launch-config --image-id <PRIVATE_AMI> --instance-type m1.medium --key master --group webserver-security-group --user-data-file /home/user/bin/bootstrap.sh --launch-config my-lc-1

Aqui está o conteúdo de /home/user/bin/bootstrap.sh:

#!/bin/bash
set -e -x

# Start the workers
/var/www/user/bin/start.sh

Então, meu primeiro problema é que não tenho ideia do motivo de esse script não ser executado.

O segundo problema que tenho é que não tenho certeza de como permitir a conexão SSH com o servidor "mestre", sabendo que a instância está mudando ao aumentar ou diminuir a escala.

A ajuda seria muito apreciada;)

Maxime

    
por maxwell2022 12.07.2013 / 04:55

1 resposta

1

Portanto, o Centos AMI não inclui CloudInit service por padrão (alguns dos pacotes do Ubuntu e do Debian têm por padrão). Você precisa instalá-lo em sua AMI, inicie o serviço na inicialização:

chkconfig cloud-init on

Atualize o arquivo de configuração conforme necessário: /etc/cloud/cloud.cfg Então você precisa criar um novo AMI do modificado. Para testar o script de bootstrap, o mais fácil que eu encontrei é iniciar uma micro instância desta AMI especificando a opção --user-data-file .

    
por 15.07.2013 / 03:45