Вышли ошибки модуля синхронизации Ansible

Я использую Ansible 2.9.11 на своем MAC. Я создал playbook для синхронизации некоторых предопределенных конфигураций FreeSwitch с новым сервером Debian 10. Я установил rsync и выполнил все требования на сайте Ansible. Когда я запускаю задачу синхронизации, она завершается со следующим сообщением. Это происходит после того, как playbook уже подключился к приставке и выполнил другие задачи, такие как обновление и установка необходимых компонентов.

Ошибка:

fatal: [dev-fs02b]: FAILED! => {"changed": false, "cmd": "sshpass -d3
/usr/bin/rsync --delay-updates -F --compress --archive
--rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --rsync-path=sudo rsync
--out-format=<<CHANGED>>%i %n%L /Users/User1/Documents/Ansible/files/sca
[email protected]:/etc/freeswitch", "msg": "Warning: Permanently added
'1.1.1.127' (ECDSA) to the list of known hosts.\r\nsudo: no tty
present and no askpass program specified\nrsync: connection
unexpectedly closed (0 bytes received so far) [sender]\nrsync error:
error in rsync protocol data stream (code 12) at
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-54.120.1/rsync/io.c(453)
[sender=2.6.9]\n", "rc": 12}

Задание:

  - name:  "Copies files over"
    synchronize:
      src: /Users/User1/Documents/Ansible/files/fs1
      dest: /etc/freeswitch
      recursive: yes

person user2236794    schedule 03.09.2020    source источник
comment
Я думаю, что ваша ошибка sudo: no tty present and no askpass program specified. Похоже, что sudo на удаленном хосте ожидает пароль, но вы не настроили Ansible для его предоставления.   -  person larsks    schedule 03.09.2020
comment
на playbook я стал: да поставил. Что еще мне не хватает?   -  person user2236794    schedule 03.09.2020
comment
Вам нужно либо (а) настроить sudo для работы без пароля, либо (б) настроить Ansible для предоставления необходимого пароля sudo. См. docs.ansible.com/ansible/latest/user_guide/become.html и обратите внимание на документы для ansible_become_password и параметр командной строки --ask-become-pass.   -  person larsks    schedule 03.09.2020


Ответы (1)


синхронизация — это оболочка вокруг rsync, позволяющая быстро и легко выполнять общие задачи в ваших плейбуках. Он запускается и происходит на локальном хосте, где запускается Ansible. Конечно, вы можете просто использовать командное действие для вызова rsync самостоятельно, но вы также должны добавить достаточное количество шаблонных параметров и фактов о хосте. синхронизация не предназначена для предоставления доступа ко всем возможностям rsync, но упрощает реализацию наиболее распространенных вызовов. Вам по-прежнему может потребоваться вызвать rsync напрямую через команду или оболочку в зависимости от вашего варианта использования.

это означает, что вы не можете синхронизироваться на удаленном сервере.

person Vinamit_    schedule 03.09.2020