--- - name: Reload the SSH service ansible.builtin.service: name: "{{ sshd_service }}" state: reloaded when: - sshd_allow_reload|bool - ansible_facts['virtualization_type'] | default(None) not in __sshd_skip_virt_env - ansible_connection != 'chroot' - ansible_facts['os_family'] != 'AIX' - ansible_facts['os_family'] != 'OpenWrt' listen: reload_sshd # sshd on AIX cannot be 'reloaded', it must be Stopped+Started. # It's dangerous to do this in two tasks.. you're stopping SSH and then trying to SSH back in to start it. # Instead, use a dirty shell script: # https://www.ibm.com/developerworks/community/blogs/brian/entry/scripting_the_stop_and_restart_of_src_controlled_processes_on_aix6 - name: Reload sshd Service (AIX) ansible.builtin.shell: | set -eu if set -o | grep pipefail 2>&1 /dev/null ; then set -o pipefail fi stopsrc -s sshd until $(lssrc -s sshd | grep -q inoperative); do sleep 1; done startsrc -s sshd listen: reload_sshd changed_when: false when: - sshd_allow_reload|bool - ansible_facts['os_family'] == 'AIX' # sshd on OpenWrt does not support reloading a service, it has to be restarted instead - name: Reload the SSH service (OpenWrt) ansible.builtin.service: name: "{{ sshd_service }}" state: restarted when: - sshd_allow_reload|bool - ansible_facts['os_family'] == 'OpenWrt' listen: reload_sshd