diff options
Diffstat (limited to 'extensions/molecule')
| -rw-r--r-- | extensions/molecule/management/converge.yml | 7 | ||||
| -rw-r--r-- | extensions/molecule/management/inventory.yml | 34 | ||||
| -rw-r--r-- | extensions/molecule/management/molecule.yml | 27 | ||||
| -rw-r--r-- | extensions/molecule/management/topology.clab.yml | 14 | ||||
| -rw-r--r-- | extensions/molecule/management/verify.yml | 28 |
5 files changed, 110 insertions, 0 deletions
diff --git a/extensions/molecule/management/converge.yml b/extensions/molecule/management/converge.yml new file mode 100644 index 0000000..fef5f49 --- /dev/null +++ b/extensions/molecule/management/converge.yml @@ -0,0 +1,7 @@ +--- +- name: Converge + hosts: vyos + gather_facts: false + roles: + - vyos.blueprints.base + - vyos.blueprints.management diff --git a/extensions/molecule/management/inventory.yml b/extensions/molecule/management/inventory.yml new file mode 100644 index 0000000..d784b03 --- /dev/null +++ b/extensions/molecule/management/inventory.yml @@ -0,0 +1,34 @@ +--- +all: + children: + vyos: + hosts: + r1: + ansible_host: clab-bp-mgmt-r1 + vars: + ansible_network_os: vyos.vyos.vyos + ansible_connection: ansible.netcommon.network_cli + ansible_user: admin + ansible_password: admin + base_interfaces: + - name: eth1 + addresses: [192.0.2.1/24] + management_snmp: + contact: molecule@example.net + location: containerlab + communities: + - name: molecule-ro + clients: [192.0.2.50] + trap_targets: + - address: 192.0.2.50 + community: molecule-traps + management_syslog_hosts: + - host: 192.0.2.50 + management_ntp_servers: [192.0.2.50] + # RADIUS login is configured but never used for the Molecule SSH session + # (local admin user stays first), so an unreachable server is harmless. + management_radius: + servers: + - address: 192.0.2.50 + key: molecule-radius + timeout: 2 diff --git a/extensions/molecule/management/molecule.yml b/extensions/molecule/management/molecule.yml new file mode 100644 index 0000000..612af0a --- /dev/null +++ b/extensions/molecule/management/molecule.yml @@ -0,0 +1,27 @@ +--- +# VyOS runs as a container (containerlab kind vyosnetworks_vyos); +# the lab is deployed in prepare and destroyed in cleanup. +dependency: + name: galaxy + enabled: false +driver: + name: default + options: + managed: false +platforms: + - name: r1 +provisioner: + name: ansible + config_options: + defaults: + host_key_checking: false + persistent_connection: + command_timeout: 60 + inventory: + links: + hosts: inventory.yml + playbooks: + prepare: ../_shared/lab_up.yml + cleanup: ../_shared/lab_down.yml +verifier: + name: ansible diff --git a/extensions/molecule/management/topology.clab.yml b/extensions/molecule/management/topology.clab.yml new file mode 100644 index 0000000..8409449 --- /dev/null +++ b/extensions/molecule/management/topology.clab.yml @@ -0,0 +1,14 @@ +name: bp-mgmt +topology: + nodes: + r1: + kind: vyosnetworks_vyos + image: ${VYOS_IMAGE:=vyos:blueprints-ci} + nms: + kind: linux + image: alpine:3 + exec: + - ip addr add 192.0.2.50/24 dev eth1 + - apk add --no-cache net-snmp-tools + links: + - endpoints: ["r1:eth1", "nms:eth1"] diff --git a/extensions/molecule/management/verify.yml b/extensions/molecule/management/verify.yml new file mode 100644 index 0000000..17704b4 --- /dev/null +++ b/extensions/molecule/management/verify.yml @@ -0,0 +1,28 @@ +--- +- name: Verify role state + hosts: vyos + gather_facts: false + tasks: + - name: Run role checks + ansible.builtin.include_role: + name: vyos.blueprints.management + tasks_from: verify + +- name: Verify SNMP answers the NMS + hosts: localhost + gather_facts: false + tasks: + - name: Query sysLocation from the NMS container + ansible.builtin.command: + cmd: >- + docker exec clab-bp-mgmt-nms + snmpget -v2c -c molecule-ro -t 3 -r 3 192.0.2.1 SNMPv2-MIB::sysLocation.0 + become: "{{ lookup('ansible.builtin.env', 'CLAB_BECOME', default='true') | bool }}" + register: _snmpget + changed_when: false + no_log: true + + - name: The sysLocation value matches + ansible.builtin.assert: + that: "'containerlab' in _snmpget.stdout" + quiet: true |
