From bcc4c18641157955550146bf16a64122cbce4a74 Mon Sep 17 00:00:00 2001 From: aleksandrmihajlov Date: Sat, 6 Jun 2026 02:37:22 +0100 Subject: [PATCH] Wait for network-online.target before mirror sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit systemd's network.target is passive — only signals that the network stack is loaded, not that the network is actually usable (interfaces configured, default route present, DNS responsive). Timers firing right after boot (especially with Persistent=true catching up missed runs) can race ahead of network readiness, causing rsync to exit 10 (socket I/O error) and the service to enter failed state until the next scheduled run. Replace After=network.target with After=network-online.target and add Wants=network-online.target so the service waits until the network is fully online before attempting to sync. Affects all service templates across playbooks: - combined-mirror: cloudlinux-complete-mirror, cloudlinux-mirror, swng-mirror - complete-swng-rsync: swng-mirror - specific-version-rsync: swng-version-mirror - yum-reposync: swng-reposync Observed on a customer mirror host where post-reboot timer trigger hit a network race; a drop-in with the same fix resolved it. --- ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 | 3 ++- ansible/combined-mirror/cloudlinux-mirror.service.j2 | 3 ++- ansible/combined-mirror/swng-mirror.service.j2 | 3 ++- ansible/complete-swng-rsync/swng-mirror.service.j2 | 3 ++- .../swng-version-mirror.service.j2 | 3 ++- ansible/yum-reposync/swng-reposync.service.j2 | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 b/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 index a49635a..a85f4b2 100644 --- a/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 +++ b/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync Complete CloudLinux and SWNG Mirrors -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/combined-mirror/cloudlinux-mirror.service.j2 b/ansible/combined-mirror/cloudlinux-mirror.service.j2 index a2ab277..ff69265 100644 --- a/ansible/combined-mirror/cloudlinux-mirror.service.j2 +++ b/ansible/combined-mirror/cloudlinux-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync CloudLinux Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/combined-mirror/swng-mirror.service.j2 b/ansible/combined-mirror/swng-mirror.service.j2 index da50f5b..a75aa83 100644 --- a/ansible/combined-mirror/swng-mirror.service.j2 +++ b/ansible/combined-mirror/swng-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync SWNG Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/complete-swng-rsync/swng-mirror.service.j2 b/ansible/complete-swng-rsync/swng-mirror.service.j2 index 4ce7768..7d9cd26 100644 --- a/ansible/complete-swng-rsync/swng-mirror.service.j2 +++ b/ansible/complete-swng-rsync/swng-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync Complete SWNG Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 b/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 index fb10dde..92ce2e4 100644 --- a/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 +++ b/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync CloudLinux {{ cloudlinux_version }} SWNG Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/yum-reposync/swng-reposync.service.j2 b/ansible/yum-reposync/swng-reposync.service.j2 index 2b7eb94..23db239 100644 --- a/ansible/yum-reposync/swng-reposync.service.j2 +++ b/ansible/yum-reposync/swng-reposync.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync SWNG Repositories with reposync -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot