diff --git a/elements/hosts/README.md b/elements/hosts/README.md new file mode 100644 index 000000000..3586e88cf --- /dev/null +++ b/elements/hosts/README.md @@ -0,0 +1,5 @@ +Permit injecting content into /etc/hosts from heat + +# Configuration + + hosts: '12.3.4 my-host.com' diff --git a/elements/hosts/element-deps b/elements/hosts/element-deps new file mode 100644 index 000000000..9d8b6b7a5 --- /dev/null +++ b/elements/hosts/element-deps @@ -0,0 +1,2 @@ +os-apply-config +os-refresh-config diff --git a/elements/hosts/os-apply-config/var/run/hosts.d/tail b/elements/hosts/os-apply-config/var/run/hosts.d/tail new file mode 100644 index 000000000..9db1e07eb --- /dev/null +++ b/elements/hosts/os-apply-config/var/run/hosts.d/tail @@ -0,0 +1 @@ +{{hosts}} diff --git a/elements/hosts/os-refresh-config/configure.d/51-hosts b/elements/hosts/os-refresh-config/configure.d/51-hosts new file mode 100755 index 000000000..6175b8661 --- /dev/null +++ b/elements/hosts/os-refresh-config/configure.d/51-hosts @@ -0,0 +1,19 @@ +#!/bin/bash + +set -eu +set -o pipefail + +# 51 - right after oac as hosts is needed for $justabouteverything. + +if [ ! -e /etc/hosts -o ! -e /var/run/hosts.d/tail ]; then + exit 0 +fi + +if fgrep -f /var/run/hosts.d/tail /etc/hosts; then + exit 0 +fi +cp /etc/hosts /var/run/hosts.d/new-hosts +echo >> /var/run/hosts.d/new-hosts +cat /var/run/hosts.d/tail >> /var/run/hosts.d/new-hosts +echo >> /var/run/hosts.d/new-hosts +mv /var/run/hosts.d/new-hosts /etc/hosts