From 9b647a3187837a105b84b5dc27dfe500a56af237 Mon Sep 17 00:00:00 2001 From: Elkhan Mammadli Date: Thu, 13 Mar 2025 16:28:02 +0000 Subject: [PATCH] fix: fix almalinux and cloudlinux support (#5) Co-authored-by: Andrew Lukoshko Reviewed-on: https://git.almalinux.org/rpms/cloud-init/pulls/5 Co-authored-by: Elkhan Mammadli Co-committed-by: Elkhan Mammadli --- ...s-for-AlmaLinux-OS-and-CloudLinux-OS.patch | 113 ++++++++++-------- SPECS/cloud-init.spec | 2 +- 2 files changed, 61 insertions(+), 54 deletions(-) diff --git a/SOURCES/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch b/SOURCES/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch index a9d1e46..0e690e9 100644 --- a/SOURCES/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch +++ b/SOURCES/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch @@ -1,36 +1,28 @@ -From 6701ba45d4cc3a888f2275f8f840ce37bc2f4959 Mon Sep 17 00:00:00 2001 -From: Andrew Lukoshko -Date: Thu, 13 Mar 2025 14:24:23 +0000 +From 4650b8c8819bd6b9f6163567f2b8f8e94ee5ee3c Mon Sep 17 00:00:00 2001 +From: Elkhan Mammadli +Date: Thu, 13 Mar 2025 18:23:03 +0400 Subject: [PATCH] Improvements for AlmaLinux OS and CloudLinux OS -Add AlmaLinux OS and CloudLinux OS support to: +- Fix cc_ntp module. +- Add support to cc_ca_certs module. +- Improve support for systemd integration. -Modules: -- cc_ca_certs -- cc_ntp -- cc_resolv_conf - -Datasources: -- Rbx Cloud Datasource - -Systemd services: -- cloud-final.service -- cloud-init-local.service -- cloud-init.service +Signed-off-by: Andrew Lukoshko --- cloudinit/config/cc_ca_certs.py | 8 ++++ - cloudinit/config/cc_ntp.py | 11 ++--- + cloudinit/config/cc_ntp.py | 3 ++ cloudinit/config/cc_resolv_conf.py | 2 + cloudinit/settings.py | 2 +- cloudinit/sources/DataSourceRbxCloud.py | 2 +- - systemd/cloud-final.service.tmpl | 2 +- - systemd/cloud-init-local.service.tmpl | 10 ++-- + systemd/cloud-config.service.tmpl | 2 +- + systemd/cloud-final.service.tmpl | 4 +- + systemd/cloud-init-local.service.tmpl | 12 ++--- systemd/cloud-init.service.tmpl | 4 +- templates/chrony.conf.almalinux.tmpl | 51 ++++++++++++++++++++ templates/chrony.conf.cloudlinux.tmpl | 51 ++++++++++++++++++++ templates/ntp.conf.almalinux.tmpl | 64 +++++++++++++++++++++++++ templates/ntp.conf.cloudlinux.tmpl | 64 +++++++++++++++++++++++++ - 12 files changed, 253 insertions(+), 18 deletions(-) + 13 files changed, 256 insertions(+), 13 deletions(-) create mode 100644 templates/chrony.conf.almalinux.tmpl create mode 100644 templates/chrony.conf.cloudlinux.tmpl create mode 100644 templates/ntp.conf.almalinux.tmpl @@ -63,34 +55,19 @@ index 8d3fd9a..4dd5843 100644 "debian", "fedora", diff --git a/cloudinit/config/cc_ntp.py b/cloudinit/config/cc_ntp.py -index 9eef24f..1015d43 100644 +index 9eef24f..653db7d 100644 --- a/cloudinit/config/cc_ntp.py +++ b/cloudinit/config/cc_ntp.py -@@ -109,14 +109,6 @@ DISTRO_CLIENT_CONFIG = { - "service_name": "ntpd", - }, - }, -- "centos": { -- "ntp": { -- "service_name": "ntpd", -- }, -- "chrony": { -- "service_name": "chronyd", -- }, -- }, - "cos": { - "chrony": { - "service_name": "chronyd", -@@ -224,6 +216,9 @@ DISTRO_CLIENT_CONFIG = { - for distro in ("opensuse-microos", "opensuse-tumbleweed", "opensuse-leap"): - DISTRO_CLIENT_CONFIG[distro] = DISTRO_CLIENT_CONFIG["opensuse"] - -+for distro in ("almalinux", "centos", "cloudlinux"): -+ DISTRO_CLIENT_CONFIG[distro] = DISTRO_CLIENT_CONFIG["rhel"] -+ +@@ -227,6 +227,9 @@ for distro in ("opensuse-microos", "opensuse-tumbleweed", "opensuse-leap"): for distro in ("sle_hpc", "sle-micro"): DISTRO_CLIENT_CONFIG[distro] = DISTRO_CLIENT_CONFIG["sles"] ++for distro in ("almalinux", "cloudlinux", "rocky"): ++ DISTRO_CLIENT_CONFIG[distro] = DISTRO_CLIENT_CONFIG["rhel"] ++ + # The schema definition for each cloud-config module is a strict contract for + # describing supported configuration parameters for each cloud-config section. + # It allows cloud-config to validate and alert users to invalid or ignored diff --git a/cloudinit/config/cc_resolv_conf.py b/cloudinit/config/cc_resolv_conf.py index aa88919..4eb1d76 100644 --- a/cloudinit/config/cc_resolv_conf.py @@ -131,10 +108,32 @@ index 9214f1b..14880ec 100644 source_param = "-s" for item in items: try: +diff --git a/systemd/cloud-config.service.tmpl b/systemd/cloud-config.service.tmpl +index 76e50ae..047969a 100644 +--- a/systemd/cloud-config.service.tmpl ++++ b/systemd/cloud-config.service.tmpl +@@ -5,7 +5,7 @@ After=network-online.target cloud-config.target + After=snapd.seeded.service + Before=systemd-user-sessions.service + Wants=network-online.target cloud-config.target +-{% if variant == "rhel" %} ++{% if variant in ["almalinux", "cloudlinux", "rhel"] %} + ConditionPathExists=!/etc/cloud/cloud-init.disabled + ConditionKernelCommandLine=!cloud-init=disabled + {% endif %} diff --git a/systemd/cloud-final.service.tmpl b/systemd/cloud-final.service.tmpl -index 85f423a..4faef66 100644 +index 85f423a..578c7f4 100644 --- a/systemd/cloud-final.service.tmpl +++ b/systemd/cloud-final.service.tmpl +@@ -7,7 +7,7 @@ After=multi-user.target + Before=apt-daily.service + {% endif %} + Wants=network-online.target cloud-config.service +-{% if variant == "rhel" %} ++{% if variant in ["almalinux", "cloudlinux", "rhel"] %} + ConditionPathExists=!/etc/cloud/cloud-init.disabled + ConditionKernelCommandLine=!cloud-init=disabled + {% endif %} @@ -19,7 +19,7 @@ ExecStart=/usr/bin/cloud-init modules --mode=final RemainAfterExit=yes TimeoutSec=0 @@ -145,7 +144,7 @@ index 85f423a..4faef66 100644 ExecStartPost=/bin/sh -c 'u=NetworkManager.service; \ out=$(systemctl show --property=SubState $u) || exit; \ diff --git a/systemd/cloud-init-local.service.tmpl b/systemd/cloud-init-local.service.tmpl -index 6f3f9d8..493eaf1 100644 +index 6f3f9d8..3f56494 100644 --- a/systemd/cloud-init-local.service.tmpl +++ b/systemd/cloud-init-local.service.tmpl @@ -1,23 +1,23 @@ @@ -153,7 +152,7 @@ index 6f3f9d8..493eaf1 100644 [Unit] Description=Initial cloud-init job (pre-networking) -{% if variant in ["ubuntu", "unknown", "debian", "rhel" ] %} -+{% if variant in ["almalinux", "cloudlinux", "ubuntu", "unknown", "debian", "rhel" ] %} ++{% if variant in ["almalinux", "cloudlinux", "ubuntu", "unknown", "debian", "rhel"] %} DefaultDependencies=no {% endif %} Wants=network-pre.target @@ -176,7 +175,15 @@ index 6f3f9d8..493eaf1 100644 Before=firewalld.target Conflicts=shutdown.target {% endif %} -@@ -33,7 +33,7 @@ ConditionKernelCommandLine=!cloud-init=disabled +@@ -26,14 +26,14 @@ Before=sysinit.target + Conflicts=shutdown.target + {% endif %} + RequiresMountsFor=/var/lib/cloud +-{% if variant == "rhel" %} ++{% if variant in ["almalinux", "cloudlinux", "rhel"] %} + ConditionPathExists=!/etc/cloud/cloud-init.disabled + ConditionKernelCommandLine=!cloud-init=disabled + {% endif %} [Service] Type=oneshot @@ -323,7 +330,7 @@ index 0000000..43b1f5d +#log measurements statistics tracking diff --git a/templates/ntp.conf.almalinux.tmpl b/templates/ntp.conf.almalinux.tmpl new file mode 100644 -index 0000000..9884df5 +index 0000000..6d166aa --- /dev/null +++ b/templates/ntp.conf.almalinux.tmpl @@ -0,0 +1,64 @@ @@ -342,7 +349,7 @@ index 0000000..9884df5 +# Permit all access over the loopback interface. This could +# be tightened as well, but to do so would effect some of +# the administrative functions. -+restrict 127.0.0.1 ++restrict 127.0.0.1 +restrict -6 ::1 + +# Hosts on local network are less restricted. @@ -377,7 +384,7 @@ index 0000000..9884df5 +includefile /etc/ntp/crypto/pw + +# Key file containing the keys and key identifiers used when operating -+# with symmetric key cryptography. ++# with symmetric key cryptography. +keys /etc/ntp/keys + +# Specify the key identifiers which are trusted. @@ -393,7 +400,7 @@ index 0000000..9884df5 +#statistics clockstats cryptostats loopstats peerstats diff --git a/templates/ntp.conf.cloudlinux.tmpl b/templates/ntp.conf.cloudlinux.tmpl new file mode 100644 -index 0000000..9884df5 +index 0000000..6d166aa --- /dev/null +++ b/templates/ntp.conf.cloudlinux.tmpl @@ -0,0 +1,64 @@ @@ -412,7 +419,7 @@ index 0000000..9884df5 +# Permit all access over the loopback interface. This could +# be tightened as well, but to do so would effect some of +# the administrative functions. -+restrict 127.0.0.1 ++restrict 127.0.0.1 +restrict -6 ::1 + +# Hosts on local network are less restricted. @@ -447,7 +454,7 @@ index 0000000..9884df5 +includefile /etc/ntp/crypto/pw + +# Key file containing the keys and key identifiers used when operating -+# with symmetric key cryptography. ++# with symmetric key cryptography. +keys /etc/ntp/keys + +# Specify the key identifiers which are trusted. diff --git a/SPECS/cloud-init.spec b/SPECS/cloud-init.spec index 25dc8da..d74e6a1 100644 --- a/SPECS/cloud-init.spec +++ b/SPECS/cloud-init.spec @@ -275,7 +275,7 @@ fi %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf %changelog -* Thu Mar 13 2025 Andrew Lukoshko - 23.4-7.el8_10.8.alma.2 +* Thu Mar 13 2025 Elkhan Mammadli - 23.4-7.el8_10.8.alma.2 - Update AlmaLinux patch to fix issue with disabling cloud-init service [albz#500] * Tue Sep 24 2024 Eduard Abdullin - 23.4-7.el8_10.8.alma.1