summaryrefslogtreecommitdiff
path: root/systemd/cloud-init-generator
diff options
context:
space:
mode:
authorScott Moser <smoser@brickies.net>2016-08-18 12:25:29 -0400
committerScott Moser <smoser@brickies.net>2016-08-22 16:20:10 -0400
commit64522efe710faf6fa1615dbb60a2fc4cc8a7c278 (patch)
tree7dfaca3f98f1105b9f9e08621c5bc29c2cdfe4c2 /systemd/cloud-init-generator
parent685ffd49561bb92971f6b76e4690b86d7d6ecc0f (diff)
downloadvyos-cloud-init-64522efe710faf6fa1615dbb60a2fc4cc8a7c278.tar.gz
vyos-cloud-init-64522efe710faf6fa1615dbb60a2fc4cc8a7c278.zip
azure dhclient-hook cleanups
This adds some function to the generator to maintain the presense of a flag file '/run/cloud-init/enabled' indicating that cloud-init is enabled. Then, only run the dhclient hooks if on Azure and cloud-init is enabled. The test for is_azure currently only checks to see that the board vendor is Microsoft, not actually that we are on azure. Running should not be harmful anywhere, other than slowing down dhclient. The value of this additional code is that then dhclient having run does not task the system with the load of cloud-init. Additionally, some changes to config are done here. * rename 'dhclient_leases' to 'dhclient_lease_file' * move that to the datasource config (datasource/Azure/dhclient_lease_file) Also, it removes the config in config/cloud.cfg that set agent_command to __builtin__. This means that by default cloud-init still needs the agent installed. The suggested follow-on improvement is to use __builtin__ if there is no walinux-agent installed.
Diffstat (limited to 'systemd/cloud-init-generator')
-rwxr-xr-xsystemd/cloud-init-generator5
1 files changed, 5 insertions, 0 deletions
diff --git a/systemd/cloud-init-generator b/systemd/cloud-init-generator
index 2d319695..fedb6309 100755
--- a/systemd/cloud-init-generator
+++ b/systemd/cloud-init-generator
@@ -6,6 +6,7 @@ DEBUG_LEVEL=1
LOG_D="/run/cloud-init"
ENABLE="enabled"
DISABLE="disabled"
+RUN_ENABLED_FILE="$LOG_D/$ENABLE"
CLOUD_SYSTEM_TARGET="/lib/systemd/system/cloud-init.target"
CLOUD_TARGET_NAME="cloud-init.target"
# lxc sets 'container', but lets make that explicitly a global
@@ -107,6 +108,7 @@ main() {
"ln $CLOUD_SYSTEM_TARGET $link_path"
fi
fi
+ : > "$RUN_ENABLED_FILE"
elif [ "$result" = "$DISABLE" ]; then
if [ -f "$link_path" ]; then
if rm -f "$link_path"; then
@@ -118,6 +120,9 @@ main() {
else
debug 1 "already disabled: no change needed [no $link_path]"
fi
+ if [ -e "$RUN_ENABLED_FILE" ]; then
+ rm -f "$RUN_ENABLED_FILE"
+ fi
else
debug 0 "unexpected result '$result'"
ret=3