From 831545d8b13f5edf4f98661fb0efe74e6e2514ac Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sun, 25 Oct 2020 11:07:23 +0100 Subject: [PATCH] introduce node.metadata['hostname'] to other bundles, update nodefiles to reflect changes --- bundles/hostname/files/hosts | 5 +---- bundles/letsencrypt/files/domains.txt | 2 +- bundles/powerdns/items.py | 2 +- bundles/powerdns/metadata.py | 16 +++++++++++++--- bundles/systemd/items.py | 9 ++------- nodes.py | 3 +++ nodes/gce/bind01.py | 1 + nodes/gce/dns02.py | 1 + nodes/gce/dns03.py | 1 + nodes/home/kodi-wohnzimmer.py | 1 - nodes/home/octoprint-vielschichtigkeit.py | 1 - 11 files changed, 24 insertions(+), 18 deletions(-) diff --git a/bundles/hostname/files/hosts b/bundles/hostname/files/hosts index 83520fc..e14d8c5 100644 --- a/bundles/hostname/files/hosts +++ b/bundles/hostname/files/hosts @@ -1,7 +1,4 @@ -127.0.0.1 localhost ${node.name} ${node.hostname} -% if 'hostname' in node.metadata: -127.0.0.1 ${node.metadata['hostname']} -% endif +127.0.0.1 localhost ${node.name} ${node.metadata['hostname']} ::1 ip6-localhost fe00::0 ip6-localnet diff --git a/bundles/letsencrypt/files/domains.txt b/bundles/letsencrypt/files/domains.txt index 533cdf2..467985d 100644 --- a/bundles/letsencrypt/files/domains.txt +++ b/bundles/letsencrypt/files/domains.txt @@ -1,4 +1,4 @@ -${node.hostname} +${node.metadata['hostname']} % for domain, aliases in sorted(node.metadata.get('letsencrypt', {}).get('domains', {}).items()): ${domain} ${' '.join(sorted(aliases))} diff --git a/bundles/powerdns/items.py b/bundles/powerdns/items.py index 1398b10..4f96031 100644 --- a/bundles/powerdns/items.py +++ b/bundles/powerdns/items.py @@ -24,7 +24,7 @@ $TTL 60 ) """ for rnode in sorted(repo.nodes_in_group('dns')): - ZONE_HEADER += '@ IN NS {}.\n'.format(rnode.metadata.get('powerdns', {}).get('my_hostname', rnode.hostname)) + ZONE_HEADER += '@ IN NS {}.\n'.format(rnode.metadata.get('powerdns', {}).get('my_hostname', rnode.metadata['hostname'])) directories = { '/etc/powerdns/pdns.d': { diff --git a/bundles/powerdns/metadata.py b/bundles/powerdns/metadata.py index e047daf..345a7a9 100644 --- a/bundles/powerdns/metadata.py +++ b/bundles/powerdns/metadata.py @@ -109,9 +109,19 @@ def hosts_entries_for_all_dns_servers(metadata): entries = {} for rnode in repo.nodes_in_group('dns'): - entries[rnode.metadata.get('external_ipv4')] = { - rnode.metadata.get('powerdns/my_hostname', node.hostname) - } + if rnode.name == node.name: + continue + + ip = rnode.metadata.get('external_ipv4') + + if ip: + entries[ip] = { + rnode.metadata.get('hostname'), + rnode.name, + } + + if rnode.metadata.get('powerdns/my_hostname', None): + entries[ip].add(rnode.metadata.get('powerdns/my_hostname')) return { 'hosts': { diff --git a/bundles/systemd/items.py b/bundles/systemd/items.py index 71ad1f3..d640808 100644 --- a/bundles/systemd/items.py +++ b/bundles/systemd/items.py @@ -1,8 +1,3 @@ -if 'hostname' in node.metadata: - hostname = node.metadata['hostname'] -else: - hostname = node.hostname - actions = { 'systemd-reload': { 'command': 'systemctl daemon-reload', @@ -13,8 +8,8 @@ actions = { }, }, 'systemd-hostname': { - 'command': 'hostnamectl set-hostname {}'.format(hostname), - 'unless': '[ "$(hostnamectl --static)" = "{}" ]'.format(hostname), + 'command': 'hostnamectl set-hostname {}'.format(node.metadata['hostname']), + 'unless': '[ "$(hostnamectl --static)" = "{}" ]'.format(node.metadata['hostname']), # Provided by 'hostname' bundle 'needs': { 'file:/etc/hosts', diff --git a/nodes.py b/nodes.py index d055e65..810ec8e 100644 --- a/nodes.py +++ b/nodes.py @@ -9,3 +9,6 @@ for node in Path(join(repo_path, "nodes")).rglob("*.py"): for name, data in nodes.items(): if 'hostname' not in data.keys(): data['hostname'] = '.'.join(reversed(name.split('.'))) + '.kunbox.net' + + if 'hostname' not in data['metadata'].keys(): + data['metadata']['hostname'] = '.'.join(reversed(name.split('.'))) + '.kunbox.net' diff --git a/nodes/gce/bind01.py b/nodes/gce/bind01.py index 9c0230c..16252ef 100644 --- a/nodes/gce/bind01.py +++ b/nodes/gce/bind01.py @@ -2,6 +2,7 @@ # Frankfurt, Germany nodes['gce.bind01'] = { + 'hostname': '34.89.208.78', 'bundles': { 'nodejs', 'powerdnsadmin', diff --git a/nodes/gce/dns02.py b/nodes/gce/dns02.py index 16cdceb..0424e7d 100644 --- a/nodes/gce/dns02.py +++ b/nodes/gce/dns02.py @@ -2,6 +2,7 @@ # Belgium nodes['gce.dns02'] = { + 'hostname': '35.187.109.249', 'bundles': set(), 'groups': { 'dns', diff --git a/nodes/gce/dns03.py b/nodes/gce/dns03.py index f581f82..c2264b1 100644 --- a/nodes/gce/dns03.py +++ b/nodes/gce/dns03.py @@ -2,6 +2,7 @@ # Finland nodes['gce.dns03'] = { + 'hostname': '35.228.143.71', 'bundles': set(), 'groups': { 'dns', diff --git a/nodes/home/kodi-wohnzimmer.py b/nodes/home/kodi-wohnzimmer.py index cadeac8..a8f4a16 100644 --- a/nodes/home/kodi-wohnzimmer.py +++ b/nodes/home/kodi-wohnzimmer.py @@ -6,7 +6,6 @@ nodes['home.kodi-wohnzimmer'] = { }, 'groups': set(), 'metadata': { - 'hostname': 'kodi-wohnzimmer', 'interfaces': { 'eth0': { 'ipv4': { diff --git a/nodes/home/octoprint-vielschichtigkeit.py b/nodes/home/octoprint-vielschichtigkeit.py index b16729b..0d9c60f 100644 --- a/nodes/home/octoprint-vielschichtigkeit.py +++ b/nodes/home/octoprint-vielschichtigkeit.py @@ -8,7 +8,6 @@ nodes['home.octoprint-vielschichtigkeit'] = { 'raspberry', }, 'metadata': { - 'hostname': 'octoprint-vielschichtigkeit', 'interfaces': { 'eth0': { 'ipv4': {