From 6e701fc838deeb04ef6ddbd404769d083581a073 Mon Sep 17 00:00:00 2001 From: Corinne Magone <109247081+corinne-mag@users.noreply.github.com> Date: Thu, 14 Sep 2023 09:26:23 -0400 Subject: [PATCH] Update README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cfb61a9..675e9c8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Model-Driven Devops Repo +# Model-Driven DevOps Repo -This is the base repo for Model-Driven devops. It has the needed python requirements (requirements.txt) and +This is the base repo for Model-Driven DevOps. It has the needed python requirements (requirements.txt) and Ansible Collection (requirements.yml) to run a Model-Driven Devops pipeline. It requires an ansible inventory and -certain envrionment variables to be set. It also assumes you are using Cisco Modeling Labs, GitLab, and NSO. Details on running +certain environment variables to be set. It also assumes you are using Cisco Modeling Labs, GitLab, and NSO. Details on running NSO and CML can be found by using the following links. @@ -49,7 +49,7 @@ git remote add origin https:///.git git push -u -f origin main ``` -## Installing Dependancies +## Installing Dependencies ### Python Next, it is highly recommended that you create a virtual environment to make it easier to install the dependencies without conflict: @@ -103,7 +103,7 @@ export CML_VERIFY_CERT=false ``` # Setup Your Inventory -The base repository contains two ansible inventory directories. The directory labled inventory_prod will contain an nso.yml file that points to the NSO instance managing your production devices. Below is an example of how your nso.yml file should look. +The base repository contains two ansible inventory directories. The directory labeled inventory_prod will contain an nso.yml file that points to the NSO instance managing your production devices. Below is an example of how your nso.yml file should look. ### inventory_prod/nso.yml ``` @@ -127,9 +127,9 @@ The base repository contains two ansible inventory directories. The directory la Follow the same instructions for the nso.yml file in your inventory_test directory with the information for your test instance of NSO. ### inventory_prod/network.yml -The network.yml file is the key element for your NetDevOps pipeline. It defines your infrastructures heirarchy and design. It also allows you to provide tags to specific devices, giving operators the ability to execute specefic tests or push modular pieces of configuration to a subset of your infrastructure. The base repository provies a sample network.yml inventory file that can be used as a template to build your network. This template is taken from the core MDD repository and maps to the excercises that an be executed against our reference topology. +The network.yml file is the key element for your NetDevOps pipeline. It defines your infrastructures hierarchy and design. It also allows you to provide tags to specific devices, giving operators the ability to execute specific tests or push modular pieces of configuration to a subset of your infrastructure. The base repository provides a sample network.yml inventory file that can be used as a template to build your network. This template is taken from the core MDD repository and maps to the exercises that can be executed against our reference topology. -When implementing MDD in a brownfield environment, we want to harvest the configurations from our poduction network, so it is recommended to start with the network.yml file in your inventory_prod folder. +When implementing MDD in a brownfield environment, we want to harvest the configurations from our production network, so it is recommended to start with the network.yml file in your inventory_prod folder. If you are using this base repository with CML and you do not have a physical environment, you do not need to provide any additional information for each device. The ansible collection takes advantage of the CML API to automatically grab the IP addresses for each device. ``` @@ -184,16 +184,16 @@ Next, we will harvest the configurations as structured data in the OpenConfig fo ansible-playbook ciscops.mdd.harvest -i=inventory_prod ``` -You should start to see the configurations being populated under the mdd-data directory matching the heirarchy defined in your network.yml file. +You should start to see the configurations being populated under the mdd-data directory matching the hierarchy defined in your network.yml file. ![Screenshot 2023-06-05 at 4 37 14 PM](https://github.com/lvangink/mdd_base/assets/65776483/e01fbc26-cf02-49c3-8460-39b03f7f28da) You will see files parsed as both oc-feature.yml and config-remaining.yml. We are regularly adding supported OpenConfig features to the NSO service. While we continue to add support, you will have your data represented as both OpenConfig and Native. ## Building Your Digital Twin -If you do not have an existing simulation environment for pipeline testing, our ansible collection includes a playbook that will use CDP and LLDP to map your network and build a simulation that can be used to import into CML. This playbook also builds the interfce mapping table necessary to ensure your simulation matches your production interface naming convention. +If you do not have an existing simulation environment for pipeline testing, our ansible collection includes a playbook that will use CDP and LLDP to map your network and build a simulation that can be used to import into CML. This playbook also builds the interface mapping table necessary to ensure your simulation matches your production interface naming convention. -Before you run the simulation creation playbook, navigate to your group_vars directory under your inventory_prod directory and you will see a cml.yml file. This file enables the use of the virtual catalyst 9000 switch for features specefic to layer 3 switches. If you require L3 switching, uncomment the following: +Before you run the simulation creation playbook, navigate to your group_vars directory under your inventory_prod directory and you will see a cml.yml file. This file enables the use of the virtual catalyst 9000 switch for features specific to layer 3 switches. If you require L3 switching, uncomment the following: ``` l3switch: node_definition: Cat9000v @@ -256,7 +256,7 @@ Once this playbook executes, your digital twin will be configured to match your ## Creating Your Pipeline -Before pushing our newely created source-of-truth to Git, it is important to note that this template has a built in gitlab.ci file. This file is commented out, allowing you to prevent the pipeline from running once changes to the repository are pushed. Below is a visual depiction of the pipeline phases. We recommend understanding the phases before pushing your changes. +Before pushing our newly created source-of-truth to Git, it is important to note that this template has a built in gitlab.ci file. This file is commented out, allowing you to prevent the pipeline from running once changes to the repository are pushed. Below is a visual depiction of the pipeline phases. We recommend understanding the phases before pushing your changes. ![Screenshot 2023-06-08 at 11 53 39 AM](https://github.com/lvangink/mdd_base/assets/65776483/35acf7e9-b13c-40b5-ad92-562fa067097c)