diskimage-builder/elements/base
Jiri Stransky a43b23c45a Make managing hosts entries optional
Diskimage-builder currently writes cloud-init config file which adds a
host entry mapping the hostname and FQDN to 127.0.0.1 into every image
built. This is probably useful for some use cases but not for all, so we
now allow customizing the manage_etc_hosts value via
DIB_CLOUD_INIT_ETC_HOSTS variable and also not writing the config at all
if that variable is explicitly set to an empty string (currently the
default is 'localhost' but in the future the default will be empty
string).

Particular description of the problem this causes in TripleO follows:

We get hosts files like this:

    ::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
    127.0.0.1       localhost       localhost.localdomain   localhost4      localhost4.localdomain4
    127.0.0.1       ov-rl5i5saoc6h-1-hj5tzsbrdv4c-controller-dy6nuyarqy5z.novalocal ov-rl5i5saoc6h-1-hj5tzsbrdv4c-controller-dy6nuyarqy5z

    # HEAT_HOSTS_START - Do not edit manually within this section!

    192.0.2.17 ov-rl5i5saoc6h-0-wfzcsrqo34p6-controller-m3hy26lhxavl ov-rl5i5saoc6h-0-wfzcsrqo34p6-controller-m3hy26lhxavl.novalocal
    192.0.2.15 ov-rl5i5saoc6h-1-hj5tzsbrdv4c-controller-dy6nuyarqy5z ov-rl5i5saoc6h-1-hj5tzsbrdv4c-controller-dy6nuyarqy5z.novalocal
    192.0.2.16 ov-rl5i5saoc6h-2-a6v7saxnivm5-controller-7jboskte34r7 ov-rl5i5saoc6h-2-a6v7saxnivm5-controller-7jboskte34r7.novalocal
    # HEAT_HOSTS_END

The duplicate hostname/FQDN entry for 127.0.0.1 and 192.0.2.15 confuses
Corosync, which then fails to start a cluster when using hostnames in
the config file instead of IPs.

Change-Id: Ia8582883f737548e2911d3f36a1943e5b236281b
Partial-Bug: #1447497
2015-05-11 14:40:43 +02:00
..
cleanup.d Standarise tracing for scripts 2015-02-12 10:41:32 +11:00
environment.d Split dib-init-system into its own element 2015-03-25 13:28:38 -04:00
extra-data.d Break install-types out of base 2015-04-14 13:39:18 -04:00
install.d Make managing hosts entries optional 2015-05-11 14:40:43 +02:00
pre-install.d Split dib-init-system into its own element 2015-03-25 13:28:38 -04:00
root.d Standarise tracing for scripts 2015-02-12 10:41:32 +11:00
element-deps Break install-types out of base 2015-04-14 13:39:18 -04:00
package-installs.yaml Use package-installs for ubuntu and base elements 2015-02-06 10:13:08 -08:00
pkg-map Map dkms package for SUSE in base element 2014-09-02 18:17:45 +02:00
README.rst Make managing hosts entries optional 2015-05-11 14:40:43 +02:00

====
base
====
This is the base element.

Almost all users will want to include this in their disk image build,
as it includes a lot of useful functionality.

The `DIB_CLOUD_INIT_ETC_HOSTS` environment variable can be used to
customize cloud-init's management of `/etc/hosts`:

 * If the variable is set to something, write that value as
   cloud-init's manage_etc_hosts.

 * If the variable is set to an empty string, don't create
   manage_etc_hosts setting (cloud-init will use its default value).

 * If the variable is not set, use "localhost" for now. Later, not
   setting the variable will mean using cloud-init's default. (To
   preserve diskimage-builder's current default behavior in the
   future, set the variable to "localhost" explicitly.)

Notes:

 * If you are getting warnings during the build about your locale
   being missing, consider installing/generating the relevant locale.
   This may be as simple as having language-pack-XX installed in the
   pre-install stage

 * This element ensures /tmp/ccache will be available in the chroot
   during the root, extra-data, pre-install, install and post-install
   stages.  /tmp/ccache is unavailable during block-device, finalise
   and cleanup stages as it will have been automatically unmounted
   by then.