From d43f0d93386f123892451d923c2b3c6fe7130c39 Mon Sep 17 00:00:00 2001 From: Emanuele Giuseppe Esposito Date: Thu, 19 May 2022 11:38:22 +0200 Subject: [PATCH 4/4] Remove rhel specific files RH-Author: Emanuele Giuseppe Esposito RH-MergeRequest: 65: Align rhel custom files with upstream (#1431) RH-Commit: [2/2] 5e31f0bcb500682e7746ccbd2e628c2ef339d6c6 RH-Bugzilla: 2082071 RH-Acked-by: Mohamed Gamal Morsy RH-Acked-by: Eduardo Otubo RH-Acked-by: Vitaly Kuznetsov Remove all files in rhel/ directory and related commands that copy and replace them with the generated ones. Also adjust setup.py, align it with upstream: - by default, after rhel 8.3 ds-identify is in /usr/libexec, so no need to move it manually - bash-completions work also in /usr/share, as upstream - udev also works in /lib/udev Also remove rhel/README since it is outdated (chef is used in cloud.cfg) and cloud-init-tmpfiles.conf, as it exists also in .distro. X-downstream-only: yes Signed-off-by: Emanuele Giuseppe Esposito --- redhat/cloud-init.spec.template | 21 ++------ rhel/README.rhel | 5 -- rhel/cloud-init-tmpfiles.conf | 1 - rhel/cloud.cfg | 69 --------------------------- rhel/systemd/cloud-config.service | 18 ------- rhel/systemd/cloud-config.target | 11 ----- rhel/systemd/cloud-final.service | 24 ---------- rhel/systemd/cloud-init-local.service | 31 ------------ rhel/systemd/cloud-init.service | 26 ---------- rhel/systemd/cloud-init.target | 7 --- setup.py | 28 ++++++++++- 11 files changed, 31 insertions(+), 210 deletions(-) delete mode 100644 rhel/README.rhel delete mode 100644 rhel/cloud-init-tmpfiles.conf delete mode 100644 rhel/cloud.cfg delete mode 100644 rhel/systemd/cloud-config.service delete mode 100644 rhel/systemd/cloud-config.target delete mode 100644 rhel/systemd/cloud-final.service delete mode 100644 rhel/systemd/cloud-init-local.service delete mode 100644 rhel/systemd/cloud-init.service delete mode 100644 rhel/systemd/cloud-init.target diff --git a/rhel/README.rhel b/rhel/README.rhel deleted file mode 100644 index aa29630d..00000000 --- a/rhel/README.rhel +++ /dev/null @@ -1,5 +0,0 @@ -The following cloud-init modules are currently unsupported on this OS: - - apt_update_upgrade ('apt_update', 'apt_upgrade', 'apt_mirror', 'apt_preserve_sources_list', 'apt_old_mirror', 'apt_sources', 'debconf_selections', 'packages' options) - - byobu ('byobu_by_default' option) - - chef - - grub_dpkg diff --git a/rhel/cloud-init-tmpfiles.conf b/rhel/cloud-init-tmpfiles.conf deleted file mode 100644 index 0c6d2a3b..00000000 --- a/rhel/cloud-init-tmpfiles.conf +++ /dev/null @@ -1 +0,0 @@ -d /run/cloud-init 0700 root root - - diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg deleted file mode 100644 index cbee197a..00000000 --- a/rhel/cloud.cfg +++ /dev/null @@ -1,69 +0,0 @@ -users: - - default - -disable_root: 1 -ssh_pwauth: 0 - -mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2'] -resize_rootfs_tmp: /dev -ssh_deletekeys: 1 -ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519'] -syslog_fix_perms: ~ -disable_vmware_customization: false - -cloud_init_modules: - - disk_setup - - migrator - - bootcmd - - write-files - - growpart - - resizefs - - set_hostname - - update_hostname - - update_etc_hosts - - rsyslog - - users-groups - - ssh - -cloud_config_modules: - - mounts - - locale - - set-passwords - - rh_subscription - - yum-add-repo - - package-update-upgrade-install - - timezone - - puppet - - chef - - salt-minion - - mcollective - - disable-ec2-metadata - - runcmd - -cloud_final_modules: - - rightscale_userdata - - scripts-per-once - - scripts-per-boot - - scripts-per-instance - - scripts-user - - ssh-authkey-fingerprints - - keys-to-console - - phone-home - - final-message - - power-state-change - -system_info: - default_user: - name: cloud-user - lock_passwd: true - gecos: Cloud User - groups: [adm, systemd-journal] - sudo: ["ALL=(ALL) NOPASSWD:ALL"] - shell: /bin/bash - distro: rhel - paths: - cloud_dir: /var/lib/cloud - templates_dir: /etc/cloud/templates - ssh_svcname: sshd - -# vim:syntax=yaml diff --git a/rhel/systemd/cloud-config.service b/rhel/systemd/cloud-config.service deleted file mode 100644 index f3dcd4be..00000000 --- a/rhel/systemd/cloud-config.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Apply the settings specified in cloud-config -After=network-online.target cloud-config.target -Wants=network-online.target cloud-config.target -ConditionPathExists=!/etc/cloud/cloud-init.disabled -ConditionKernelCommandLine=!cloud-init=disabled - -[Service] -Type=oneshot -ExecStart=/usr/bin/cloud-init modules --mode=config -RemainAfterExit=yes -TimeoutSec=0 - -# Output needs to appear in instance console output -StandardOutput=journal+console - -[Install] -WantedBy=cloud-init.target diff --git a/rhel/systemd/cloud-config.target b/rhel/systemd/cloud-config.target deleted file mode 100644 index ae9b7d02..00000000 --- a/rhel/systemd/cloud-config.target +++ /dev/null @@ -1,11 +0,0 @@ -# cloud-init normally emits a "cloud-config" upstart event to inform third -# parties that cloud-config is available, which does us no good when we're -# using systemd. cloud-config.target serves as this synchronization point -# instead. Services that would "start on cloud-config" with upstart can -# instead use "After=cloud-config.target" and "Wants=cloud-config.target" -# as appropriate. - -[Unit] -Description=Cloud-config availability -Wants=cloud-init-local.service cloud-init.service -After=cloud-init-local.service cloud-init.service diff --git a/rhel/systemd/cloud-final.service b/rhel/systemd/cloud-final.service deleted file mode 100644 index e281c0cf..00000000 --- a/rhel/systemd/cloud-final.service +++ /dev/null @@ -1,24 +0,0 @@ -[Unit] -Description=Execute cloud user/final scripts -After=network-online.target cloud-config.service rc-local.service -Wants=network-online.target cloud-config.service -ConditionPathExists=!/etc/cloud/cloud-init.disabled -ConditionKernelCommandLine=!cloud-init=disabled - -[Service] -Type=oneshot -ExecStart=/usr/bin/cloud-init modules --mode=final -RemainAfterExit=yes -TimeoutSec=0 -KillMode=process -# Restart NetworkManager if it is present and running. -ExecStartPost=/bin/sh -c 'u=NetworkManager.service; \ - out=$(systemctl show --property=SubState $u) || exit; \ - [ "$out" = "SubState=running" ] || exit 0; \ - systemctl reload-or-try-restart $u' - -# Output needs to appear in instance console output -StandardOutput=journal+console - -[Install] -WantedBy=cloud-init.target diff --git a/rhel/systemd/cloud-init-local.service b/rhel/systemd/cloud-init-local.service deleted file mode 100644 index 8f9f6c9f..00000000 --- a/rhel/systemd/cloud-init-local.service +++ /dev/null @@ -1,31 +0,0 @@ -[Unit] -Description=Initial cloud-init job (pre-networking) -DefaultDependencies=no -Wants=network-pre.target -After=systemd-remount-fs.service -Requires=dbus.socket -After=dbus.socket -Before=NetworkManager.service network.service -Before=network-pre.target -Before=shutdown.target -Before=firewalld.target -Conflicts=shutdown.target -RequiresMountsFor=/var/lib/cloud -ConditionPathExists=!/etc/cloud/cloud-init.disabled -ConditionKernelCommandLine=!cloud-init=disabled - -[Service] -Type=oneshot -ExecStartPre=/bin/mkdir -p /run/cloud-init -ExecStartPre=/sbin/restorecon /run/cloud-init -ExecStartPre=/usr/bin/touch /run/cloud-init/enabled -ExecStart=/usr/bin/cloud-init init --local -ExecStart=/bin/touch /run/cloud-init/network-config-ready -RemainAfterExit=yes -TimeoutSec=0 - -# Output needs to appear in instance console output -StandardOutput=journal+console - -[Install] -WantedBy=cloud-init.target diff --git a/rhel/systemd/cloud-init.service b/rhel/systemd/cloud-init.service deleted file mode 100644 index 0b3d796d..00000000 --- a/rhel/systemd/cloud-init.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=Initial cloud-init job (metadata service crawler) -Wants=cloud-init-local.service -Wants=sshd-keygen.service -Wants=sshd.service -After=cloud-init-local.service -After=NetworkManager.service network.service -After=NetworkManager-wait-online.service -Before=network-online.target -Before=sshd-keygen.service -Before=sshd.service -Before=systemd-user-sessions.service -ConditionPathExists=!/etc/cloud/cloud-init.disabled -ConditionKernelCommandLine=!cloud-init=disabled - -[Service] -Type=oneshot -ExecStart=/usr/bin/cloud-init init -RemainAfterExit=yes -TimeoutSec=0 - -# Output needs to appear in instance console output -StandardOutput=journal+console - -[Install] -WantedBy=cloud-init.target diff --git a/rhel/systemd/cloud-init.target b/rhel/systemd/cloud-init.target deleted file mode 100644 index 083c3b6f..00000000 --- a/rhel/systemd/cloud-init.target +++ /dev/null @@ -1,7 +0,0 @@ -# cloud-init target is enabled by cloud-init-generator -# To disable it you can either: -# a.) boot with kernel cmdline of 'cloud-init=disabled' -# b.) touch a file /etc/cloud/cloud-init.disabled -[Unit] -Description=Cloud-init target -After=multi-user.target diff --git a/setup.py b/setup.py index 3c377eaa..a9132d2c 100755 --- a/setup.py +++ b/setup.py @@ -139,6 +139,21 @@ INITSYS_FILES = { "sysvinit_deb": [f for f in glob("sysvinit/debian/*") if is_f(f)], "sysvinit_openrc": [f for f in glob("sysvinit/gentoo/*") if is_f(f)], "sysvinit_suse": [f for f in glob("sysvinit/suse/*") if is_f(f)], + "systemd": [ + render_tmpl(f) + for f in ( + glob("systemd/*.tmpl") + + glob("systemd/*.service") + + glob("systemd/*.socket") + + glob("systemd/*.target") + ) + if (is_f(f) and not is_generator(f)) + ], + "systemd.generators": [ + render_tmpl(f, mode=0o755) + for f in glob("systemd/*") + if is_f(f) and is_generator(f) + ], "upstart": [f for f in glob("upstart/*") if is_f(f)], } INITSYS_ROOTS = { @@ -148,6 +163,10 @@ INITSYS_ROOTS = { "sysvinit_deb": "etc/init.d", "sysvinit_openrc": "etc/init.d", "sysvinit_suse": "etc/init.d", + "systemd": pkg_config_read("systemd", "systemdsystemunitdir"), + "systemd.generators": pkg_config_read( + "systemd", "systemdsystemgeneratordir" + ), "upstart": "etc/init/", } INITSYS_TYPES = sorted([f.partition(".")[0] for f in INITSYS_ROOTS.keys()]) @@ -262,13 +281,15 @@ data_files = [ ( USR_LIB_EXEC + "/cloud-init", [ + "tools/ds-identify", "tools/hook-hotplug", "tools/uncloud-init", "tools/write-ssh-key-fingerprints", ], ), ( - ETC + "/bash_completion.d", ["bash_completion/cloud-init"], + USR + "/share/bash-completion/completions", + ["bash_completion/cloud-init"], ), (USR + "/share/doc/cloud-init", [f for f in glob("doc/*") if is_f(f)]), ( @@ -287,7 +308,8 @@ if not platform.system().endswith("BSD"): ETC + "/NetworkManager/dispatcher.d/", ["tools/hook-network-manager"], ), - ("/usr/lib/udev/rules.d", [f for f in glob("udev/*.rules")]), + (ETC + "/dhcp/dhclient-exit-hooks.d/", ["tools/hook-dhclient"]), + (LIB + "/udev/rules.d", [f for f in glob("udev/*.rules")]), ( ETC + "/systemd/system/sshd-keygen@.service.d/", ["systemd/disable-sshd-keygen-if-cloud-init-active.conf"], @@ -317,6 +339,8 @@ setuptools.setup( scripts=["tools/cloud-init-per"], license="Dual-licensed under GPLv3 or Apache 2.0", data_files=data_files, + install_requires=requirements, + cmdclass=cmdclass, entry_points={ "console_scripts": [ "cloud-init = cloudinit.cmd.main:main", -- 2.35.3