cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1111
Views
10
Helpful
1
Comments
vinagend
Cisco Employee
Cisco Employee

Introduction

DevOps

As we measure our end-to-end pipeline and begin to improve it, we address the fundamental DevOps goal, which is to increase an organization’s ability to deliver applications and services at high velocity. DevOps is the combination of cultural philosophies, practices, and tools, which can even be applied to organizations that are using traditional software development and infrastructure management processes. The resulting speed increase enables organizations to better serve their customers and compete more effectively in the market.

 

vinagend_0-1674533338551.png

DevOps has multiple stages. The four basic stages are:

vinagend_1-1674533353878.png

NetDevOPS

NetDevOps combines toolsets, concepts, and methodologies to automate deployment, testing and manual networking processes. It treats the network as code to allow for version control, and reliably tests changes to make sure of quality and stability.

 

Four stages for NetDevOps

vinagend_2-1674533367045.png

 

vinagend_3-1674533367056.png

There are so many tools available and we need to select the specified tools which we want to use for our organization's purpose.

 

vinagend_4-1674533367077.png

 

Tools

  • Jenkins
  • Ansible
  • Docker
  • GitHub
  • Nexus Dashboard Insights

vinagend_5-1674533367112.png

 

Jenkins is an open-source continuous integration tool that helps bring everything together regarding DevOps strategy to push code.

Ansible allows us to develop reusable automation components by grouping and encapsulating related automation artifacts, like configuration files, templates, tasks, and handlers. It natively supports Cisco ACI.

Ansible provides seamless application configuration, while Docker provides a containerized environment for building and deploying applications.

GitHub is a code hosting platform for version control and collaboration. It lets us and others work together on projects from anywhere like [repositories, branches, commits, and pull requests]

Cisco Nexus Dashboard Insights (Nexus Dashboard Insights) is a real-time monitoring and analytics service.

How to use NetDevOps practices for ACI?

  1. The discovery process for an ACI fabric - Once the ACI hardware installation and basic configuration setup are done, it auto-detects and connect all names of Spines and Leaves.
  2. The current environmental compliance check is an extra level of security and confirms we’re operating up to standard.
  3. Firmware can be updated in those devices by bulk execution and feedback mechanisms. It can be performed on demand, or they can be scheduled for execution at any future point in time.
  4. Deploy ACI fabrics to allow applications to be gradually migrated from one infrastructure to another.
  5. Configure management connectivity to the ACI fabric. It is easieror security analysts to detect and respond to potential threats.
  6. Troubleshoot can assist us with monitoring traffic, debugging, and detecting issues such as traffic drops, misrouting, blocked paths, and uplink failures.

vinagend_6-1674533367121.png

 

Identify Ansible modules

Ansible ACI modules can provide a user-friendly interface to managing our ACI environment. We can find the modules and code to be run in Ansible. It shows detailed infrastructure.

vinagend_7-1674533389996.png

 

 

  • The Payload of an API Module is the body of our request and response message. It contains the data that we send to the server when we make an API request. We can send and receive Payload in different formats, for instance JSON.
  • The next one is Visore; it relates to the object browser, which we can use to perform the data filter and analysis on our API.
  • We can use the dev tools in the browser to interpreter our API. We can click something on our browser, and see the payload of the click.

 

vinagend_8-1674533390010.png

 

API Inspector contains the inspection codes and standards:

API Inspector - It provides the interception of our API calls. It is used to provide a REST API payload, and is a most convenient method to consume the REST API.

Visore - This is like an object browser, with which we can perform more filtration, more Analysis on our API.

Browser - Can use dev tools on our browser to intercept what is happening on our ACR. If we click something, it shows the payload equivalent of that click.

vinagend_9-1674533390023.png

 

 

Next, we must use GitHub for our Version Control System. So, we should not have to keep anything or any files locally.

Here are some concepts of branches in GitHub:

  1. Release branch - access/responsible for Administration task
  2. Feature branch - Administrator who have access for network side like creating access policy
  3. Main branch - Admin on main branch. Main branch is our source code.

vinagend_10-1674533390035.png

 

 

Nexus Dashboard Insights. Automate, monitor, and analyze our data center fabric in real time. Nexus looks inside to explore the product for data analytics and is a tool used to multi-task.

From a validation perspective, it is one of the key functions called pre-change analysis, which takes input of our current confirmation. It impacts at delta time and it basically takes snapshots automatically.

 

vinagend_11-1674533390043.png

 

 

