Update
Overlay
Pipeline

Add New Network Using CI/CD Pipeline

In this final section for Ansible you are going to use your newly built pipeline to add a new Network. This demonstrates how easy it is to make changes to your Network stored in GitLab as code and validate those changes against your staging fabric before pushing the changes to your production fabric.

Step 1 - Add A New Overlay Variables File

Since you have a central variable file for all of your VRFs and Networks, all you need to do is modify the file to add the new data. Normally you would open this file and add the new Network but to make it easy we are going to replace the file you created ealier with the new Network added in.


touch ~/workspace/ndlab/nac/host_vars/fabric-stage/networks.nac.yml
cat << EOF > ~/workspace/ndlab/nac/host_vars/fabric-stage/networks.nac.yml
---
vxlan:
  overlay:
    networks:
      - name: NaC-Net01
        vrf_name: NaC-VRF01
        net_id: 130001
        vlan_id: 2301
        vlan_name: NaC-Net01_vlan2301
        gw_ip_address: 192.168.1.1/24
        network_attach_group: all
      - name: NaC-Net02
        vrf_name: NaC-VRF01
        net_id: 130002
        vlan_id: 2302
        vlan_name: NaC-Net02_vlan2302
        gw_ip_address: 192.168.2.1/24
        network_attach_group: all
      - name: NaC-Net03
        vrf_name: NaC-VRF01
        net_id: 130003
        vlan_id: 2303
        vlan_name: NaC-Net02_vlan2303
        gw_ip_address: 192.168.3.1/24
        network_attach_group: all
    network_attach_groups:
      - name: all
        switches:
          - hostname: staging-leaf1
            ports:
              - port-channel10
          - hostname: staging-leaf2
            ports:
              - port-channel10
EOF



touch ~/workspace/ndlab/nac/host_vars/fabric-prod/networks.nac.yml
cat << EOF > ~/workspace/ndlab/nac/host_vars/fabric-prod/networks.nac.yml
---
vxlan:
  overlay:
    networks:
      - name: NaC-Net01
        vrf_name: NaC-VRF01
        net_id: 130001
        vlan_id: 2301
        vlan_name: NaC-Net01_vlan2301
        gw_ip_address: 192.168.1.1/24
        network_attach_group: all
      - name: NaC-Net02
        vrf_name: NaC-VRF01
        net_id: 130002
        vlan_id: 2302
        vlan_name: NaC-Net02_vlan2302
        gw_ip_address: 192.168.2.1/24
        network_attach_group: all
      - name: NaC-Net03
        vrf_name: NaC-VRF01
        net_id: 130003
        vlan_id: 2303
        vlan_name: NaC-Net02_vlan2303
        gw_ip_address: 192.168.3.1/24
        network_attach_group: all
    network_attach_groups:
      - name: all
        switches:
          - hostname: prod-leaf1
            ports:
              - port-channel10
          - hostname: prod-leaf2
            ports:
              - port-channel10
EOF


Step 2 - Add the Modified overlay.yml for Committing to the GitLab Repo


git add .


Step 3 - Double Check File Staged For Commit


git status .


The following file is staged for commit. Make sure your list matches the output below!

    On branch stage
    Your branch is up to date with 'origin/stage'.

    Changes to be committed:
    (use "git restore --staged <file>..." to unstage)
            modified:   host_vars/fabric-prod/networks.nac.yml
            modified:   host_vars/fabric-stage/networks.nac.yml

Step 4 - Commit Files to the GitLab Repo


git commit -m "Add new Networks in Overlay"


    [stage c228ded] Add new Networks in Overlay
    2 files changed, 14 insertions(+), 1 deletion(-)

Step 5 - Push Files to the GitLab Repo stage Branch


