diskimage-builder/diskimage_builder/elements/cloud-init-datasources/install.d/05-set-cloud-init-sources

43 lines
1.3 KiB
Plaintext
Raw Normal View History

#!/bin/bash
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
set -x
fi
set -eu
set -o pipefail
DIB_CLOUD_INIT_DATASOURCES=${DIB_CLOUD_INIT_DATASOURCES:-""}
if [ -z "$DIB_CLOUD_INIT_DATASOURCES" ] ; then
echo "DIB_CLOUD_INIT_DATASOURCES must be set to a comma-separated list "
echo "of cloud-init data sources you wish to use, ie 'Ec2, NoCloud, ConfigDrive'"
exit 1
fi
if [ -d /etc/cloud/cloud.cfg.d ]; then
# DatasourceNone doesn't exist in Ubuntu 12.04 (Precise)
# which uses cloud-init version 0.6.3
if [ "$(lsb_release -cs)" = 'precise' ] ; then
cat > /etc/cloud/cloud.cfg.d/91-dib-cloud-init-datasources.cfg <<EOF
datasource_list: [ $DIB_CLOUD_INIT_DATASOURCES ]
EOF
else
cat > /etc/cloud/cloud.cfg.d/91-dib-cloud-init-datasources.cfg <<EOF
datasource_list: [ $DIB_CLOUD_INIT_DATASOURCES, None ]
EOF
fi
# Newer cloud-init versions complain by default when they should
# use the Ec2 datasource on a non-AWS cloud. If the Ec2
# datasource is desired, we need to tell cloud-init that we really
# want this. Otherwise there will be ugly warnings or worse.
#
if [[ $DIB_CLOUD_INIT_DATASOURCES =~ Ec2 ]]; then
cat > /etc/cloud/cloud.cfg.d/92-ec2-datasource.cfg <<EOF
#cloud-config
datasource:
Ec2:
strict_id: false
EOF
fi
fi