Me deparei com uma tarefa que parece estar sendo executada em dois hosts da seguinte forma:
TASK [setup] *******************************************************************
fatal: [====]: UNREACHABLE! => {"changed": false, "msg": "ssl: auth method ssl requires a password", "unreachable": true}
ok: [web-app.source-ami]
Claro, estou tentando depurar esse erro e descobrir de onde veio o ====
.
Mas esta é também a primeira vez que me deparo com uma tarefa que tenta rodar em múltiplos hosts como este em uma e a mesma tentativa.
TASK [setup] *******************************************************************
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/core/windows/setup.ps1
<====> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO ====
fatal: [====]: UNREACHABLE! => {
"changed": false,
"msg": "ssl: auth method ssl requires a password",
"unreachable": true
}
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/core/system/setup.py
<web-app.source-ami> ESTABLISH LOCAL CONNECTION FOR USER: ec2-user
<web-app.source-ami> EXEC /bin/sh -c '( umask 77 && mkdir -p "' echo $HOME/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236 '" && echo ansible-tmp-1536934067.19-26447522223236="' echo $HOME/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236 '" ) && sleep 0'
<web-app.source-ami> PUT /tmp/tmpFfmjhW TO /home/ec2-user/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236/setup.py
<web-app.source-ami> EXEC /bin/sh -c 'chmod u+x /home/ec2-user/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236/ /home/ec2-user/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236/setup.py && sleep 0'
<web-app.source-ami> EXEC /bin/sh -c '/usr/bin/python /home/ec2-user/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236/setup.py; rm -rf "/home/ec2-user/.ansible/tmp/ansible-tmp-1536934067.19-26447522223236/" > /dev/null 2>&1 && sleep 0'
ok: [web-app.source-ami]
O PLAYBOOK começa assim:
---
- name: Fetch AMI ID
hosts: base-source-amis:&{{ subset | default('None') }}
connection: local
tags: [ ami-id ]
roles:
- { role: do_something }
COMANDO:
ansible-playbook -i ../../hosts_file \
-e subset=ami-bakes-resources \
playbook
Eu olhei para o inventário e parece ser direto e não tem menção de ====
em qualquer lugar.
Hosts_file:
localhost ansible_connection=local
[base-resources]
web-app.ec2
web-app.source-ami
[base-source-amis]
web-app.source-ami
[ami-bakes-resources:children]
base-resources
Host Vars:
# host_vars/web-app.source-ami
---
aws_resource_id: ami-34549s3d
...
Nenhum grupo vars para grupos no momento.
Eu também procurei por winrm
e ele é usado para conexão com instâncias do windows em outro lugar, mas aqui a tarefa está usando connection: local
quando rodando em uma máquina linux.
# group_vars/windows-instances/settings.yml
---
ansible_connection: winrm
ansible_ssh_port: 5986
ansible_ssh_user: Administrator
...
Tags ansible