Compare commits
No commits in common. "5a8dc7e313f7f673140913da73c6ed4479c16a69" and "487fdffd91e354c8147dc741dc16ce39ad4fc6be" have entirely different histories.
5a8dc7e313
...
487fdffd91
9 changed files with 12 additions and 71 deletions
|
|
@ -1,22 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
from bundlewrap.repo import Repository
|
|
||||||
from os.path import realpath, dirname
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('node', help='Node to generate passwords for')
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
bw = Repository(dirname(dirname(realpath(__file__))))
|
|
||||||
node = bw.get_node(args.node)
|
|
||||||
|
|
||||||
if node.password:
|
|
||||||
print(f"password: {node.password}")
|
|
||||||
|
|
||||||
for metadata_key in sorted([
|
|
||||||
'users/root/password',
|
|
||||||
]):
|
|
||||||
if value := node.metadata.get(metadata_key, None):
|
|
||||||
print(f"{metadata_key}: {value}")
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
from bundlewrap.repo import Repository
|
from bundlewrap.repo import Repository
|
||||||
from os.path import realpath, dirname
|
from os.path import realpath, dirname
|
||||||
|
|
||||||
bw = Repository(dirname(dirname(realpath(__file__))))
|
repo = Repository(dirname(dirname(realpath(__file__))))
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ for vlan_name, vlan_id in node.metadata.get('routeros/vlans').items():
|
||||||
'vlan-id': vlan_id,
|
'vlan-id': vlan_id,
|
||||||
'interface': 'bridge',
|
'interface': 'bridge',
|
||||||
'tags': {
|
'tags': {
|
||||||
'routeros-vlans',
|
'routeros-vlan',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,28 +68,10 @@ for vlan_name, vlan_id in node.metadata.get('routeros/vlans').items():
|
||||||
'routeros-vlan-ports',
|
'routeros-vlan-ports',
|
||||||
},
|
},
|
||||||
'needs': {
|
'needs': {
|
||||||
'tag:routeros-vlans',
|
'tag:routeros-vlan',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for port_name, port_conf in node.metadata.get('routeros/ports').items():
|
|
||||||
untagged_vlan = node.metadata.get('routeros/vlan_groups')[port_conf.get('vlan_group')]['untagged']
|
|
||||||
|
|
||||||
routeros[f'/interface/bridge/port?interface={port_name}'] = {
|
|
||||||
'disabled': False,
|
|
||||||
'bridge': 'bridge',
|
|
||||||
'pvid': node.metadata.get('routeros/vlans')[untagged_vlan],
|
|
||||||
'tags': {
|
|
||||||
'routeros-ports'
|
|
||||||
},
|
|
||||||
'needs': {
|
|
||||||
'tag:routeros-vlan-ports',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
if comment := port_conf.get('comment', None):
|
|
||||||
routeros[f'/interface/bridge/port?interface={port_name}']['_comment'] = comment
|
|
||||||
|
|
||||||
# create IPs
|
# create IPs
|
||||||
for ip, ip_conf in node.metadata.get('routeros/ips').items():
|
for ip, ip_conf in node.metadata.get('routeros/ips').items():
|
||||||
routeros[f'/ip/address?address={ip}'] = {
|
routeros[f'/ip/address?address={ip}'] = {
|
||||||
|
|
@ -98,8 +80,7 @@ for ip, ip_conf in node.metadata.get('routeros/ips').items():
|
||||||
'routeros-ip',
|
'routeros-ip',
|
||||||
},
|
},
|
||||||
'needs': {
|
'needs': {
|
||||||
'tag:routeros-vlans',
|
'tag:routeros-vlan',
|
||||||
'tag:routeros-ports'
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,8 +90,7 @@ routeros['/interface/bridge?name=bridge'] = {
|
||||||
'priority': node.metadata.get('routeros/bridge_priority'),
|
'priority': node.metadata.get('routeros/bridge_priority'),
|
||||||
'protocol-mode': 'rstp',
|
'protocol-mode': 'rstp',
|
||||||
'needs': {
|
'needs': {
|
||||||
'tag:routeros-vlans',
|
'tag:routeros-vlan',
|
||||||
'tag:routeros-ports',
|
|
||||||
'tag:routeros-vlan-ports',
|
'tag:routeros-vlan-ports',
|
||||||
'tag:routeros-ip',
|
'tag:routeros-ip',
|
||||||
},
|
},
|
||||||
|
|
@ -122,7 +102,7 @@ routeros['/interface/vlan'] = {
|
||||||
'id-by': 'name',
|
'id-by': 'name',
|
||||||
},
|
},
|
||||||
'needed_by': {
|
'needed_by': {
|
||||||
'tag:routeros-vlans',
|
'tag:routeros-vlan',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,6 +114,6 @@ routeros['/interface/bridge/vlan'] = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'needed_by': {
|
'needed_by': {
|
||||||
'tag:routeros-vlans',
|
'tag:routeros-vlan',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@
|
||||||
'iot': '2',
|
'iot': '2',
|
||||||
'internet': '3',
|
'internet': '3',
|
||||||
'proxmox': '4',
|
'proxmox': '4',
|
||||||
'wokeonlan': '5',
|
|
||||||
'gast': '9',
|
'gast': '9',
|
||||||
'rolf': '51',
|
'rolf': '51',
|
||||||
},
|
},
|
||||||
|
|
@ -31,17 +30,12 @@
|
||||||
'proxmox',
|
'proxmox',
|
||||||
'gast',
|
'gast',
|
||||||
'rolf',
|
'rolf',
|
||||||
'wokeonlan',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'internet': {
|
'internet': {
|
||||||
'untagged': 'internet',
|
'untagged': 'internet',
|
||||||
'tagged': set(),
|
'tagged': set(),
|
||||||
},
|
},
|
||||||
'wokeonlan': {
|
|
||||||
'untagged': 'wokeonlan',
|
|
||||||
'tagged': set(),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
'vlan_ports': {},
|
'vlan_ports': {},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
def wake_on_lan(node):
|
|
||||||
node.repo.libs.wol.wake(node)
|
|
||||||
|
|
||||||
def node_apply_start(repo, node, **kwargs):
|
def node_apply_start(repo, node, **kwargs):
|
||||||
wake_on_lan(node)
|
repo.libs.wol.wake(node)
|
||||||
|
|
||||||
def node_run_start(repo, node, cmd, **kwargs):
|
def node_run_start(repo, node, cmd, **kwargs):
|
||||||
wake_on_lan(node)
|
repo.libs.wol.wake(node)
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
},
|
},
|
||||||
'wakeonlan': {
|
'wakeonlan': {
|
||||||
'interface': 'enp0s31f6',
|
'interface': 'enp0s31f6',
|
||||||
'ipv4': '10.0.5.5/24',
|
'ipv4': '10.0.0.6/24',
|
||||||
'mac': '4c:cc:6a:d5:96:f8',
|
'mac': '4c:cc:6a:d5:96:f8',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,6 @@
|
||||||
'ipv4': '10.0.4.1/24',
|
'ipv4': '10.0.4.1/24',
|
||||||
'dhcp_server': True,
|
'dhcp_server': True,
|
||||||
},
|
},
|
||||||
'wakeonlan': {
|
|
||||||
'type': 'vlan',
|
|
||||||
'vlan_interface': 'internal',
|
|
||||||
'id': 5,
|
|
||||||
'ipv4': '10.0.5.1/24',
|
|
||||||
'dhcp_server': True,
|
|
||||||
},
|
|
||||||
'guest': {
|
'guest': {
|
||||||
'type': 'vlan',
|
'type': 'vlan',
|
||||||
'vlan_interface': 'internal',
|
'vlan_interface': 'internal',
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,7 @@
|
||||||
'vlan_group': 'infra',
|
'vlan_group': 'infra',
|
||||||
},
|
},
|
||||||
'ether5': {
|
'ether5': {
|
||||||
'vlan_group': 'wokeonlan',
|
'vlan_group': 'infra',
|
||||||
'comment': 'home.backups wakeonlan',
|
|
||||||
},
|
},
|
||||||
'ether6': {
|
'ether6': {
|
||||||
'vlan_group': 'infra',
|
'vlan_group': 'infra',
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
bundlewrap ~=4.0, >=4.24
|
bundlewrap ~=4.0, >=4.23.1
|
||||||
pycryptodome
|
pycryptodome
|
||||||
PyNaCl
|
PyNaCl
|
||||||
PyYAML
|
PyYAML
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue