LINUX.ORG.RU
решено ФорумAdmin

ansible vs aix: ssh работает стабильно. ansible - рандомно не может подключиться

 , ,


1

2

Доброго времени суток

Вылез из криокамеры и решил пощупать ansible. В домашней сети ( debian 9 ) никаких проблем

Но теперь я пытаюсь его использовать на работе. ansbile на ubuntu lts 16.04, на удалённых хостах rhel и aix

Простейший тест

ansible -v -v -v $HOST -i hosts_lpar.new -f 1 -m raw -a 'uname'

примерно в 80% случаев работает нормально, в 20% - отваливается по тайм-ауту

$HOST | FAILED | rc=255 >>

И так со всеми aix'ами. С rhel проблем нет. Казалось бы... Но. При этом проблем с подключением по ssh не бывает никогда

Быстрый гугл говорит, что проблема у многих, и не привязана к AIX

WTF? я понимаю, что ansible сейчас в тренде и, то, что я его не использовал раньше, говорит лишь что я тормоз. Но. Как можно жить с таким глюком?

Встречалась ли вам подобная проблема? Если да, как решили?

update. ansible не виноват, проблема на стороне ssh

update 2. ssh тоже не виноват, нужно копать в сторону environment и профиля

update 3. ibm говорит, что всё же виноват openssh server. был race condition при pty allocation. в aix закрыли в пакете openssh.base.server 7.5.102.1500

★★★★★

Последнее исправление: router (всего исправлений: 3)
Ответ на: комментарий от pawnhearts

«aix» и «в тренде» тебя не смутило?

anonymous
()

что говорят логи аикса? да, проблема встречалась с любым ссш, который не запущен на линуксе (вмваре, солярис, железяки IBM). Разбираться было лень, тем более, не собирал статистику фейлов подробную.

anonymous
()

Ansible вызывает бинарник ssh, там никакой магии. Посмотри список процессов во время зависания, там будет видно опции ssh, можно будет попытаться воспроизвести

disarmer ★★★
()

Сбор фактов нормально проходит ?

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

Спасибо, я думал что трёх должно хватить...

Действительно, при -vvvv посыпался нормальный дебаг

С этим уже можно работать, буду сравнивать и много думать :)

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

Ansible вызывает бинарник ssh, там никакой магии

Магия в том, что команды идут через сокет. Т.е. у меня не было возможности увидеть, что происходит с точки зрения ansible

А ssh как работал стабильно, так и работает :)

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

что говорят логи аикса? да, проблема встречалась с любым ссш, который не запущен на линуксе (вмваре, солярис, железяки IBM). Разбираться было лень, тем более, не собирал статистику фейлов подробную.

Массаракш. А мне один человек втирал, что цисками рулит - попробуй, говорит, так своим puppet'ом :)

router ★★★★★
() автор топика

Можете залезать обратно в криокамеру... Как медведь в зимнюю спячку...

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

Поздняк метаться, кофе не даст уснуть :)

router ★★★★★
() автор топика

Оффтоп, но ещё одна «фича»: ansible вообще не может работать, если в пути к списку хостов ( -i ) есть русские буквы... 21 век, хипстеры, хайп, вот это всё.

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

Полгода назад там еще были места, где было захардкожено sleep(0.0001). Сейчас ЕМНИП в конфиг вынесли

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

ansible вообще не может работать, если в пути к списку хостов ( -i ) есть русские буквы

WORKSFORME

Ansible ansible-2.4.0.0-5.el7.noarch

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

dexpl, deadNightTiger

ok@vk:~/Документы/scripts/cmdb_trash$ ansible -v -v -v lp-a6o11-122 -i hosts_lpar.new -f 1 -m raw -a 'uname' 
Using /etc/ansible/ansible.cfg as config file
Unexpected Exception: 'ascii' codec can't decode byte 0xd0 in position 9: ordinal not in range(128)
the full traceback was:

при запуске из / , но с указанием того же пути в -i - аналогичная фигня

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

Так, ansible ни при чём, проблема таки на стороне ssh

Зависание воспроизводится, если запускать ssh с параметром -t И одновременно с запуском команды

т.е. так ещё работает

ssh -t host
ssh host uname

а вот так уже не каждый раз, рандомно:

ssh -t host uname
router ★★★★★
() автор топика
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Проверил на русскоязычном названии файла, русскоязычном названии каталога, русскоязычном названии файла и концами строк dos в русскоязычном каталоге, с указанием полного пути от корня — не воспроизводится; ansible-2.4.0.0-5.el7.noarch, установленный из extras, на CentOS Linux release 7.4.1708 (Core).

dexpl ★★★★★
()
Последнее исправление: dexpl (всего исправлений: 2)
Ответ на: комментарий от router

workaround для ansible:

обновить минимум до 2.3, добавить в конфиг

[ssh_connection]
retries = 1

Т.к. у меня сбои соединения ~ 20%, одного retry оказалось более чем достаточно. Теперь ansible стабильно работает с aix'ами

А вот с ssh надо думать дальше

router ★★★★★
() автор топика
Последнее исправление: router (всего исправлений: 1)

breaking news: рафик^w ssh тоже неуиноват

Поговорил с коллегой, на его компе ssh -t $lpar 'uname' всегда работает стабильно, зато на aix'е точно так же рандомно виснет «sudo -s» и «sudo su -» ( у меня такой проблемы не было никогда ) Т.е. копать нужно в сторону профиля на локальном компе, environment и версий ПО. Хотя ОСь вроде бы одинаковая... Но у него кеды, а у меня гном

Такие дела

router ★★★★★
() автор топика
Последнее исправление: router (всего исправлений: 3)
Ответ на: комментарий от anonymous

openssh. paramiko пробовал, с ним к aix'у вообще не подключается

router ★★★★★
() автор топика

Так заведи кейс в IBM, пускай разбираются.

bigbit ★★★★★
()
20 ноября 2019 г.

похоже, решили

IBM уверяет, что дело было в баге openssh ( race conditioin ), закрыли в пакете openssh.base.server:7.5.102.1500

https://www-01.ibm.com/support/docview.wss?uid=isg1IV82042

странно, что проявлялось только в aix, но починили и ладно

в aix 7.1 tl5 sp4 уже не воспроизводится ansible vs aix: ssh работает стабильно. ansible - рандомно не может подключиться (комментарий)

проверял так, на 100 коннектов ни единого разрыва зависания

ok@vk:~$ for i in $(seq 1 100 ); do echo $i $(date); ssh -t lp-aix-ok-256 uname;done

router ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.