Ansible EC2 Hosts Script Instância ausente

4

Por algum motivo, os hosts ec2 do ansible estão com instâncias ausentes. ec2-describe-instances retorna as instâncias corretas, mas / etc / ansible / hosts não:

[root@or-manage ec2-user]# ec2-describe-instances | grep seed
TAG     instance        i-ff0b2f36      Name    cass-uat-seed
[root@or-manage ec2-user]# /etc/ansible/hosts | grep seed
[root@or-manage ec2-user]#

Você pode ver que ec2-describe-instances tem a instância com a tag que estou procurando, mas hosts ansiosos não.

Por que essa instância não está lá para / etc / ansible / hosts?

Nota: No começo, achei que era /etc/ansible/hosts usando a região errada, mas a depuração de bots foi ativada e IS a região correta:

send: 'POST / HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 221\r\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nHost: ec2.us-west-2.amazonaws.com

Atualização 1:

Tenho notado que todas as instâncias sem um IP público não aparecem na lista / etc / ansible / hosts. Por que isso seria?

    
por mtyson 21.04.2015 / 04:15

1 resposta

5

Eu tive que ajustar os seguintes botões (em /etc/ansible/ec2.ini ):

# This is the normal destination variable to use. If you are running Ansible
# from outside EC2, then 'public_dns_name' makes the most sense. If you are
# running Ansible from within EC2, then perhaps you want to use the internal
# address, and should set this to 'private_dns_name'. The key of an EC2 tag
# may optionally be used; however the boto instance variables hold precedence
# in the event of a collision.
destination_variable = private_dns_name

# For server inside a VPC, using DNS names may not make sense. When an instance
# has 'subnet_id' set, this variable is used. If the subnet is public, setting
# this to 'ip_address' will return the public IP address. For instances in a
# private subnet, this should be set to 'private_ip_address', and Ansible must
# be run from within EC2. The key of an EC2 tag may optionally be used; however
# the boto instance variables hold precedence in the event of a collision.
vpc_destination_variable = private_ip_address
    
por 21.04.2015 / 04:25