%{!?license: %global license %%doc} # The only reason we are archful is because dmidecode is ExclusiveArch # https://bugzilla.redhat.com/show_bug.cgi?id=1067089 %global debug_package %{nil} Name: cloud-init Version: 19.4 Release: 1%{?dist}.7 Summary: Cloud instance init scripts Group: System Environment/Base License: GPLv3 URL: http://launchpad.net/cloud-init Source0: https://launchpad.net/cloud-init/trunk/%{version}/+download/%{name}-%{version}.tar.gz Source1: cloud-init-tmpfiles.conf Patch0001: 0001-Add-initial-redhat-setup.patch Patch0002: 0002-Do-not-write-NM_CONTROLLED-no-in-generated-interface.patch Patch0003: 0003-limit-permissions-on-def_log_file.patch Patch0004: 0004-sysconfig-Don-t-write-BOOTPROTO-dhcp-for-ipv6-dhcp.patch Patch0005: 0005-DataSourceAzure.py-use-hostnamectl-to-set-hostname.patch Patch0006: 0006-include-NOZEROCONF-yes-in-etc-sysconfig-network.patch Patch0007: 0007-Remove-race-condition-between-cloud-init-and-Network.patch # For bz#1831646 - [RHEL8.2.1] Race condition of starting cloud-init and NetworkManager Patch8: ci-Make-cloud-init.service-execute-after-network-is-up.patch # For bz#1844366 - [rhel-8.2.1]Incorrect ds-identify check in cloud-init-generator Patch9: ci-Change-from-redhat-to-rhel-in-systemd-generator-tmpl.patch # For bz#1844366 - [rhel-8.2.1]Incorrect ds-identify check in cloud-init-generator Patch10: ci-cloud-init.service.tmpl-use-rhel-instead-of-redhat-4.patch # For bz#1850456 - [RHEL8.2.1] Do not log IMDSv2 token values into cloud-init.log Patch11: ci-ec2-Do-not-log-IMDSv2-token-values-instead-use-REDAC.patch # For bz#1850456 - [RHEL8.2.1] Do not log IMDSv2 token values into cloud-init.log Patch12: ci-ec2-only-redact-token-request-headers-in-logs-avoid-.patch # For bz#1855595 - CVE-2018-10896 cloud-init: default configuration disabled deletion of SSH host keys [rhel-8] [rhel-8.2.1] Patch13: ci-Enable-ssh_deletekeys-by-default.patch BuildArch: noarch BuildRequires: pkgconfig(systemd) BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: systemd # For tests BuildRequires: iproute BuildRequires: python3-configobj # # https://bugzilla.redhat.com/show_bug.cgi?id=1417029 BuildRequires: python3-httpretty >= 0.8.14-2 BuildRequires: python3-jinja2 BuildRequires: python3-jsonpatch BuildRequires: python3-jsonschema BuildRequires: python3-mock BuildRequires: python3-nose BuildRequires: python3-oauthlib BuildRequires: python3-prettytable BuildRequires: python3-pyserial BuildRequires: python3-PyYAML BuildRequires: python3-requests BuildRequires: python3-six BuildRequires: python3-unittest2 # dnf is needed to make cc_ntp unit tests work # https://bugs.launchpad.net/cloud-init/+bug/1721573 BuildRequires: /usr/bin/dnf Requires: e2fsprogs Requires: iproute Requires: libselinux-python3 Requires: net-tools Requires: policycoreutils-python3 Requires: procps Requires: python3-configobj Requires: python3-jinja2 Requires: python3-jsonpatch Requires: python3-jsonschema Requires: python3-oauthlib Requires: python3-prettytable Requires: python3-pyserial Requires: python3-PyYAML Requires: python3-requests Requires: python3-six Requires: shadow-utils Requires: util-linux Requires: xfsprogs %{?systemd_requires} %description Cloud-init is a set of init scripts for cloud instances. Cloud instances need special scripts to run during initialization to retrieve and install ssh keys and to let the user run various scripts. %prep %autosetup -p1 # Change shebangs sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/env python3|' \ -e 's|#!/usr/bin/python|#!/usr/bin/python3|' tools/* cloudinit/ssh_util.py %build %py3_build %install %py3_install -- python3 tools/render-cloudcfg --variant fedora > $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg mkdir -p $RPM_BUILD_ROOT/var/lib/cloud # /run/cloud-init needs a tmpfiles.d entry mkdir -p $RPM_BUILD_ROOT/run/cloud-init mkdir -p $RPM_BUILD_ROOT/%{_tmpfilesdir} cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_tmpfilesdir}/%{name}.conf # We supply our own config file since our software differs from Ubuntu's. cp -p rhel/cloud.cfg $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d cp -p tools/21-cloudinit.conf $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf # Make installed NetworkManager hook name less generic mv $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/hook-network-manager \ $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook # Install our own systemd units (rhbz#1440831) mkdir -p $RPM_BUILD_ROOT%{_unitdir} cp rhel/systemd/* $RPM_BUILD_ROOT%{_unitdir}/ [ ! -d $RPM_BUILD_ROOT/usr/lib/systemd/system-generators ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system-generators python3 tools/render-cloudcfg --variant rhel systemd/cloud-init-generator.tmpl > $RPM_BUILD_ROOT/usr/lib/systemd/system-generators/cloud-init-generator chmod 755 $RPM_BUILD_ROOT/usr/lib/systemd/system-generators/cloud-init-generator [ ! -d $RPM_BUILD_ROOT/usr/lib/%{name} ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/%{name} cp -p tools/ds-identify $RPM_BUILD_ROOT%{_libexecdir}/%{name}/ds-identify %clean rm -rf $RPM_BUILD_ROOT %post if [ $1 -eq 1 ] ; then # Initial installation # Enabled by default per "runs once then goes away" exception /bin/systemctl enable cloud-config.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-final.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-init.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-init-local.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-init.target >/dev/null 2>&1 || : elif [ $1 -eq 2 ]; then # Upgrade. If the upgrade is from a version older than 0.7.9-8, # there will be stale systemd config /bin/systemctl is-enabled cloud-config.service >/dev/null 2>&1 && /bin/systemctl reenable cloud-config.service >/dev/null 2>&1 || : /bin/systemctl is-enabled cloud-final.service >/dev/null 2>&1 && /bin/systemctl reenable cloud-final.service >/dev/null 2>&1 || : /bin/systemctl is-enabled cloud-init.service >/dev/null 2>&1 && /bin/systemctl reenable cloud-init.service >/dev/null 2>&1 || : /bin/systemctl is-enabled cloud-init-local.service >/dev/null 2>&1 && /bin/systemctl reenable cloud-init-local.service >/dev/null 2>&1 || : /bin/systemctl is-enabled cloud-init.target >/dev/null 2>&1 && /bin/systemctl reenable cloud-init.target >/dev/null 2>&1 || : fi %preun if [ $1 -eq 0 ] ; then # Package removal, not upgrade /bin/systemctl --no-reload disable cloud-config.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-final.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-init.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-init-local.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-init.target >/dev/null 2>&1 || : # One-shot services -> no need to stop fi %postun %systemd_postun %files %license LICENSE %doc ChangeLog rhel/README.rhel %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg %dir %{_sysconfdir}/cloud/cloud.cfg.d %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/*.cfg %doc %{_sysconfdir}/cloud/cloud.cfg.d/README %dir %{_sysconfdir}/cloud/templates %config(noreplace) %{_sysconfdir}/cloud/templates/* %{_unitdir}/cloud-config.service %{_unitdir}/cloud-config.target %{_unitdir}/cloud-final.service %{_unitdir}/cloud-init-local.service %{_unitdir}/cloud-init.service %{_unitdir}/cloud-init.target %{_tmpfilesdir}/%{name}.conf %{python3_sitelib}/* %{_libexecdir}/%{name} %{_bindir}/cloud-init* %doc %{_datadir}/doc/%{name} %dir %verify(not mode) /run/cloud-init %dir /var/lib/cloud /etc/NetworkManager/dispatcher.d/cloud-init-azure-hook %{_udevrulesdir}/66-azure-ephemeral.rules %{_sysconfdir}/bash_completion.d/cloud-init %{_bindir}/cloud-id %{_libexecdir}/%{name}/ds-identify /usr/lib/systemd/system-generators/cloud-init-generator %dir %{_sysconfdir}/rsyslog.d %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf %changelog * Mon Jul 13 2020 Miroslav Rezanina - 19.4-1.el8.7 - ci-Enable-ssh_deletekeys-by-default.patch [bz#1855595] - Resolves: bz#1855595 (CVE-2018-10896 cloud-init: default configuration disabled deletion of SSH host keys [rhel-8] [rhel-8.2.1]) * Fri Jun 26 2020 Miroslav Rezanina - 19.4-1.el8.6 - Fixing cloud-init-generator permissions [bz#1844366] - Resolves: bz#1844366 ([rhel-8.2.1]Incorrect ds-identify check in cloud-init-generator) * Fri Jun 26 2020 Miroslav Rezanina - 19.4-1.el8.5 - ci-ec2-Do-not-log-IMDSv2-token-values-instead-use-REDAC.patch [bz#1850456] - ci-ec2-only-redact-token-request-headers-in-logs-avoid-.patch [bz#1850456] - Resolves: bz#1850456 ([RHEL8.2.1] Do not log IMDSv2 token values into cloud-init.log) * Wed Jun 24 2020 Miroslav Rezanina - 19.4-1.el8.4 - ci-Render-the-generator-from-template-instead-of-cp.patch [bz#1844366] - ci-Change-from-redhat-to-rhel-in-systemd-generator-tmpl.patch [bz#1844366] - ci-cloud-init.service.tmpl-use-rhel-instead-of-redhat-4.patch [bz#1844366] - Resolves: bz#1844366 ([rhel-8.2.1]Incorrect ds-identify check in cloud-init-generator) * Tue Jun 09 2020 Miroslav Rezanina - 19.4-1.el8.3 - ci-changing-ds-identify-patch-from-usr-lib-to-usr-libex.patch [bz#1844366] - Resolves: bz#1844366 ([rhel-8.2.1]Incorrect ds-identify check in cloud-init-generator) * Mon Jun 01 2020 Miroslav Rezanina - 19.4-1.el8.2 - ci-Make-cloud-init.service-execute-after-network-is-up.patch [bz#1831646] - Resolves: bz#1831646 ([RHEL8.2.1] Race condition of starting cloud-init and NetworkManager) * Mon Apr 20 2020 Miroslav Rezanina - 19.4-1.el8.1 - Rebase to cloud-init 19.4 [bz#1811912] - Resolves: bz#1811912 ([RHEL-8.2.1] cloud-init rebase to 19.4) * Tue Mar 10 2020 Miroslav Rezanina - 18.5-12.el8 - ci-Remove-race-condition-between-cloud-init-and-Network.patch [bz#1807797] - Resolves: bz#1807797 ([cloud-init][RHEL-8.2.0] /etc/resolv.conf lose config after reboot (initial instance is ok)) * Thu Feb 20 2020 Miroslav Rezanina - 18.5-11.el8 - ci-azure-avoid-re-running-cloud-init-when-instance-id-i.patch [bz#1788684] - ci-net-skip-bond-interfaces-in-get_interfaces.patch [bz#1768770] - ci-net-add-is_master-check-for-filtering-device-list.patch [bz#1768770] - Resolves: bz#1768770 (cloud-init complaining about enslaved mac) - Resolves: bz#1788684 ([RHEL-8] cloud-init Azure byte swap (hyperV Gen2 Only)) * Thu Feb 13 2020 Miroslav Rezanina - 18.5-10.el8 - ci-cmd-main.py-Fix-missing-modules-init-key-in-modes-di.patch [bz#1802140] - Resolves: bz#1802140 ([cloud-init][RHEL8.2]cloud-init cloud-final.service fail with KeyError: 'modules-init' after upgrade to version 18.2-1.el7_6.1 in RHV) * Tue Jan 28 2020 Miroslav Rezanina - 18.5-9.el8 - ci-Removing-cloud-user-from-wheel.patch [bz#1785648] - Resolves: bz#1785648 ([RHEL8]cloud-user added to wheel group and sudoers.d causes 'sudo -v' prompts for passphrase) * Fri Nov 22 2019 Miroslav Rezanina - 18.5-8.el8 - ci-Fix-for-network-configuration-not-persisting-after-r.patch [bz#1706482] - ci-util-json.dumps-on-python-2.7-will-handle-UnicodeDec.patch [bz#1744718] - Resolves: bz#1706482 ([cloud-init][RHVM]cloud-init network configuration does not persist reboot [RHEL 8.2.0]) - Resolves: bz#1744718 ([cloud-init][RHEL8][OpenStack] cloud-init can't persist instance-data.json) * Mon Jul 15 2019 Miroslav Rezanina - 18.5-7.el8 - Fixing TPS [bz#1729864] - Resolves: bz#1729864 (cloud-init tps fail) * Thu Jul 04 2019 Miroslav Rezanina - 18.5-6.el8 - ci-Revert-azure-ensure-that-networkmanager-hook-script-.patch [bz#1692914] - ci-Azure-Return-static-fallback-address-as-if-failed-to.patch [bz#1691986] - Resolves: bz#1691986 ([Azure] [RHEL 8.1] Cloud-init fixes to support fast provisioning for Azure) - Resolves: bz#1692914 ([8.1] [WALA][cloud] cloud-init dhclient-hook script has some unexpected side-effects on Azure) * Mon Jun 03 2019 Miroslav Rezanina - 18.5-4.el8 - ci-Azure-Ensure-platform-random_seed-is-always-serializ.patch [bz#1691986] - ci-DatasourceAzure-add-additional-logging-for-azure-dat.patch [bz#1691986] - ci-Azure-Changes-to-the-Hyper-V-KVP-Reporter.patch [bz#1691986] - ci-DataSourceAzure-Adjust-timeout-for-polling-IMDS.patch [bz#1691986] - ci-cc_mounts-check-if-mount-a-on-no-change-fstab-path.patch [bz#1691986] - Resolves: bz#1691986 ([Azure] [RHEL 8.1] Cloud-init fixes to support fast provisioning for Azure) * Tue Apr 16 2019 Danilo Cesar Lemes de Paula - 18.5-3.el8 - ci-Adding-gating-tests-for-Azure-ESXi-and-AWS.patch [bz#1682786] - Resolves: bz#1682786 (cloud-init changes blocked until gating tests are added) * Wed Apr 10 2019 Danilo C. L. de Paula - 18.5-2 - Adding gating.yaml file - Resolves: rhbz#1682786 (cloud-init changes blocked until gating tests are added) * Wed Apr 10 2019 Danilo de Paula - 18.2-6.el8 - ci-net-Make-sysconfig-renderer-compatible-with-Network-.patch [bz#1602784] - Resolves: bz#1602784 (cloud-init: Sometimes image boots fingerprints is configured, there's a network device present but it's not configured) * Fri Jan 18 2019 Miroslav Rezanina - 18.2-5.el8 - ci-Fix-string-missmatch-when-mounting-ntfs.patch [bz#1664227] - Resolves: bz#1664227 ([Azure]String missmatch causes the /dev/sdb1 mounting failed after stop&start VM) * Thu Jan 10 2019 Miroslav Rezanina - 18.2-4.el8 - ci-Enable-cloud-init-by-default-on-vmware.patch [bz#1644335] - Resolves: bz#1644335 ([ESXi][RHEL8.0]Enable cloud-init by default on VMware) * Wed Nov 28 2018 Miroslav Rezanina - 18.2-3.el8 - ci-Adding-systemd-mount-options-to-wait-for-cloud-init.patch [bz#1615599] - ci-Azure-Ignore-NTFS-mount-errors-when-checking-ephemer.patch [bz#1615599] - ci-azure-Add-reported-ready-marker-file.patch [bz#1615599] - ci-Adding-disk_setup-to-rhel-cloud.cfg.patch [bz#1615599] - Resolves: bz#1615599 ([Azure] cloud-init fails to mount /dev/sdb1 after stop(deallocate)&&start VM) * Tue Nov 06 2018 Miroslav Rezanina - 18.2-2.el7 - Revert "remove 'tee' command from logging configuration" [bz#1626117] - Resolves: rhbz#1626117] (cloud-init-0.7.9-9 doesn't feed cloud-init-output.log) * Fri Jun 29 2018 Miroslav Rezanina - 18.2-1.el7 - Rebase to 18.2 [bz#1515909] Resolves: rhbz#1515909 * Tue Feb 13 2018 Ryan McCabe 0.7.9-24 - Set DHCP_HOSTNAME on Azure to allow for the hostname to be published correctly when bouncing the network. Resolves: rhbz#1434109 * Mon Jan 15 2018 Ryan McCabe 0.7.9-23 - Fix a bug tha caused cloud-init to fail as a result of trying to rename bonds. Resolves: rhbz#1512247 * Mon Jan 15 2018 Ryan McCabe 0.7.9-22 - Apply patch from -21 Resolves: rhbz#1489270 * Mon Jan 15 2018 Ryan McCabe 0.7.9-21 - sysconfig: Fix a potential traceback introduced in the 0.7.9-17 build Resolves: rhbz#1489270 * Sun Dec 17 2017 Ryan McCabe 0.7.9-20 - sysconfig: Correct rendering for dhcp on ipv6 Resolves: rhbz#1519271 * Thu Nov 30 2017 Ryan McCabe 0.7.9-19 - sysconfig: Fix rendering of default gateway for ipv6 Resolves: rhbz#1492726 * Fri Nov 24 2017 Ryan McCabe 0.7.9-18 - Start the cloud-init init local service after the dbus socket is created so that the hostnamectl command works. Resolves: rhbz#1450521 * Tue Nov 21 2017 Ryan McCabe 0.7.9-17 - Correctly render DNS and DOMAIN for sysconfig Resolves: rhbz#1489270 * Mon Nov 20 2017 Ryan McCabe 0.7.9-16 - Disable NetworkManager management of resolv.conf if nameservers are specified by configuration. Resolves: rhbz#1454491 * Mon Nov 13 2017 Ryan McCabe 0.7.9-15 - Fix a null reference error in the rh_subscription module Resolves: rhbz#1498974 * Mon Nov 13 2017 Ryan McCabe 0-7.9-14 - Include gateway if it's included in subnet configration Resolves: rhbz#1492726 * Sun Nov 12 2017 Ryan McCabe 0-7.9-13 - Do proper cleanup of systemd units when upgrading from versions 0.7.9-3 through 0.7.9-8. Resolves: rhbz#1465730 * Thu Nov 09 2017 Ryan McCabe 0.7.9-12 - Prevent Azure NM and dhclient hooks from running when cloud-init is disabled (rhbz#1474226) * Tue Oct 31 2017 Ryan McCabe 0.7.9-11 - Fix rendering of multiple static IPs per interface file Resolves: rhbz#bz1497954 * Tue Sep 26 2017 Ryan McCabe 0.7.9-10 - AliCloud: Add support for the Alibaba Cloud datasource (rhbz#1482547) * Thu Jun 22 2017 Lars Kellogg-Stedman 0.7.9-9 - RHEL/CentOS: Fix default routes for IPv4/IPv6 configuration. (rhbz#1438082) - azure: ensure that networkmanager hook script runs (rhbz#1440831 rhbz#1460206) - Fix ipv6 subnet detection (rhbz#1438082) * Tue May 23 2017 Lars Kellogg-Stedman 0.7.9-8 - Update patches * Mon May 22 2017 Lars Kellogg-Stedman 0.7.9-7 - Add missing sysconfig unit test data (rhbz#1438082) - Fix dual stack IPv4/IPv6 configuration for RHEL (rhbz#1438082) - sysconfig: Raise ValueError when multiple default gateways are present. (rhbz#1438082) - Bounce network interface for Azure when using the built-in path. (rhbz#1434109) - Do not write NM_CONTROLLED=no in generated interface config files (rhbz#1385172) * Wed May 10 2017 Lars Kellogg-Stedman 0.7.9-6 - add power-state-change module to cloud_final_modules (rhbz#1252477) - remove 'tee' command from logging configuration (rhbz#1424612) - limit permissions on def_log_file (rhbz#1424612) - Bounce network interface for Azure when using the built-in path. (rhbz#1434109) - OpenStack: add 'dvs' to the list of physical link types. (rhbz#1442783) * Wed May 10 2017 Lars Kellogg-Stedman 0.7.9-5 - systemd: replace generator with unit conditionals (rhbz#1440831) * Thu Apr 13 2017 Charalampos Stratakis 0.7.9-4 - Import to RHEL 7 Resolves: rhbz#1427280 * Tue Mar 07 2017 Lars Kellogg-Stedman 0.7.9-3 - fixes for network config generation - avoid dependency cycle at boot (rhbz#1420946) * Tue Jan 17 2017 Lars Kellogg-Stedman 0.7.9-2 - use timeout from datasource config in openstack get_data (rhbz#1408589) * Thu Dec 01 2016 Lars Kellogg-Stedman - 0.7.9-1 - Rebased on upstream 0.7.9. - Remove dependency on run-parts * Wed Jan 06 2016 Lars Kellogg-Stedman - 0.7.6-8 - make rh_subscription plugin do nothing in the absence of a valid configuration [RH:1295953] - move rh_subscription module to cloud_config stage * Wed Jan 06 2016 Lars Kellogg-Stedman - 0.7.6-7 - correct permissions on /etc/ssh/sshd_config [RH:1296191] * Thu Sep 03 2015 Lars Kellogg-Stedman - 0.7.6-6 - rebuild for ppc64le * Tue Jul 07 2015 Lars Kellogg-Stedman - 0.7.6-5 - bump revision for new build * Tue Jul 07 2015 Lars Kellogg-Stedman - 0.7.6-4 - ensure rh_subscription plugin is enabled by default * Wed Apr 29 2015 Lars Kellogg-Stedman - 0.7.6-3 - added dependency on python-jinja2 [RH:1215913] - added rhn_subscription plugin [RH:1227393] - require pyserial to support smartos data source [RH:1226187] * Fri Jan 16 2015 Lars Kellogg-Stedman - 0.7.6-2 - Rebased RHEL version to Fedora rawhide - Backported fix for https://bugs.launchpad.net/cloud-init/+bug/1246485 - Backported fix for https://bugs.launchpad.net/cloud-init/+bug/1411829 * Fri Nov 14 2014 Colin Walters - 0.7.6-1 - New upstream version [RH:974327] - Drop python-cheetah dependency (same as above bug)