LINUX.ORG.RU

ansible на одной из машин не работают плейбуки

 


0

1

Есть несколько удалённых машин. Добираться к ним нужно через 2 proxy_jamp-а. Безпарольный доступ настроен. На одной из машин не срабатывают ни плейбуки ни ad-hoc команды. Сначала пишет warnings:

[WARNING]: sftp transfer mechanism failed on [host1]. Use ANSIBLE_DEBUG=1 to see detailed information

 [WARNING]: scp transfer mechanism failed on [host1]. Use ANSIBLE_DEBUG=1 to see detailed information

а потом ошибку:

host1 | UNREACHABLE! => {
    "changed": false,
    "msg": "SSH Error: data could not be sent to remote host \"host1". Make sure this host can be reached over ssh",
    "unreachable": true
}

sftp и scp работают нормально. Ad-hoc с модулем raw работает нормально. В чём может быть проблема?

UPD Хм… А с модулем raw ad-hoc отрабатывает нормально.

UPD2 похоже @no-dashi-v2 прав. Вот что нашёл в auth.log подключение через sftp:

Feb  7 09:10:31 host1 sshd[19802]: Accepted publickey for user from xxx.xxx.xxx.xxx port 49915 ssh2: RSA SHA256:mnogabukafWSF4
Feb  7 09:10:31 host1 sshd[19802]: pam_unix(sshd:session): session opened for user user by (uid=0)
Feb  7 09:10:31 host1 systemd-logind[540]: New session 1517 of user user.
Feb  7 09:10:37 host1 sshd[19924]: Received disconnect from xxx.xxx.xxx.xxx port 49915:11: disconnected by user
Feb  7 09:10:37 host1 sshd[19924]: Disconnected from xxx.xxx.xxx.xxx port 49915
Feb  7 09:10:37 host1 sshd[19802]: pam_unix(sshd:session): session closed for user user
Feb  7 09:10:37 host1 systemd-logind[540]: Removed session 1517.

А вот это после ansible -m ping

Feb  7 09:11:48 host1 sshd[28580]: Accepted publickey for user from xxx.xxx.xxx.xxx port 40795 ssh2: RSA SHA256:mnogabukafWSF4
Feb  7 09:11:48 host1 sshd[28580]: pam_unix(sshd:session): session opened for user user by (uid=0)
Feb  7 09:11:48 host1 systemd-logind[540]: New session 1518 of user user.
Feb  7 09:12:05 host1 sshd[28702]: Corrupted MAC on input.
Feb  7 09:12:05 host1 sshd[28702]: ssh_dispatch_run_fatal: Connection from xxx.xxx.xxx.xxx port 40795: message authentication code incorrect
Feb  7 09:12:05 host1 sshd[28580]: pam_unix(sshd:session): session closed for user user
Feb  7 09:12:05 host1 systemd-logind[540]: Removed session 1518.
Feb  7 09:12:09 host1 sshd[31001]: Accepted publickey for user from xxx.xxx.xxx.xxx port 40829 ssh2: RSA SHA256:mnogabukafWSF4
Feb  7 09:12:09 host1 sshd[31001]: pam_unix(sshd:session): session opened for user user by (uid=0)
Feb  7 09:12:09 host1 systemd-logind[540]: New session 1519 of user user.
Feb  7 09:12:10 host1 sshd[31123]: Corrupted MAC on input.
Feb  7 09:12:10 host1 sshd[31123]: ssh_dispatch_run_fatal: Connection from xxx.xxx.xxx.xxx port 40829: message authentication code incorrect
Feb  7 09:12:10 host1 sshd[31001]: pam_unix(sshd:session): session closed for user user
Feb  7 09:12:10 host1 systemd-logind[540]: Removed session 1519.
Feb  7 09:12:15 host1 sshd[31606]: Accepted publickey for user from xxx.xxx.xxx.xxx port 40838 ssh2: RSA SHA256:mnogabukafWSF4
Feb  7 09:12:15 host1 sshd[31606]: pam_unix(sshd:session): session opened for user user by (uid=0)
Feb  7 09:12:15 host1 systemd-logind[540]: New session 1520 of user user.
Feb  7 09:12:16 host1 sshd[31848]: Corrupted MAC on input.
Feb  7 09:12:16 host1 sshd[31848]: ssh_dispatch_run_fatal: Connection from xxx.xxx.xxx.xxx port 40838: message authentication code incorrect
Feb  7 09:12:16 host1 sshd[31606]: pam_unix(sshd:session): session closed for user user
Feb  7 09:12:16 host1 systemd-logind[540]: Removed session 1520.

Поиск продолжается.



Последнее исправление: wlads (всего исправлений: 3)

Ответ на: комментарий от aol
 4724 1675682633.62585: sftp> put /home/q/.ansible/tmp/ansible-local-47187mnmp5a3/tmp43lth92k /home/w/.ansible/tmp/ansible-tmp-1675682627.4066753-154974322248961/AnsiballZ_ping.py    
                                                                                               
  4724 1675682633.62597: Connection closed                                                     
                                                                                               
  4724 1675682637.21735: stderr chunk (state=2):                                               
>>>lost connection                                                                             
<<<                                                                                                                                                                                            
                                                                                                                                                                                               
  4724 1675682637.21804: stderr chunk (state=3):                                       
>>><<<                                                                                                                                                                                         
                                                                                               
  4724 1675682637.21825: stdout chunk (state=3):

Погуглил, ответ на свой вопрос не нашёл.

wlads
() автор топика
Ответ на: комментарий от wlads

Дык а если руками выполнить конкретно-указанную команду sftp(предварительно создав пустой временный локальный файл по указанному пути)?

Может каких-то путей на сервере не хватает? Может proxyjump где-то не так отрабатывает и playbook заливается не на нужный сервер, а на jumphost?

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Попробуй команду

sftp -o ProxyJump=user1@proxy1.example.com,user2@proxy2.example.com user@host1

В user1@proxy1.example.com и user2@proxy2.example.com - это пользователь и адрес 1 и 2 proxy_jump соотв., user - это юзер на конечной машине (host1), а host1 - это адрес конечной машины.

versetty777
()
Ответ на: комментарий от wlads

Полагаю, что ansible не всё берёт из настроек ssh_config у оператора.

Что-то в этом направлении должно помочь:

https://github.com/ansiblejunky/ansible-project-multiple-jumphost

NDfan
()
Последнее исправление: NDfan (всего исправлений: 1)

Feb 7 09:12:10 host1 sshd[31123]: Corrupted MAC on input.

Проблему ты уже нашёл ;) Осталось загуглить эту строчку и подобрать подходящий MAC. А уж где ты будешь править список (на сервере или на клиенте), дело твое

Ну или перейти с paramiko на ssh в connection method

UPD Хм… А с модулем raw ad-hoc отрабатывает нормально.

Ну тут нет ничего удивительного. raw работает без python и копировать ему ничего не нужно

router ★★★★★
()