Nexus Dashboard insights

Easy to understand and proactively assures performance on our ACI fabric.

The base architecture needs some infrastructure to execute these lines of code with Jenkins. We must set up authentication to secure our projects.

From the nodes and cloud, inspect Agents and On-demand Agents. These are the difficult virtual machines that would always be powered on it, and are the connectors to Jenkins to run our code. On-demand Agents run any code found in Docker, once done, it will automatically delete.

Pre change Analysis

It is one of the key functions. It takes input of our current configuration and matches it with delta time period. It will take snapshot automatically and, when we need, will compare with existing change and with our current changes. It will provide the before and after configuration of our state.

 

vinagend_12-1674533390050.png

 

 

We can create a Webex bot as a self-service experience for relaying the information automatically. For example, build or failure of anything can be tracked.

 

vinagend_13-1674533450232.png

 

vinagend_14-1674533450239.png

 

 

vinagend_15-1674533512889.png

Demo:

Demo environment use depends on the Base session to run for the local desktop. The docket contains a lightweight process, and we can download it from GitHub:

 

Demo Code: https://github.com/saurabhkothari/CiscoLive-BRKDEV2291

 

 

 

 

vinagend_16-1674533512901.png

 

 

Open to the Jenkins dashboard and see it has shown the stage view and difficult view of history.

 

vinagend_17-1674533512936.png

 

 

Next, check out the GitHub code and open the ‘fabric _switch_discovery’ file.

vinagend_18-1674533512956.png

 

vinagend_19-1674533512979.png

From GitHub, we can find the leaf ID and spine ID once we have opened the leaf.CSV file.

See below…

vinagend_20-1674533513019.png

 

 

vinagend_21-1674533513037.png

if want or need to merge, it is possible with leaf and spine ID 101 and 102

With the IP address, we can check the project at the top and it will open the stage view; choose the Fabric discovery

vinagend_22-1674533513044.jpeg

It needs some infrastructure to execute these lines of code with Jenkins, and must use authentication.

vinagend_23-1674533513065.png

 

vinagend_24-1674533513089.png

 

Choose the option to build with parameters and change the IP address and username credentials.

vinagend_25-1674533513112.png

 

vinagend_26-1674533513129.png

Next, we need to check overall credentials for the local desktop. Go to the Jenkins dashboard option and choose to ‘Manage Jenkins’.

vinagend_27-1674533586786.png

Open and scroll down, then choose the ‘Manage Credentials’.

vinagend_28-1674533586830.png

 

vinagend_29-1674533586858.png

Check the configuration for GitHub code, upload, and select the ‘Configure’ option. Scroll down, then fill the pipeline repository box.

vinagend_30-1674533586882.png

 

vinagend_31-1674533586898.png

Open the GitHub repository to check the clone URL in Jenkins file.

vinagend_32-1674533586929.png

For the next step, we can check out the code from GitHub and pass to Ansible and check the number of switches present.

vinagend_33-1674533586950.png

Switches are identified with the DOCKER container.

vinagend_34-1674533586981.png

 

vinagend_35-1674533586998.png

Create a Webex bot. It is used to identify the error messages and builds a history.

vinagend_36-1674533587019.png

Failure and success view in Jenkins dashboard

vinagend_37-1674533587069.png

Sample of running the Pipeline PreChange-Analysis

vinagend_38-1674533587096.png

 

vinagend_39-1674533587112.png

In the Console Output, we can verify the runtime changes.

 

vinagend_40-1674533587142.png

 

 

vinagend_41-1674533587178.png

 

 

Manage PreChange-Analysis to view the history of changes and verify the content changes; it will show the output, windows stage-wise.

 

 

vinagend_42-1674533587197.png

 

 

vinagend_43-1674533587237.png

 

 

An error is identified and reported to the Webex chat room

vinagend_44-1674533587247.jpeg

 

 

Once the process has been completed, we need to check the view Epoch Delta analysis. It shows on error stage critical, major, etc., error thrown by the event management page.

 

vinagend_45-1674533587265.png

 

vinagend_46-1674533587285.png

 

vinagend_47-1674533587305.png

 

 Resources:

GitHub url : https://github.com/saurabhkothari/CiscoLive-BRKDEV2291

 

Comments
Geevarghese Cheria
Cisco Employee
Cisco Employee

Thanks for publishing. Very informative on how to start Automating ACI.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:


New to DevOps? These resources can help:

DevOps Resources