A (Python- and PowerShell-based) script that generates commands/configurations for Cisco routers and switches that run IOS. It's meant for IOS users who are too lazy (and/or don't have experience with Network Automation-related solutions, such as Ansible) to configure everything themselves. By using this script, you can create a template for yourself. All you have to do after you ran the script, is simply copy-paste the output (which is in the .txt file) in IOS.
- It may be possible that some commands don't work, as over time with different versions of IOS, commands change. Feel free to make an issue, or create a PR to contribute. I have tested the generated router and switch configurations on a Cisco 1941 router and Cisco 2960-24TT switch in Cisco Packet Tracer 7.3.1, so that again means that commands on a physical router or switch may differ. Packet Tracer is usually more limited in the amount of supported commands.
- The PowerShell script is more limited and harder for me to maintain, so it won't be updated as much as the Python script.
- All commands that are outputted are not in the short form, so that for new IOS-users, it's more understandable of what they are doing and configuring.
- Make sure you are putting the right interfaces. Don't know which interfaces there are attached? Execute
show ip interface brief
in the Privileged EXEC Mode to see which interfaces are present. - The generated configurations are not 100% tested (yet). If there are any issues: file an issue in this repository.
- Mind that I'm not a developer, but I do this as a hobby. When I made this script, it was not focused on making the script looking as clean/efficient as possible. If you feel like improving it, feel free to create a Pull Request.
- This project is still WIP (Work-In-Progress), so do remember that it may lack some functions. Feel free to create a Pull Request or issue.
- Add possibility to configure multiple OSPF IDs, areas and network addresses
- Replace existing code by existing libraries, that should make it easier to implement certain functions
This repository offers two scripts:
- A Python-script that offers most basic functionality. It offers the following features:
- Enable
- Configure terminal
- Hostname
- No domain lookup (preventing domain lookups, resulting in having to wait for X amount of seconds before you can continue configuring)
- Configuring console lines
- Configuring VTY lines (for remote control)
- Password for IOS
- Password for console line
- Password for the vty line
- Whether you want to configure a switch (both layer 2 and layer 3 are supported) or router
- (Ranges of) interfaces (automatically does a
no shutdown
after setting an IP-address as well) - IP-addresses
- Subnetmasks
- Description for interfaces
- Username for SSH access
- Password for SSH access
- Domain names
- SSH and generating 2048-bit RSA keys
- Password encryption
- Banner MOTD (Message Of The Day)
- Routing (OSPF)
- Static routes
- VLAN IDs
- Putting VLANs in either trunk or access mode
- IP-routing
- Copying the running config to the startup config (with a
do write
)
enable
configure terminal
!
hostname R1
!
no ip domain lookup
enable secret class
!
banner motd # Unauthorized access is prohibited.#
!
username admin privilege 15 password 0 sshclass
!
interface gigabitethernet0/0
ip address 192.168.1.1 255.255.255.0
description to r2
no shutdown
interface gigabitethernet0/1
ip address 192.168.2.1 255.255.255.0
description to s1
no shutdown
!
ip domain name test.test
line console 0
exec-timeout 0 0
privilege level 15
password consoleclass
login
logging synchronous
!
line vty 0 15
password vtyclass
login local
transport input ssh
!
exit
crypto key generate rsa general-keys modulus 2048
ip ssh version 2
!
service password-encryption
!
router ospf 1
network 192.168.3.0 0.0.0.255 area 0
!
ip route 192.168.4.0 255.255.255.0 192.168.3.2
!
do write
enable
configure terminal
!
hostname S1
!
enable secret class
!
line console 0
exec-timeout 0 0
privilege level 15
password consoleclass
login
logging synchronous
!
line vty 0 15
password vtyclass
login local
transport input ssh
!
ip domain-name test.test
vlan 10
name test
!
crypto key generate rsa general-keys modulus 2048
ip ssh version 2
!
interface range gigabitethernet 0/1 - 2
duplex full
switchport mode trunk
no shutdown
!
interface range fastethernet0/1 - 3
duplex full
switchport mode access
switchport access vlan 10
no shutdown
!
do write
enable
configure terminal
!
hostname S1
!
enable secret cisco
!
line console 0
exec-timeout 0 0
privilege level 15
password class
login
logging synchronous
!
line vty 0 15
password vtyclass
login local
transport input ssh
!
ip domain-name test.com
vlan 5
name test
!
crypto key generate rsa general-keys modulus 2048
ip ssh version 2
!
ip routing
!
interface vlan 10
description test2
ip address 192.168.3.1 255.255.255.0
!
ip route 192.168.1.1 255.255.255.0 192.168.2.1
do write
- A PowerShell-script that offers basic functionality, but is much more limited than the Python script.
enable
!
conf t
!
hostname R1
!
enable secret class
!
banner motd # Unauthorized access is prohibited. #
!
no ip domain-lookup
!
username Test-admin privilege 15 password 0 cisco
!
interface GigabitEthernet0/1
description To S1
ip address 192.168.1.1 255.255.255.0
no shutdown
!
line con 0
exec-timeout 0 0
privilege level 15
password consoleclass
login
logging synchronuos
!
line vty 0 15
password vtyclass
login local
transport input ssh
!
crypto key generate rsa 2048
ip ssh version 2
!
service password-encryption
!
router rip
version 2
network 192.168.1.0
!
ip route 192.168.3.0 255.255.255.0 192.168.2.1