git push -u origin stage


    Enumerating objects: 47, done.
    Counting objects: 100% (47/47), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (45/45), done.
    Writing objects: 100% (47/47), 6.84 KiB | 700.00 KiB/s, done.
    Total 47 (delta 15), reused 0 (delta 0), pack-reused 0
    remote:
    remote: To create a merge request for stage, visit:
    remote:   http://10.15.0.159/Pod01_2025_01/LTRDCN-2621/-/merge_requests/new?merge_request%5Bsource_branch%5D=stage
    remote:
    To 10.15.0.159:Pod01_2025_01/LTRDCN-2621.git
    * [new branch]      stage -> stage
    Branch 'stage' set up to track remote branch 'stage' from 'origin'.

Step 6 - Check to make sure the Lint Stage was run.

As soon as the code was committed to the stage branch, Ansible Lint validation was triggered. Return to your GitLab and navigate to Pipelines:

  1. Click Build on the side menu
  2. Then click Pipelines
  3. Go into the new pipeline by clicking on the blue circle with a half moon icon or on the blue link titled Running

  4. Only the lint stage is triggered when committing the code to the stage branch, the green circle check icon indicates the pipeline succeeded



    This shows the linting running against the commit. If you want to see detailed logs of the job run you can click any of the steps.




    The lint steps should completely successfully as they did before.



Step 7 - Create a Merge Request (Also known as a Pull Request)

Now you need to create a merge request to verify/test the new Networks configuration against the ND staging environment fabric.

  1. Click Merge requests on the side menu
  2. Then click the blue New merge request button located in the center of the page



  3. Select stage as Source branch
  4. Select main as Target branch
  5. Then click Compare branches and continue



  6. Change the Title of this merge request to Add new Networks in Overlay and leave the rest of the fields with the default settings
  7. Then click Create merge request



  8. Click the Pipeline number or the blue circle with half moon icon to navigate to pipeline page



Step 8 - Wait Until Pipeline Completes

Wait until your pipeline completes against staging. In the mean time, feel free to checkout what is going on in your ND instance by following the next step.







Step 9 - Login to Nexus Dashboard and Verify the new Network on the Staging Fabric

In your browser, navigate back to your ND instance.

  1. Close your prod fabric as that should be the last location you were at in ND.



  2. Then double-click on your fabric-stage



  3. Click Segmentation and security in the top navigation bar
  4. Click Networks in the sub-navigation bar
  5. Verify the new network is present
  6. Note

    You may need to wait for the pipeline for some of the Networks to show up in the ND GUI.




Step 10 - Navigate to the Merge Request

When your pipeline is done, open the merge request page:

  1. Click the !# link in the text Related merge request !# to merge stage (The link is !2 in the screenshot below)



Step 11 - Merge the Request

To open the merge request page:

  1. Click the blue Merge button



  2. Once your code is merged, a new CD pipeline is triggered (#113 in this screenshot). Click the Pipeline number or the blue circle with half moon icon to navigate to the pipeline page. Ensure you click on the new pipeline that is currently running and not the previous pipeline that has already passed.



Step 12 - Wait Until the Pipeline is Finished

Wait until the pipeline is finished:



    This step will deploy the new Network to the Production Fabric

    You have now modifed your Fabric by updating your source code and then using the CI and CD pipelines to deploy the changes!






Step 13 - Review All Pipelines Run As Part of Lab

Wait until the pipeline is finished:




Step 14 - Verify the new Network on the Production Fabric

In your browser, return to ND and navigate to your prod-fabric:

  1. Close your fabric-stage



  2. Navigate to fabric-prod



  3. Verify fabric-prod Overview Dashboard displays
  4. Check fabric-prod

    This time open the fabric page and check fabric-prod, NOT fabric-stage. Remember the CD pipeline pushes changes to the production fabric and you may need to wait to see the new Network as the pipeline runs.




  5. Navigate to Inventory in the top navigation bar
  6. Navigate to Switches in the sub-navigation bar and verify everyting is in sync:



  7. Navigate to Segmentation and security in the top navigation bar
  8. Navigate to Networks in the sub-navigation bar and verify new Network:




Congratulations on completing the bonus day2 operations section!
  • Introduction
  • Dev Setup
  • Nexus Dashboard
  • VXLAN as Code
  • NetDevOps
  • Bonus: Update Overlay