diff --git a/files/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch b/files/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch index 1b3e71b..0e690e9 100644 --- a/files/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch +++ b/files/0001-Improvements-for-AlmaLinux-OS-and-CloudLinux-OS.patch @@ -1,36 +1,28 @@ -From f4f100c0dddf1f11b239374a8dc452739b8e6a81 Mon Sep 17 00:00:00 2001 -From: Andrew Lukoshko -Date: Thu, 28 Mar 2024 14:24:08 +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-init.service.tmpl | 2 +- + 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, 252 insertions(+), 17 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 @@ -106,7 +83,7 @@ index aa88919..4eb1d76 100644 "mariner", "opensuse", diff --git a/cloudinit/settings.py b/cloudinit/settings.py -index 5ced21b..51cb115 100644 +index 3a581e5..def6d4b 100644 --- a/cloudinit/settings.py +++ b/cloudinit/settings.py @@ -61,7 +61,7 @@ CFG_BUILTIN = { @@ -131,11 +108,33 @@ 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 bcf8b00..6d34761 100644 +index 85f423a..578c7f4 100644 --- a/systemd/cloud-final.service.tmpl +++ b/systemd/cloud-final.service.tmpl -@@ -18,7 +18,7 @@ ExecStart=/usr/bin/cloud-init modules --mode=final +@@ -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 KillMode=process @@ -145,7 +144,7 @@ index bcf8b00..6d34761 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 3a1ca7f..853ae2c 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 3a1ca7f..853ae2c 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 3a1ca7f..853ae2c 100644 Before=firewalld.target Conflicts=shutdown.target {% endif %} -@@ -32,7 +32,7 @@ ConditionEnvironment=!KERNEL_CMDLINE=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 @@ -186,7 +193,7 @@ index 3a1ca7f..853ae2c 100644 ExecStartPre=/sbin/restorecon /run/cloud-init ExecStartPre=/usr/bin/touch /run/cloud-init/enabled diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl -index bf91164..1ae88f7 100644 +index 26d2e39..71f867e 100644 --- a/systemd/cloud-init.service.tmpl +++ b/systemd/cloud-init.service.tmpl @@ -1,7 +1,7 @@ @@ -198,6 +205,15 @@ index bf91164..1ae88f7 100644 DefaultDependencies=no {% endif %} Wants=cloud-init-local.service +@@ -38,7 +38,7 @@ Conflicts=shutdown.target + Before=shutdown.target + Conflicts=shutdown.target + {% endif %} +-{% if variant == "rhel" %} ++{% if variant in ["almalinux", "cloudlinux", "rhel"] %} + ConditionPathExists=!/etc/cloud/cloud-init.disabled + ConditionKernelCommandLine=!cloud-init=disabled + {% endif %} diff --git a/templates/chrony.conf.almalinux.tmpl b/templates/chrony.conf.almalinux.tmpl new file mode 100644 index 0000000..43b1f5d @@ -314,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 @@ @@ -333,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. @@ -368,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. @@ -384,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 @@ @@ -403,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. @@ -438,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. @@ -453,5 +469,5 @@ index 0000000..9884df5 +# Enable writing of statistics records. +#statistics clockstats cryptostats loopstats peerstats -- -2.27.0 +2.43.5