diff --git a/diskimage_builder/elements/debian/install.d/10-cloud-opinions b/diskimage_builder/elements/debian/install.d/10-cloud-opinions index 5ecc3d260..a8b015b65 100755 --- a/diskimage_builder/elements/debian/install.d/10-cloud-opinions +++ b/diskimage_builder/elements/debian/install.d/10-cloud-opinions @@ -20,20 +20,23 @@ if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then fi set -eu set -o pipefail + case "${DIB_RELEASE}" in hamm|slink|potato|woody|sarge|etch|lenny|squeeze|wheezy) DIB_DEBIAN_ALT_INIT_PACKAGE=${DIB_DEBIAN_ALT_INIT_PACKAGE:-sysvinit} + DIB_DEBIAN_CLOUD_INIT_HELPER=${DIB_DEBIAN_CLOUD_INIT_HELPER:-'true'} ;; *) DIB_DEBIAN_ALT_INIT_PACKAGE=${DIB_DEBIAN_ALT_INIT_PACKAGE:-systemd-sysv} ;; esac - -adduser --gecos Debian-cloud-init-user --disabled-password --quiet debian -install -d -m 0755 -o root -g root /etc/sudoers.d -echo 'debian ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/debian-cloud-init -chmod 0440 /etc/sudoers.d/debian-cloud-init +if [ -n "${DIB_DEBIAN_CLOUD_INIT_HELPER:-}" ]; then + adduser --gecos Debian-cloud-init-user --disabled-password --quiet debian + install -d -m 0755 -o root -g root /etc/sudoers.d + echo 'debian ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/debian-cloud-init + chmod 0440 /etc/sudoers.d/debian-cloud-init +fi if [ "$DIB_DEBIAN_ALT_INIT_PACKAGE" != "sysvinit" ]; then # To avoid a conflict against an essential package, we need to remove sysvinit first diff --git a/releasenotes/notes/debian_cloud_init-8d91b34b96c621fe.yaml b/releasenotes/notes/debian_cloud_init-8d91b34b96c621fe.yaml new file mode 100644 index 000000000..ca6432e61 --- /dev/null +++ b/releasenotes/notes/debian_cloud_init-8d91b34b96c621fe.yaml @@ -0,0 +1,8 @@ +--- +other: + - | + Added a ``DIB_DEBIAN_CLOUD_INIT_HELPER`` variable that controls whether + ``debian`` element will attempt to pre-create required users and sudoers + file for the default cloud-init user. This should not be needed for any + modern Debian distro. +