diff --git a/pnp/README.md b/pnp/README.md index 54cc2099ad347b8189d0e14b333aacd4fa971fd9..f49da664e160d335770e7b7fa93bde0465521345 100644 --- a/pnp/README.md +++ b/pnp/README.md @@ -1,5 +1,19 @@ # Plug and Play (PnP) server for IOS/IOS-XE based devices +* [Introduction](pnp/README.md#introduction) + * [Acknowledgment](pnp/README.md#acknowledgment) +* [Prerequisites](pnp/README.md#prerequisites) +* [How to use](pnp/README.md#how-to-use) + * [IOS/IOS-XE Images](pnp/README.md#iosios-xe-images) + * [Configuration files](pnp/README.md#configuration-files) + * [Install the PNP Server](pnp/README.md#install-the-pnp-server) + * [Configure the PNP Server](pnp/README.md#configure-the-pnp-server) + * [Global settings file open-pnp.tomel](pnp/README.md#global-settings-file-open-pnptoml) + * [Images file images.tomel](pnp/README.md#images-file-imagestoml) + * [Command Line Options](pnp/README.md#command-line-options) +* [PnP server discovery](pnp/README.md#pnp-server-discovery) +* [PnP Status page](pnp/README.md#pnp-status-page) + # Introduction This is a basic implementation of the Cisco Plug and Play protocol, to fully automate the day0 provisioning of Cisco IOS/IOS-XE devices. @@ -17,11 +31,12 @@ This project is based on https://github.com/oliverl-21/Open-PnP-Server ## How to use ---- ### IOS/IOS-XE Images Place the IOS/IOS-XE images on an HTTP server where the new devices can download them. If you use this PnP server to provide the images place them in the `images` subdirectory. For the images I would recommend using a _real_ HTTP server. +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) + --- ### Configuration files Create for each device a configuration file named SERIALNUMBER.cfg. i.e.: [`FCZ094210DS.cfg`](/pnp/configs/FGL223590FL.cfg). @@ -32,8 +47,10 @@ should deliver the configuration files, copy them in the `configs` subdirectory. **Note**: The _**open-pnp**_ server uses HTTP. So there is no encryption for the configuration files as the are downloaded by the new devices. +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) + --- -### Install the PnP server: +### Install the PnP server on Linux ``` @@ -104,6 +121,8 @@ You can check if the PnP server is running by opening a web browser and accessin  +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) + --- ### Configure the PnP server @@ -117,8 +136,10 @@ _**Reload CFG**_ on the status page. **NOTE:** both files need to be in valid [TOML](https://toml.io/en/) format. +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) + --- -#### Global settings [**open-pnp.toml**](/pnp/open-pnp.toml) +#### Global settings file [**open-pnp.toml**](/pnp/open-pnp.toml) ``` # [settings] @@ -151,10 +172,12 @@ _**Reload CFG**_ on the status page. **Note**: you need to uncomment (remove `# `) the lines if you change the values. +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) + --- -#### _IMAGES_ file [**_images.toml_**](/pnp/images.toml) +#### _Images_ file [**_images.toml_**](/pnp/images.toml) -Each entry in the _IMAGES_ file contains +Each entry in the _Images_ file contains - the **name** of the image file as section title - the IOS/IOS-XE **version** of the image - the **md5** checksum of the image file @@ -172,6 +195,8 @@ models = ["C1000-8T-2G-L", "C1000-24P-4G-L", "C1000-24T-4G-L", "C1000-24T-4X-L", **NOTE:** By default _open-pnp_ expects the image data in _images.toml_. You can change this with the key _image_data_ in _open-pnp.toml_. +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) + --- ### Command Line Options @@ -218,6 +243,7 @@ optional arguments: Usage: python open-pnp.py --config-url http://192.168.10.133:8080/configs --image-url http://192.168.10.133:8080/images ``` +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) --- ### PnP server discovery @@ -244,7 +270,9 @@ ip dhcp pool autoinstall option 43 ascii 5A1D;K4;B2;I192.168.10.15;J8080 lease 0 2 ``` -For more details on PnP server discovery options see [PnP server discovery](https://developer.cisco.com/site/open-plug-n-play/learn/learn-open-pnp-protocol/). There you will also find an overview how the PnP protocol works. +For more details on PnP server discovery options see [PnP server discovery](https://developer.cisco.com/site/open-plug-n-play/learn/learn-open-pnp-protocol/). There you will also find an overview how the PnP protocol works. + +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) --- ### PnP Status page @@ -254,3 +282,5 @@ You can monitor the PnP progress on the PnP server status page.  **Hint** you can change the status page output by modifying the [**_status.html_**](/pnp/templates/status.html) file in the templates' subdirectory. + +[back to top](pnp/README.md#plug-and-play-pnp-server-for-iosios-xe-based-devices) diff --git a/pnp/configs/DEFAULT.cfg b/pnp/configs/DEFAULT.cfg deleted file mode 100644 index 8aab374c29815bd08c82bdb69ec80e63a336f7b6..0000000000000000000000000000000000000000 --- a/pnp/configs/DEFAULT.cfg +++ /dev/null @@ -1,32 +0,0 @@ -version 17.6 - -aaa new-model -username admin privilege 15 algorithm-type scrypt secret admin - -aaa authentication login default local -aaa authorization exec default local -aaa authorization console - -crypto key generate rsa modulus 4096 label SSH-KEY -ip ssh version 2 -ip ssh rsa keypair-name SSH-KEY - -interface gi0/0/0 - no ip dhcp client client-id - ip address dhcp - no shutdown -! -interface vlan 1 - ip address dhcp - no shutdown -! -line con 0 - logging synchronous - width 0 -! -line vty 0 15 - logging synchronous - width 0 - transport input ssh -! -end diff --git a/pnp/images.toml b/pnp/images.toml index 3328ca3f3560e72276036911e6e2bcbd3952127f..abdec3943f8931b9603b7bdfc93e957ad0a2aa2a 100644 --- a/pnp/images.toml +++ b/pnp/images.toml @@ -2,7 +2,7 @@ version = "15.2(7)E7" md5 = "1e6f508499c36434f7035b83a4018390" size = 16499712 -models = ["C1000-8T-2G-L", "C1000-24P-4G-L", "C1000-24T-4G-L", "C1000-24T-4X-L", "C1000-48P-4G-L", "C1000-48T-4X-L", "C1000-48P-4X-L"] +models = ["C1000-8T-2G-L", "C1000-24P-4G-L", "C1000-24T-4G-L", "C1000-24T-4X-L", "C1000-24P-4X-L", "C1000-48P-4G-L", "C1000-48T-4X-L", "C1000-48P-4X-L"] ["c1100-universalk9.16.12.01a.SPA.bin"] version = "16.12.1a"