From 6d506be9abd7be78e48844dcb9126af3dc3cd305 Mon Sep 17 00:00:00 2001 From: Steven Carter Date: Wed, 20 Sep 2023 06:25:35 -0500 Subject: [PATCH 1/3] Initial change to support PATty --- README.md | 90 ++++++++++++++++++++++++----- cml_group_tag.png | Bin 0 -> 13921 bytes cml_pat_tags.png | Bin 0 -> 13921 bytes playbooks/inventory.yml | 2 +- plugins/inventory/cml_inventory.py | 22 +++++++ 5 files changed, 98 insertions(+), 16 deletions(-) create mode 100644 cml_group_tag.png create mode 100644 cml_pat_tags.png diff --git a/README.md b/README.md index 473866e..cbbaa08 100644 --- a/README.md +++ b/README.md @@ -32,38 +32,98 @@ Cisco Modeling Labs is an on-premise network simulation tool that runs on workst ## Inventory -To use the dynamic inventory plugin, the environmental variables must be set and a file (e.g. `cml.yml`) placed in the inventory specifying the plugin information: - -``` -plugin: cisco.cml.cml_inventory -``` - The dynamic inventory script will then return information about the nodes in the lab: ``` -ok: [hq-host1] => { +ok: [hq-rtr1] => { "cml_facts": { - "config": "#cloud-config\npassword: admin\nchpasswd: { expire: False }\nssh_pwauth: True\nhostname: hq-host1\nruncmd:\n - sudo ip address add 10.0.1.10/24 dev enp0s2\n - sudo ip link set dev enp0s2 up\n - sudo ip route add default via 10.0.1.1\n", - "cpus": null, + "config": "hostname hq-rtr1\nvrf definition Mgmt-intf\n!\naddress-family ipv4\nexit-address-family\n!\naddress-family ipv6\nexit-address-family\n!\nusername admin privilege 15 secret 0 admin\ncdp run\nno aaa new-model\nip domain-name mdd.cisco.com\n!\ninterface GigabitEthernet1\nvrf forwarding Mgmt-intf\nip address dhcp\nnegotiation auto\nno cdp enable\nno shutdown\n!\ninterface GigabitEthernet2\ncdp enable\n!\ninterface GigabitEthernet3\ncdp enable\n!\ninterface GigabitEthernet4\ncdp enable\n!\nip http server\nip http secure-server\nip http max-connections 2\n!\nip ssh time-out 60\nip ssh version 2\nip ssh server algorithm encryption aes128-ctr aes192-ctr aes256-ctr\nip ssh client algorithm encryption aes128-ctr aes192-ctr aes256-ctr\n!\nline vty 0 4\nexec-timeout 30 0\nabsolute-timeout 60\nsession-limit 16\nlogin local\ntransport input ssh\n!\nend", + "cpus": 1, "data_volume": null, - "image_definition": "ubuntu-18-04", + "image_definition": null, "interfaces": [ { - "ipv4_addresses": [], + "ipv4_addresses": null, + "ipv6_addresses": null, + "mac_address": null, + "name": "Loopback0", + "state": "STARTED" + }, + { + "ipv4_addresses": [ + "192.168.255.199" + ], "ipv6_addresses": [], - "mac_address": "52:54:00:13:1b:fb", - "name": "enp0s2", + "mac_address": "52:54:00:13:51:66", + "name": "GigabitEthernet1", "state": "STARTED" } ], - "node_definition": "ubuntu", - "ram": null, + "node_definition": "csr1000v", + "ram": 3072, "state": "BOOTED" } } ``` +The first IPv4 address found (in order of the interfaces) is used as `ansible_host` to enable the playbook to connect to the device. + +To use the CML dynamic inventory plugin, the environmental variables must be set and a file (e.g. `cml.yml`) placed in the inventory specifying the plugin information: + +``` +plugin: cisco.cml.cml_inventory +group_tags: network, ios, nxos, router +``` + +Options: + +`plugin:` Specfies the name of the inventory plugin +`group_tags:` The group tags that, if one or more are found in a CML device tags, will create an Ansible group of the same name + +To create an Ansible group, specify a device tag in CML: + +![CML Tag Example](cml_group_tag.png?raw=true "CML Tag Example") + +When the CML dynamic inventory plugin runs, it will create a router group with all of the devices that have that tag: +``` +mdd % ansible-playbook cisco.cml.inventory --limit=router + +PLAY [cml_hosts] ****************************************************************************************************************************** + +TASK [debug] ********************************************************************************************************************************** +ok: [hq-rtr1] => { + "msg": "Node: hq-rtr1(csr1000v), State: BOOTED, Address: 192.168.255.199:22" +} +ok: [hq-rtr2] => { + "msg": "Node: hq-rtr2(csr1000v), State: BOOTED, Address: 192.168.255.53:22" +} +ok: [site1-rtr1] => { + "msg": "Node: site1-rtr1(csr1000v), State: BOOTED, Address: 192.168.255.63:22" +} +ok: [site2-rtr1] => { + "msg": "Node: site2-rtr1(csr1000v), State: BOOTED, Address: 192.168.255.7:22" +} + +PLAY RECAP ************************************************************************************************************************************ +hq-rtr1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +hq-rtr2 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +site1-rtr1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +site2-rtr1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +``` + +In addition to group tags, the CML dynamic inventory plugin will also parse tags to pass information from PATty and to create +generic inventory facts. + +![PAT Tag Example](cml_pat_tags.png?raw=true "PAT Tag Example") + +If a CML tag is specified that matches `^pat:(?:tcp|udp)?:?(\d+):(\d+)`, the CML server address (as opposed to the first IPv4 address found) +will be used for `ansible_host`. To change `ansible_port` to point to the translated SSH port, the tag `ansible:ansible_port=2020` can +be set. These two tags tell the Ansible playbook to connect to port 2020 of the CML server to automate the specified host in the topology. +The `ansible:` tag can also be used to specify other host facts. For example, the tag `ansible:nso_api_port=2021` can be used to tell the +playbook the port to use to reach the Cisco NSO API. Any arbitrary fact can be set in this way. + + ## Collection Playbooks ### `cisco.cml.build` diff --git a/cml_group_tag.png b/cml_group_tag.png new file mode 100644 index 0000000000000000000000000000000000000000..6dded7adbeb5d41e241217b08b3068ddf1350baf GIT binary patch literal 13921 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 literal 0 HcmV?d00001 diff --git a/cml_pat_tags.png b/cml_pat_tags.png new file mode 100644 index 0000000000000000000000000000000000000000..6dded7adbeb5d41e241217b08b3068ddf1350baf GIT binary patch literal 13921 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 literal 0 HcmV?d00001 diff --git a/playbooks/inventory.yml b/playbooks/inventory.yml index 41313ab..2d25b95 100644 --- a/playbooks/inventory.yml +++ b/playbooks/inventory.yml @@ -3,7 +3,7 @@ gather_facts: no tasks: - debug: - msg: "Node: {{ inventory_hostname }}({{ cml_facts.node_definition }}), State: {{ cml_facts.state }}, Address: {{ ansible_host }}" + msg: "Node: {{ inventory_hostname }}({{ cml_facts.node_definition }}), State: {{ cml_facts.state }}, Address: {{ ansible_host }}:{{ ansible_port | default('22') }}" when: ansible_host is defined # - debug: # var: cml_facts diff --git a/plugins/inventory/cml_inventory.py b/plugins/inventory/cml_inventory.py index 41e3c34..cbf1a6e 100644 --- a/plugins/inventory/cml_inventory.py +++ b/plugins/inventory/cml_inventory.py @@ -60,6 +60,7 @@ import os import traceback +import re from ansible.plugins.inventory import BaseInventoryPlugin from ansible.errors import AnsibleError, AnsibleParserError from ansible.module_utils._text import to_text @@ -185,6 +186,25 @@ def parse(self, inventory, loader, path, cache=True): } interface_list = [] ansible_host = None + ansible_port = None + # pat_regex_list = [r"^pat:tcp:(\d+):22", r"^pat:(\d+):22"] + for tag in node.tags(): + fact_match = re.search(r"^ansible:([^=]+)=(\d+)$", tag) + pat_match = re.search(r"^pat:(?:tcp|udp)?:?(\d+):(\d+)", tag) + if fact_match: + self.display.vvv("Add fact to node {0}: {1}={2}".format(node.label, fact_match.group(1), fact_match.group(2))) + self.inventory.set_variable(node.label, fact_match.group(1), fact_match.group(2)) + # for regex_pattern in pat_regex_list: + # # Use re.search to find a match + elif pat_match: + self.display.vvv("Found PAT: outside_port={0}, inside_port={1}".format(pat_match.group(1), pat_match.group(2))) + # Extract values from capture groups + # outside_port = match.group(1) + ansible_host = self.host + # ansible_port = match.group(1) + # break # Exit the inner loop once a match is found + else: + continue # Continue with the next string if no match was found for interface in node.interfaces(): if node.state == 'BOOTED': # Fill out the oper data if the node is not fully booted @@ -211,6 +231,8 @@ def parse(self, inventory, loader, path, cache=True): cml.update({'interfaces': interface_list}) if ansible_host: self.inventory.set_variable(node.label, 'ansible_host', ansible_host) + if ansible_port: + self.inventory.set_variable(node.label, 'ansible_port', ansible_port) self.inventory.set_variable(node.label, 'cml_facts', cml) self.display.vvv("Adding {0}({1}) to group {2}, state: {3}, ansible_host: {4}".format( node.label, node.node_definition, self.group, node.state, ansible_host)) From c7647c18f2c2a729f7d9949824bf9c9a02712495 Mon Sep 17 00:00:00 2001 From: Steven Carter Date: Wed, 13 Dec 2023 14:36:18 -0600 Subject: [PATCH 2/3] Tidied up a few things --- cml_pat_tags.png | Bin 13921 -> 69588 bytes playbooks/clean.yml | 1 + playbooks/inventory.yml | 1 + 3 files changed, 2 insertions(+) diff --git a/cml_pat_tags.png b/cml_pat_tags.png index 6dded7adbeb5d41e241217b08b3068ddf1350baf..41d492b4026fc397cec9de7ef12204a6bde5382c 100644 GIT binary patch literal 69588 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 Vt1E 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 diff --git a/playbooks/clean.yml b/playbooks/clean.yml index 8ae2153..f88cb04 100644 --- a/playbooks/clean.yml +++ b/playbooks/clean.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://json.schemastore.org/ansible-playbook.json - hosts: localhost gather_facts: no connection: local diff --git a/playbooks/inventory.yml b/playbooks/inventory.yml index 2d25b95..2b0e6b2 100644 --- a/playbooks/inventory.yml +++ b/playbooks/inventory.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://json.schemastore.org/ansible-playbook.json - hosts: cml_hosts connection: local gather_facts: no From ac62b541fb87f8b5a1b3add435b513090b6cb5a0 Mon Sep 17 00:00:00 2001 From: Steven Carter Date: Wed, 13 Dec 2023 15:43:51 -0600 Subject: [PATCH 3/3] Added Changlog and updated version --- CHANGELOG.md | 11 +++++++++++ galaxy.yml | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9b8c974 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log + +## v1.2.1 (2023-12-13) + +### BUG FIXING + - added CHANGELOG.md + +## v1.2.0 (2023-12-13) + +### FEATURE ENHANCEMENT + - added PATty functionality \ No newline at end of file diff --git a/galaxy.yml b/galaxy.yml index b7be43e..51d6e68 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -8,7 +8,7 @@ namespace: cisco name: cml # The version of the collection. Must be compatible with semantic versioning -version: 1.1.0 +version: 1.2.1 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md