From 1da2a7fb83a4dbd27b25f867db8fef6701c19cc7 Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Sat, 7 Nov 2015 02:10:49 +0000 Subject: [PATCH] added manage_etc_hosts option to generate /etc/hosts --- minicl/update.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/minicl/update.py b/minicl/update.py index d6044e5..e1adcc0 100644 --- a/minicl/update.py +++ b/minicl/update.py @@ -172,6 +172,31 @@ def create_root_authorized_keys(config): fd.write('%s\n' % key) +def create_etc_hosts(config): + contents = ['''# Automatically generated - do not edit! +127.0.0.1 localhost +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters + +'''] + + for hostname, hostinfo in sorted(config['hosts'].itervalues()): + names = ['%s.%s' % (hostname, config['domain'])] + if 'base.monitor' in hostinfo.get('roles', []): + names.append('monitor.%s' % config['domain']) + names.append(hostname) + ips = hostinfo['ip'] + if isinstance(ips, basestring): + ips = [ips] + for ip in ips: + contents.append('%s %s\n' % (ip, ' '.join(names))) + with open(minicl.ROOT + '/etc/hosts', 'w') as fd: + fd.write(''.join(contents)) + + def copy_deploy_key(deploy_key_file, force=False): if force or not os.path.exists(deploy_key_file): common.copyfileattrs(deploy_key_file, @@ -195,6 +220,8 @@ def update_system(config): setup_deploy_key(config) create_root_authorized_keys(config) create_dsh_config(config) + if config.get('manage_etc_hosts', False): + create_etc_hosts(config) update_users(config) -- GitLab