Compare commits

...

3 commits

Author SHA1 Message Date
3bcd2be520
netword remove netplan 2025-08-09 21:33:35 +02:00
7eac09e547
ovh.secondary cake 2025-08-09 21:33:26 +02:00
5fb1ee54b9
less annoying root passwords 2025-08-09 21:32:23 +02:00
8 changed files with 27 additions and 10 deletions

View file

@ -25,6 +25,9 @@ files= {
'svc_systemd:systemd-sysctl.service:restart', 'svc_systemd:systemd-sysctl.service:restart',
], ],
}, },
'/etc/modules-load.d/managed.conf': {
'content': '\n'.join(sorted(node.metadata.get('modules-load'))),
}
} }
svc_systemd = { svc_systemd = {

View file

@ -1,3 +1,4 @@
defaults = { defaults = {
'sysctl': {}, 'sysctl': {},
'modules-load': set(),
} }

View file

@ -34,10 +34,12 @@ def dhcp(metadata):
@metadata_reactor.provides( @metadata_reactor.provides(
'systemd/units', 'systemd/units',
'modules-load',
) )
def units(metadata): def units(metadata):
if node.has_bundle('systemd-networkd'): if node.has_bundle('systemd-networkd'):
units = {} units = {}
modules_load = set()
for network_name, network_conf in metadata.get('network').items(): for network_name, network_conf in metadata.get('network').items():
interface_type = network_conf.get('type', None) interface_type = network_conf.get('type', None)
@ -96,13 +98,15 @@ def units(metadata):
# cake WIP # cake WIP
# if 'cake' in network_conf: if 'cake' in network_conf:
# units[f'{network_name}.network']['CAKE'] = network_conf['cake'] units[f'{network_name}.network']['CAKE'] = network_conf['cake']
modules_load.add('sch_cake')
return { return {
'systemd': { 'systemd': {
'units': units, 'units': units,
} },
'modules-load': modules_load,
} }
else: else:
return {} return {}

View file

@ -1,8 +1,4 @@
files = { files = {
'/etc/modules-load.d/pppoe.conf': {
'content': 'pppoe\npppox\nppp_generic',
'mode': '0644',
},
'/etc/ppp/peers/isp': { '/etc/ppp/peers/isp': {
'content_type': 'mako', 'content_type': 'mako',
'mode': '0644', 'mode': '0644',

View file

@ -4,6 +4,11 @@ defaults = {
'pppoe': {}, 'pppoe': {},
}, },
}, },
'modules-load': {
'pppoe',
'pppox',
'ppp_generic',
},
'nftables': { 'nftables': {
'nat': { 'nat': {
'oifname ppp0 masquerade', 'oifname ppp0 masquerade',

View file

@ -10,6 +10,9 @@ defaults = {
'resolvconf': { 'resolvconf': {
'installed': False, 'installed': False,
}, },
'netplan.io': {
'installed': False,
},
}, },
}, },
} }

View file

@ -4,7 +4,7 @@ defaults = {
'users': { 'users': {
'root': { 'root': {
'home': '/root', 'home': '/root',
'password': repo.vault.password_for(f'{node.name} user root'), 'password': repo.vault.password_for(f'{node.name} user root', length=24),
}, },
}, },
} }
@ -49,7 +49,7 @@ def user_defaults(metadata):
if not 'shell' in config: if not 'shell' in config:
users[name]['shell'] = '/bin/bash' users[name]['shell'] = '/bin/bash'
if not 'privkey' in users[name] and not 'pubkey' in users[name]: if not 'privkey' in users[name] and not 'pubkey' in users[name]:
privkey, pubkey = repo.libs.ssh.generate_ed25519_key_pair( privkey, pubkey = repo.libs.ssh.generate_ed25519_key_pair(
b64decode(str(repo.vault.random_bytes_as_base64_for(f"{name}@{metadata.get('id')}", length=32))) b64decode(str(repo.vault.random_bytes_as_base64_for(f"{name}@{metadata.get('id')}", length=32)))
@ -57,7 +57,7 @@ def user_defaults(metadata):
users[name]['keytype'] = 'ed25519' users[name]['keytype'] = 'ed25519'
users[name]['privkey'] = privkey users[name]['privkey'] = privkey
users[name]['pubkey'] = pubkey + f' {name}@{node.name}' users[name]['pubkey'] = pubkey + f' {name}@{node.name}'
return { return {
'users': users, 'users': users,
} }

View file

@ -17,6 +17,11 @@
'gateway4': '51.68.188.1', 'gateway4': '51.68.188.1',
'ipv6': '2001:41d0:701:1100::751a/128', 'ipv6': '2001:41d0:701:1100::751a/128',
'gateway6': '2001:41d0:701:1100::1', 'gateway6': '2001:41d0:701:1100::1',
'cake': {
'Bandwidth': '350M',
'FlowIsolationMode': 'triple',
'RTTSec': '100ms',
},
}, },
}, },
'bind': { 'bind': {