could do that better” Networking is being disrupted "Ugh, can't anybody in this town take the law into their own hands?" (and in some ways, they’re right!)
management, server management, network management “Network Programmability” isn’t (just) about programming "So mono means one, and rail means rail ...and that concludes our intensive three week course."
touch points for configuration changes • Difficult rollback • Configuration Management • Centrally define desired state/configuration of all devices or subsets of devices Configuration Management
Linux Service /etc/init.d/puppet.d NX-OS Cisco Puppet Agent NX-API Cisco Puppet Module(Incl Utility GEMs) Linux Software Repository Server Yum/RPM install puppet.rpm • Cisco Puppet Agent RPM package on Puppetforge and source on GitHub • Install Cisco Puppet Module on Puppet Master • Yum install Puppet Agent RPM on switches • Switch Agent periodically will poll Puppet Master for updated catalog and attempt to converge switch to desired state
Version Control System • Repositories • Multiple repositories (e.g. each developer’s laptop, central/shared) • Push/pull changes between repositories Git
tests many times per day • Use source code management • Automate builds • Make builds self testing • Keep builds fast • Test in a clone of production • Publicise test results Continuous Integration
of Puppet manifest(s) 3. Commit to local git repository (“git commit”) 3. “git push” 4. New branch on GitLab 5. Trigger GitLab CI new commit workflow 6. Automated tests e.g. puppet- lint 7. Results attached to branch 9. Reviews changes and test results, accept merge request 9. Trigger GitLab CI merged workflow 11. GitLab CI workflow deploys new manifest to puppet master 12. At next check in infrastructure updates config GitLab CI 8. Create Merge Request in GitLab