I know that ssh is smart enough to stay connected (or reconnect), but I am wondering if there is a general rule of thumb to keep in mind when restarting network services via ansible? ie. I am disabling NetworkManager on all systems, enabling the network, and then restarting the network. Any gotchas or anything else to be aware of?
`
tasks file for disable_NetworkManager
-
name: Check if NetworkManager is installed
shell: “rpm -qa | grep -i NetworkManager”
changed_when: false
no_log: true
register: nm_installed
ignore_errors: true -
name: Gather list of ifcfg-* files
shell: ls “{{ net_path }}” | grep ^ifcfg- | grep 0$ | grep -ve ifcfg-lo -e @ # @ excludes ansible backup files
register: ifcfg_list
changed_when: false -
name: Disable NetworkManager control from ifcfg-* files
lineinfile:
path: “{{ net_path }}{{ item }}”
regexp: “^NM_CONTROLLED.*”
line: ‘NM_CONTROLLED=no’
state: present
with_items: “{{ ifcfg_list.stdout_lines }}” -
fail:
msg: “NetworkManager is not installed on {{ ansible_hostname }}. Nothing left to do. Stopping here to prevent network restart.”
when: nm_installed.rc != 0 -
name: Uninstall NetworkManager
yum:
name: “{{ item }}”
state: absent
with_items: “{{ nm_installed.stdout_lines }}”
when: nm_installed.rc == 0
notify: Restart Networking -
name: Disable NetworkManager and Enable networking services
service:
name: “{{item.name}}”
enabled: “{{item.enabled}}”
state: “{{item.state}}”
changed_when: false
with_items: -
{name: “NetworkManager”, enabled: “no”, state: “stopped”}
-
{name: “network”, enabled: “yes”, state: “started”}
ignore_errors: true
notify: Restart Networking
`