Como obtenho uma lista de servidores e seu DNS público com o Amazon EC2?

4

Eu tenho um grupo de instâncias do EC2 em um grupo de segurança. Eu estou procurando uma maneira de obter uma lista de seus endereços DNS públicos da linha de comando. Eu tenho um script que usa o RSYNC para garantir que um conjunto de arquivos seja atualizado nesses servidores. Eles estão em um balanceador de carga elástico e a quantidade de servidores no grupo muda o suficiente para que eu não precise manter a lista manualmente. Eu quero evitar o uso de AWK ou SED para extrair informações de ec2-descreve-instances, eu prefiro usar a API diretamente. Alguém tem alguma ótima sugestão? :)

    
por geekbri 27.04.2011 / 20:07

3 respostas

3

Incase qualquer um está procurando uma solução, acabei usando o PHP SDK da Amazon. Ele permite filtrar os resultados por vários critérios diferentes. Eu simplesmente fiz uma requisição de instância, filtrando por um grupo de segurança específico (onde security-group-name é aquele que você quer procurar!)

 // Get the response from a call to the DescribeInstances operation.
 $response = $ec2->describe_instances(array('Filter' => array(array('Name' => 'group-name
', 'Value' => 'security-group-name'))));
    
por 04.06.2011 / 21:13
5

O formato de saída da linha de comando é bastante estático, e você pode controlar quando ele pode ser alterado porque o kit de ferramentas está em suas mãos. Eu mantenho uma cópia das ferramentas da API em um repositório versionado junto com qualquer software que eu tenha escrito que a use, dessa forma eles sempre trabalham juntos em uma determinada versão.

Se você decidir seguir esse caminho, aqui está uma simples captura para obter o endereço DNS público de tudo que está sendo executado. Obviamente, você poderia solicitar isso para um grupo específico também.

ec2-describe-instances | grep 'INSTANCE' | cut  -f 4
    
por 27.04.2011 / 21:30
-1
ec2din -F instance-state-name=running | grep -e TAG -e INSTANCE | sed -e 's/TAG//' | awk '{print $4}'

Você também pode adicionar filtros ao seu grupo de segurança desejado adicionando -F group-name = seu-grupo

    
por 04.12.2013 / 09:06

Tags