Install role pre-requisite packages
Historically we were assuming some subsystems like udev or dbus being part of the core images and never handled their installation. However such subsystems are a hard requirement for role to succeed and networkd to operate correctly. To ensure all required bits in place, we've adding installation of dbus and udev to the role in order to prevent failures on very minimal images Change-Id: Ie77a7064d17e6aef0be16b8a5d9be5cc121b665b
This commit is contained in:
parent
1ef65a0e56
commit
b9554b1e7f
@ -13,6 +13,17 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Ensure required services are running
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
enabled: true
|
||||
masked: false
|
||||
with_items:
|
||||
- dbus
|
||||
- systemd-udevd
|
||||
listen: Restart systemd-networkd
|
||||
|
||||
- name: Restart networkd
|
||||
systemd:
|
||||
name: "systemd-networkd"
|
||||
|
@ -96,6 +96,8 @@
|
||||
until: install_packages is success
|
||||
retries: 3
|
||||
delay: 2
|
||||
notify:
|
||||
- Restart systemd-networkd
|
||||
|
||||
- name: Create systemd-networkd directory
|
||||
file:
|
||||
@ -217,16 +219,6 @@
|
||||
notify:
|
||||
- Restart systemd-networkd
|
||||
|
||||
- name: Enable and start systemd-networkd
|
||||
systemd:
|
||||
name: "systemd-networkd"
|
||||
enabled: "yes"
|
||||
state: started
|
||||
when:
|
||||
- systemd_run_networkd | bool
|
||||
tags:
|
||||
- systemd-networkd
|
||||
|
||||
- name: Restart systemd_networkd prior to applying sysctl changes
|
||||
meta: flush_handlers
|
||||
|
||||
|
@ -18,34 +18,19 @@
|
||||
iproute_package_name:
|
||||
redhat: iproute
|
||||
debian: iproute2
|
||||
# NOTE: Packages below are potentially needed outside of molecule as well
|
||||
procps_package_name:
|
||||
redhat: procps-ng
|
||||
debian: procps
|
||||
# Needed for `restorecon` command
|
||||
selinux_package_name:
|
||||
redhat: policycoreutils
|
||||
debian: ''
|
||||
udev_package_name:
|
||||
redhat: systemd-udev
|
||||
debian: udev
|
||||
install_packages:
|
||||
- "{{ iproute_package_name[ansible_facts['os_family'] | lower] }}"
|
||||
- "{{ procps_package_name[ansible_facts['os_family'] | lower] }}"
|
||||
- "{{ selinux_package_name[ansible_facts['os_family'] | lower] }}"
|
||||
- "{{ udev_package_name[ansible_facts['os_family'] | lower] }}"
|
||||
- dbus
|
||||
tasks:
|
||||
- name: Install required packages
|
||||
ansible.builtin.package:
|
||||
name: "{{ install_packages | select() }}"
|
||||
update_cache: "{{ (ansible_facts['os_family'] | lower == 'debian') | ternary(true, omit) }}"
|
||||
|
||||
- name: Ensure required services are running
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
enabled: true
|
||||
masked: false
|
||||
with_items:
|
||||
- dbus
|
||||
- systemd-udevd
|
||||
|
@ -14,7 +14,9 @@
|
||||
# limitations under the License.
|
||||
|
||||
_systemd_networkd_distro_packages:
|
||||
- dbus # Needed for networkctl
|
||||
- "{{ systemd_resolved_available | ternary('systemd-resolved', '') }}"
|
||||
- udev # Needed for networkd to bring interfaces up
|
||||
|
||||
_systemd_resolved_available: false
|
||||
|
||||
|
@ -13,7 +13,9 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
_systemd_networkd_distro_packages: []
|
||||
_systemd_networkd_distro_packages:
|
||||
- dbus # Needed for networkctl
|
||||
- udev # Needed for networkd to bring interfaces up
|
||||
|
||||
_systemd_resolved_available: true
|
||||
|
||||
|
@ -14,8 +14,10 @@
|
||||
# limitations under the License.
|
||||
|
||||
_systemd_networkd_distro_packages:
|
||||
- dbus # Needed for networkctl
|
||||
- systemd-networkd
|
||||
- "{{ systemd_resolved_available | ternary('systemd-resolved', '') }}"
|
||||
- systemd-udev # Needed for networkd to bring interfaces up
|
||||
|
||||
_systemd_resolved_available: false
|
||||
|
||||
|
@ -14,7 +14,9 @@
|
||||
# limitations under the License.
|
||||
|
||||
_systemd_networkd_distro_packages:
|
||||
- dbus # Needed for networkctl
|
||||
- "{{ systemd_resolved_available | ternary('systemd-resolved', '') }}"
|
||||
- udev # Needed for networkd to bring interfaces up
|
||||
|
||||
_systemd_resolved_available: true
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user