ventilaar
/
sdn-cursus
Archived
1
Fork 0

Basis config is in principe compleet. Moet alleen de user input vragen en een simpele menu toevoegen.

This commit is contained in:
Ventilaar 2021-11-17 23:03:02 +01:00
parent da312753d0
commit b450b85c3e
1 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,53 @@
RSA_BITSIZE = 4096
MANAGEMENT_INTERFACE = 'GigabitEthernet 0/0/0'
test = {'HOSTNAME': 'kerk', 'DOMAIN': 'kerkhosting.lan', 'RSA_BITSIZE': RSA_BITSIZE, 'SSH_USERNAME': 'kekr',
'SSH_PASSWORD': 'kakr', 'ENABLE_PASSWORD': 'kork', 'MANAGEMENT_INTERFACE': MANAGEMENT_INTERFACE,
'MANAGEMENT_IP': '172.16.1.1', 'MANAGEMENT_MASK': '255.255.255.0'}
def generate_config(s):
"""
De volgende waarden moeten in een tuple meegegeven worden.
HOSTNAME DOMAIN SSH_USERNAME SSH_PASSWORD ENABLE_PASSWORD MANAGEMENT_IP MANAGEMENT_MASK
"""
config = 'enable\n' \
'configure terminal\n' \
f"hostname {s['HOSTNAME']}\n" \
'no ip domain-lookup\n' \
f"ip domain-name {s['DOMAIN']}\n" \
f"crypto key generate rsa general-keys modulus {s['RSA_BITSIZE']}\n" \
f"username {s['SSH_USERNAME']} password {s['SSH_PASSWORD']}\n" \
f"enable secret {s['ENABLE_PASSWORD']}\n" \
'service password-encryption\n' \
'ip ssh version 2\n' \
f"int {s['MANAGEMENT_INTERFACE']}" \
f"ip address {s['MANAGEMENT_IP']} {s['MANAGEMENT_MASK']}\n" \
'no shutdown\n' \
'exit\n' \
'line vty 0 15\n' \
'transport in ssh\n' \
'transport out ssh\n' \
'login local\n' \
'end\n' \
'exit\n'
return config
def menu():
print(
f"{'_' * 64}\n"
'Static variabelen(pas script aan):\n'
f' SSH RSA key bitsize: {RSA_BITSIZE}\n'
f' Management interface: {MANAGEMENT_INTERFACE}\n'
f"{'_' * 64}\n"
)
def main():
menu()
print(generate_config(test))
if __name__ == '__main__':
main()