iperf3 servers
This commit is contained in:
parent
3256329064
commit
edbdae6b83
3 changed files with 91 additions and 0 deletions
13
bundles/iperf3/items.py
Normal file
13
bundles/iperf3/items.py
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# directories = {
|
||||||
|
# '/etc/iperf3': {
|
||||||
|
# 'purge': True,
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
|
||||||
|
# files = {
|
||||||
|
# '/etc/iperf3/authorized_users': {
|
||||||
|
# 'content': '\n'.join(
|
||||||
|
# node.metadata.get('iperf3/authorized_users')
|
||||||
|
# )
|
||||||
|
# },
|
||||||
|
# }
|
77
bundles/iperf3/metadata.py
Normal file
77
bundles/iperf3/metadata.py
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
from hashlib import sha256
|
||||||
|
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
'apt': {
|
||||||
|
'packages': {
|
||||||
|
'iperf3': {},
|
||||||
|
'iperf': {
|
||||||
|
'installed': False,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
# 'iperf3': {
|
||||||
|
# 'username': node.name,
|
||||||
|
# 'password': repo.vault.password_for(f'{node.name} iperf3').value,
|
||||||
|
# 'authorized_users': {},
|
||||||
|
# },
|
||||||
|
'nftables': {
|
||||||
|
'input': {
|
||||||
|
'tcp dport 5202 ip saddr { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } accept',
|
||||||
|
'udp dport 5202 ip saddr { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } accept',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'systemd': {
|
||||||
|
'units': {
|
||||||
|
'iperf3.service': {
|
||||||
|
'Unit': {
|
||||||
|
'Description': 'iperf3 server',
|
||||||
|
'After': {
|
||||||
|
'syslog.target',
|
||||||
|
'network.target',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'Service': {
|
||||||
|
# 'ExecStart': '/usr/bin/iperf3 --server --port 5202 --authorized-users-path /etc/iperf3/authorized_users',
|
||||||
|
'ExecStart': '/usr/bin/iperf3 --server --port 5202',
|
||||||
|
},
|
||||||
|
'Install': {
|
||||||
|
'WantedBy': {
|
||||||
|
'multi-user.target',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'services': {
|
||||||
|
'iperf3.service': {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# @metadata_reactor.provides(
|
||||||
|
# 'iperf3/hash',
|
||||||
|
# )
|
||||||
|
# def hash(metadata):
|
||||||
|
# username, password = metadata.get('iperf3/username'), metadata.get('iperf3/password')
|
||||||
|
|
||||||
|
# return {
|
||||||
|
# 'iperf3': {
|
||||||
|
# 'hash': sha256(f'{{{username}}}{password}'.encode()).hexdigest(),
|
||||||
|
# },
|
||||||
|
# }
|
||||||
|
|
||||||
|
|
||||||
|
# @metadata_reactor.provides(
|
||||||
|
# 'iperf3/authorized_users',
|
||||||
|
# )
|
||||||
|
# def iperf3(metadata):
|
||||||
|
# return {
|
||||||
|
# 'iperf3': {
|
||||||
|
# 'authorized_users': set(
|
||||||
|
# f"{other_node.metadata.get('iperf3/username')},{other_node.metadata.get('iperf3/hash')}"
|
||||||
|
# for other_node in repo.nodes
|
||||||
|
# if other_node.has_bundle('iperf3')
|
||||||
|
# ),
|
||||||
|
# },
|
||||||
|
# }
|
|
@ -6,6 +6,7 @@
|
||||||
'apt',
|
'apt',
|
||||||
'nftables',
|
'nftables',
|
||||||
'pip',
|
'pip',
|
||||||
|
'iperf3',
|
||||||
],
|
],
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'apt': {
|
'apt': {
|
||||||
|
|
Loading…
Reference in a new issue