GitLab has become the de facto standard for managing the software lifecycle within enterprises. It offers a huge number of features, adapts to almost any requirement, and for this reason it is a broad and complex piece of software. When talking about automation, we will use GitLab as the foundation for provisioning our infrastructure as code (IaC).
In the series of posts related to Cisco NDO and Cisco ACI, we saw how NaC (NetAsCode) allows us to easily configure our fabric in an IaC model. In those articles we also saw how an additional parser helps us implement input data validation and define configurations starting from simplified data structures designed specifically for our infrastructure.
The next step is to move the validation, build, and configuration process into a CI/CD pipeline, where:
The entire system is not limited to Cisco NDO / ACI environments, but can be extended to any ecosystem that can be configured programmatically, and in particular with Terraform. In this specific case, I implemented a pipeline that configures Cisco NDO, Cisco ACI, Cisco Intersight, and VMware vSphere environments.
In my case, I installed GitLab Community Edition on an Ubuntu Linux 24.04 VM:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
At the end of the installation, we can log in using the root user and the password contained in the file /etc/gitlab/initial_root_password.
Before using GitLab, we may need to set the URL in the /etc/gitlab/gitlab.rb file:
external_url 'http://172.24.9.183:8060/'
At this point we can validate and apply the configuration:
Continue reading the post on Patreon .