Назад | Перейти на главную страницу

Требуется объяснение, в каких ситуациях задача запускается на двух хостах за одну попытку?

Я столкнулся с задачей, которая, похоже, пытается работать на двух хостах, например:

TASK [setup] *******************************************************************
fatal: [====]: UNREACHABLE! => {"changed": false, "msg": "ssl: auth method ssl requires a password", "unreachable": true}
ok: [web-app.source-ami]

Конечно, я пытаюсь отладить эту ошибку и выяснить, где ==== пришли из.

Но это также первый раз, когда я сталкиваюсь с задачей, пытающейся запустить на нескольких хостах, подобных этой, за одну и ту же попытку.

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]

PLAYBOOK начинается так:

---

- name: Fetch AMI ID
  hosts: base-source-amis:&{{ subset | default('None') }}
  connection: local
  tags: [ ami-id ]

  roles:
    - { role: do_something }

КОМАНДА:

ansible-playbook -i ../../hosts_file \
            -e subset=ami-bakes-resources \
            playbook

Я просмотрел инвентарь, и он кажется простым и не упоминает ==== везде.

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/web-app.source-ami
---
aws_resource_id: ami-34549s3d
...

В настоящее время нет групповых переменных для групп.

Я также искал winrm и он используется для подключения к экземплярам Windows в другом месте, но здесь задача использует connection: local при работе на Linux-машине.

# group_vars/windows-instances/settings.yml
---

ansible_connection: winrm
ansible_ssh_port: 5986
ansible_ssh_user: Administrator

...