Всякий раз, когда ansible вносит изменения в sshd в CentOS7, случайная игра в будущее не может подключаться

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

По существу, в любое время в CentOS 7.x, sshd configs или любой части sshd изменяется, а демон запускается / перезагружается в некоторой «случайной точке» в течение следующих 3 минут, все ssh-соединения все сбрасываются, а затем этот сервер недоступен в течение нескольких секунд через ssh.

Это особенно проблема в том, что он должен сам выполнять эти изменения непосредственно в sshd, а также перезагружать его (например, в новых сборках CentOS 7x). Но тогда в будущих играх он просто случайно не может подключиться к ssh, и он взрывает остальную часть пьесы / пьес для этого хоста, с которым не удалось связаться. Это особенно плохо для большого шаблона хоста, так как некоторые из них будут случайным образом заполняться, но другие будут терпеть неудачу на разных этапах игры, после того как sshd будет манипулировать. Следует отметить, что ничего подобного не происходит в CentOS 5x, 6x или даже в Solaris.

Лучшее, что я могу сделать, чтобы избежать этого, – создать 90-секундное ожидание после любых изменений в sshd, и даже это не является полностью надежным. Это заставляет те плейбуки занять 20 + минут, хотя если их вызывают 7-8 раз.

Вот некоторые факты об этой среде:

Все новые версии находятся на официальном ISO DVD. Каждый сервер является гостевым пользователем hyper-v 2012. Каждый сервер, у которого есть эта проблема, является CentOS 7.x

Вот некоторые фактические результаты проблем и некоторые избитые решения:

Провал:

fatal: [voltron]: UNREACHABLE! => {"changed": false, "msg": "All items completed", "results": [{"_ansible_item_result": true, "item": ["rsync", "iotop", "bind-utils", "sysstat.x86_64", "lsof"], "msg": "Failed to connect to the host via ssh: Shared connection to voltron closed.\r\n", "unreachable": true}]} 

Пример одного из изменений в sshd:

 - name: Configure sshd to disallow root logins for security purposes on CentOS and Redhat 7x servers. lineinfile: backup: yes dest: /etc/ssh/sshd_config regexp: '^(#PermitRootLogin)' line: "PermitRootLogin no" state: present when: (ansible_distribution == "CentOS" or "RedHat") and (ansible_distribution_major_version == "7") notify: sshd reload Linux 7x 

Следующий обработчик:

 - name: sshd reload Linux 7x systemd: state: restarted daemon_reload: yes name: sshd 

Наконец, мое гетто исправить, чтобы попытаться объяснить эту проблему:

 - name: Wait a bit on CentOS/Redhat 7x servers to ensure changes don't mess up ssh and screw up further plays. pause: seconds: 90 when: (ansible_distribution == "CentOS" or "RedHat") and (ansible_distribution_major_version == "7") 

Там должно быть лучшее решение, чем то, с чем я столкнулся, и трудно поверить, что все остальные сталкиваются с этим, а также справляются с этим. Есть ли что-то, что мне нужно настроить на серверах CentOS 7.x, чтобы предотвратить это? Есть ли что-то в недоступном для этого, например, несколько попыток ssh за игру при первом провале?

Заранее спасибо!

2 Solutions collect form web for “Всякий раз, когда ansible вносит изменения в sshd в CentOS7, случайная игра в будущее не может подключаться”

Вместо использования модуля systemd попробуйте воспользоваться service модулем:

 - name: Restart secure shell daemon post configuration service: name: sshd state: restarted 

Это, по-видимому, общая проблема. Патч для повторных попыток ssh с 2016 года

Лучшим решением может быть ожидание готовности sshd к подключению. Исходная тема с этим решением:

[Задачи создания VM …]

– name: Дождитесь завершения установки Kickstart и перезагрузить VM local_action: wait_for host = {{vm_hostname}} port = 22 delay = 30 timeout = 1200 state = start

– name: теперь настройте виртуальную машину …

  • Разрешать только внутренние пароли ssh, всегда разрешать внешние ssh-логины с ключом
  • разрешить доступ через ssh-ключ без использования ~ / ssh / authorized_keys
  • Почему я все еще вижу MOTD при входе в SSH?
  • Вперед ssh для пользователя Git для сервера Git
  • Пересылка X11 не работает - Ошибка: не удается открыть отображение: localhost: 11.0
  • Как настроить sshd_config, чтобы не принимать ключи dsa, которые настроены в публичной аутентификации?
  • iptables и ssh
  • Не удалось войти в систему с помощью ключа SSH-RSA
  • Не удается войти на удаленную машину с ключом
  • Не удается SSH клонировать сервер EC2 из общедоступной сети
  • Аутентификация с открытым ключом с суффиксом пользователя SFTP
  • Linux и Unix - лучшая ОС в мире.