Chapter 4 Where to Start with Network Automation?
For diagrams, tables, or exact code formatting, .
VS Code:
o Installed on either Windows or Linux developer workstation. o Extensions installed for Python, YAML, Jinja2, Git, Ansible, and other file formats. o Repository cloned locally from TFS.
Network:
o Service account created for Ansible playbooks to authenticate. o Ansible playbooks have method of authenticating.
Processes and NDLC New organizational processes need to be adopted and formalized before beginning, even if only in the information gathering phase. This ensures new processes have time to take hold and the team is ready to follow the new NDLC. This new NDLC includes:
Creation of a centralized TFS repository. Creation of a master branch. Using working branches, such as feature requests or bug fixes, for all changes. Committing code often using Git. Using pull requests to merge tested code into the master branch. Establish the associated approval workflow in TFS.
Iron out the details of this process before starting to build the solution. To make the change gradual and the transition smooth, have new automation meetings and discuss possible quick wins or any immediate needs that can be met using the newly available capabilities. Focus on how information gathering, and network reconnaissance playbooks will be of immediate value to network operations. Get the operations team excited and involved in running and requesting playbooks. Build a library of reconnaissance tools gradually moving towards automating changes.
Training and Transition The transitionary phase is likely one of the most painful parts of adopting any new technology. There is natural resistance to change. Several new tools are being introduced all at once. Stressing the importance of following the new processes for network management is the most important component of a successful transition to network automation. The philosophy of “automate everything” must be adopted by everyone for this to work. Manual out-of-band changes cannot be tolerated once full automated network configuration management has been put into effect. Conflicts between the manual changes and the source of truth will exist. Most likely, these manual changes will be overwritten and lost the next time an automated change is made. This occurs because the changes were never added to the code repository which leaves the network potentially impacted with no way to track what happened. This hazard exists and therefore should be avoided at all costs. Staff need to be educated on the serious and negative consequences of making manual changes.
Network engineers will need a substantial lead ahead of network operations as they will likely be the ones writing the initial playbooks and converting the network to code. Network operations can then be trained on how to execute the playbooks. Over time, more NetDevOps can be adopted and network operations can start updating the data models and potentially write their own information gathering
