Cisco POAP
One technology for automating the initial provisioning during Day 0 is Cisco PowerOn Auto Provisioning (POAP). It is supported in Cisco NX-OS and allows the processes of configuring and upgrading devices to be automated. This significantly reduces the manual tasks related to the deployment of networking and storage communication infrastructures in the data center.
The POAP feature is enabled by default, and for its successful operation it needs to have the following components in the network (Figure 20-2):
Figure 20-2 Cisco POAP Process
- DHCP server: Used to assign IP addressing information (IP address, gateway, DNS)
- TFTP server: Contains the configuration scripts
- Software images repositories: One or more servers containing software images
The POAP process starts with booting up the switch. If the switch has a configuration, it is loaded, and then the switch goes into normal operation. However, if there is no configuration, by default, the switch will enter POAP mode. Then the following will occur:
- DHCP discovery: The switch will send a DHCP request through the management interface.
- DHCP response: The DHCP server will reply with the needed IP addressing configuration and with information about the IP address of the TFTP server and the configuration script filename.
- TFTP server communication: The switch will connect to the TFTP server and download the configuration script file. It will execute the file.
- Software images (kickstart and system image files) download: If the configuration script file specifies that the switch has to upgrade its software image files, it will download the images, install them, and reboot the switch.
- Configuration file application: After the successful installation of the software images and the rebooting of the switch, the configuration file will be applied to the configuration of the switch.
- Normal operation: At this point, the POAP process has finished. The switch runs the required version of the software, has the needed configuration applied, and is functioning as expected.
The POAP configuration script file is developed in Python, and Cisco provides a reference one that can be modified and reused. The configuration script file contains the following information:
- A procedure to retrieve the serial number of the device
- A procedure to define the software image’s version
- A procedure to download and install the software image files
- A procedure to get the configuration file and copy it to the startup configuration file
- A procedure to reboot the switch
The reference POAP configuration script file for the Cisco Nexus 9000 switches can be found at https://github.com/datacenter/nexus9000/blob/master/nx-os/poap/poap.py.
Cisco POAP is a great example of automation and orchestration that fits in Day 0 and can be used to perform the provisioning of the devices in the infrastructure and to automate the process of upgrading the operating system.