Chapter 1 What is Network Automation?
For diagrams, tables, or exact code formatting, .
A formalized pull request structure, including documentation, testing requirements, and an overall approval process, is the foundation for merging code from development into production.
Create the build (CI) and release (CD) pipeline structure. Small feature releases and pre-approved changes can be merged into the master branch quickly and easily. The code change will be delivered automatically when the next scheduled release occurs. Disruptive changes, larger changes, and major feature releases should all require approvals and be scheduled in advance especially larger one-time releases. Schedule these changes outside of the regular release cycle depending on urgency.
Many traditional NDLCs directly translate to network automation code development strategies. The “Prepare, Plan, Design, Implement, Operate, Optimize” (PPDIOO) methodology from Cisco, for example, nicely fits the network automation vision laid out in this book. The same lifecycle approach to network infrastructure should be applied to the new network automation code. The first steps (prepare, plan, design) are performed in VS Code while Ansible is used to perform the implement and operate steps. Refactoring code can be considered the optimization stage of the lifecycle.
For more on PPDIOO please visit: http://www.ciscopress.com/articles/article.asp?p=1608131&seqNum=3 Ansible Ansible was written by Michael DeHaan and developed by the Ansible Community, Ansible Inc., and Red Hat Inc. Initially released on February 20, 2012, Ansible’s latest stable version as of the writing of this book is 2.7.0.
According to the Red Hat whitepaper “Ansible in Depth” the design goals for Ansible were: Minimal in nature. Consistent. Secure. Highly reliable. Minimal learning required. https://www.ansible.com/resources/whitepapers/ansible-in-depth/ Another important distinguishing feature is that Ansible is agentless. SSH is used to connect Ansible to network devices. Nothing requires configuration on the devices aside from standard CLI access and possibly a service account when using RSA or other forms of AAA authentication on the network. Aside from Ansible needing to login to the device there are no other requirements to the network. Ansible is also cross platform across Linux, Windows, UNIX, F5 (BIG-IP) and Cisco network device OS (IOS, NX- OS).
Ansible by Red Hat is the open source version and Red Hat Ansible Engine is the commercially available version. Ansible is an automation engine that runs playbooks written in YAML format. Tasks are executed serially and offer full orchestration control within a playbook.
