NetCICD is an Ansible based toolset to facilitate continuous (…) for infrastructure.
We think practices used in DevOps and CI/CD can be adapted for infrastructure and add significant value. NetCICD is our attempt to make these practices accessible for infrastructure, and networking in particular.
NetCICD takes an industrial automation approach to network development and service deployment, with as ultimate goal: to be able to do CI/CD/CD:
- Continous Integration of new functionality, including automated testing
- Continuous Delivery of new, tested functionality for deployment to production
- Continuous Deployment: all new templates and workflows are automagically deployed to production
There are two ways of using NetCICD:
- Within the CICD Toolbox
- Locally with CML
Within the CICD Toolbox
To use NetCICD within the toolbox, just install the toolbox as per the installation instructions and you are good to go.
If you do not want to install the local toolset and just want to play with NetCICD and CML, you can import the labs in the cml2 directory tp play with. The labs all habe a desktop configured as jumphost.
For more detailed info, see the wiki. I put weird things in Observations
The first implementation was made in 2018 and was presented at Cisco Live 2018 in Barcelona. The video of the session can be seen after logging in.
Since then, we used the toolchain, but in that process we experienced that maintaining a tool chain supporting NetCICD remains a challenge. As a result, the CICD Toolbox was created, which is being developed by DevOps Engineers within Devoteam. It contains all tools required (git, Jenkins, Nexus and Keycloak for SSO) to make the NetCICD environment run locally (a supported commercial version is available too, contact networkautomation at devoteam.nl for more information). The tools are configured for NetCICD.
We are working to include Argos to include a continuous auditing mechanism so that it becomes possible to prove that the deployment (git commit) you are running operationally is actually the version tested and for which the test report can be found in you local Nexus repo.
Both NetCICD and the NetCICD Developer Toolbox are aimed towards local deployment, for example on your laptop or within the walled garden of your operations environment.
If you feel you can add to the framework, please do so.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
(c) Mark Sibering
Installation should be done by installing the CICD Toolbox. This repo can be found in the Gitea environment under the organisation Infraautomator.
NetCICD is developed on a Ubuntu 20.04.1 Desktop laptop with CML Personal edition version 2.1.
CML can be stock install with refplat_p-20201110-fcs.iso. CML is not down/upward compatible for reference platforms (see the CML documentation, question 7) .
I use one additional network for compatibility with the DevNet sandboxes: 10.10.20.0/24. The host running VMWare must have IPaddress 10.10.20.50, see the VMWare documentation.
For more information see the wiki attached to this repo.