Tenho um manual muito semelhante aos exemplos online:
tarefas:
- nome: cria uma instância EC2
ec2:
[-recorte-]
registrar: ec2
- nome: imprima
debug: msg = "item tem - {{item.public_ip}}"
with_items: ec2.instances
Isso dá o erro:
fatal: [localhost] => Uma ou mais variáveis indefinidas: 'str object' não tem atributo 'public_ip'
Se eu mudar para {{item}}, vejo:
TAREFA: [imprima] * * * * * * * * * * * * * * * * * * * *
ok: [localhost] => (item = ec2.instances) => {
"item": "ec2.instances",
"msg": "o item tem - ec2.instances"
}
Parece que 'ec2.instances' é apenas uma string? Por último, se eu usar "with_items: ec2.results", posso iterar por ele, mas tenho que fazer referência a ele como item.instances.0.public_ip
Alguma ideia de por que ec2_instances parece ser uma string em vez de um dicionário?
Editar:
: arp_kiki / pts / 55: 0,08: novo; ansible - versão ansible 1.5.4
após a atualização:
ok: [localhost] => (item = ec2.instances) => {
"item": "ec2.instances",
"msg": "o item tem - ec2.instances"
}
JOGAR RECAP * * * * * * * * * * * * * * * * * * * * * *
localhost: ok = 2 alterado = 1 inacessível = 0 falhou = 0
: arp_kiki / pts / 55: 0,31: novo; ansible - versão
ansible 1.9.1
Oi!
Muito obrigado pelo seu interesse no Ansible. Sinceramente, significa muito para nós.
Esta parece ser uma pergunta do usuário, e gostaríamos de direcionar esse tipo de coisa para a lista de discussão ou para o canal IRC.
também a razão é porque with_items é usado, portanto, haveria várias instâncias e os resultados de cada instância criada são armazenados no dicionário ec2.results. se houver apenas uma única instância create avoild with_items, então você deve obter o que precisa ou se tiver várias instâncias para criar e obter o uso de ip público with_items: ec2.results e item.public_ip
IRC: #ansible em irc.freenode.net
lista de correspondência: https://groups.google.com/forum/#!forum/ansible -project
Se você puder passar por aí, nós agradeceríamos. Isso nos permite manter o rastreador de problemas para bugs, solicitações de pull, RFEs e similares.
Obrigado mais uma vez e esperamos vê-lo na lista ou IRC. Obrigado!
Entendido. Presumi que fosse um bug porque estava acompanhando a documentação e obtendo resultados diferentes.
Acabei de chegar a este tópico devido ao mesmo "erro do usuário", que @bennojoy descreveu a causa de forma muito sucinta. Considerando que esta é uma situação altamente "não óbvia", seria ótimo ter referência a isso, pelo menos nos exemplos da documentação do módulo ec2, já que with_items
será um padrão muito comum gerenciamento de sistemas em zonas de disponibilidade definidas.
Comentários muito úteis
Entendido. Presumi que fosse um bug porque estava acompanhando a documentação e obtendo resultados diferentes.