Third-party VPN peers configuration (singleton).
The organization ID.
The state of the resource.
A template task showing all available parameters with their defaults or example values.
- name: Meraki Organization Vpn task cisco.meraki_rm.meraki_organization_vpn: organization_id: "organization_id_value" config: - peers: - ike_version: "1.0.0" local_id: "local_id_value" name: "example_name" network_tags: - "network_tags_item" private_subnets: - "private_subnets_item" public_hostname: "example_name" public_ip: "192.168.1.1" remote_id: "remote_id_value" secret: "{{ vault_password }}" state: merged
- name: Meraki Organization Vpn task cisco.meraki_rm.meraki_organization_vpn: organization_id: "organization_id_value" config: # optional - peers: # optional - ike_version: "1.0.0" # optional local_id: "local_id_value" # optional name: "example_name" # optional network_tags: # optional - "network_tags_item" private_subnets: # optional - "private_subnets_item" public_hostname: "example_name" # optional public_ip: "192.168.1.1" # optional remote_id: "remote_id_value" # optional secret: "{{ vault_password }}" # optional state: merged # optional
- name: Meraki Organization Vpn task cisco.meraki_rm.meraki_organization_vpn: organization_id: "organization_id_value" # (str, required) The organization ID. config: # (list, optional) Third-party VPN peers configuration (singleton). - peers: # (list, optional) List of third-party VPN peers. - ike_version: "1.0.0" # (str, optional) IKE protocol version (1 or 2). local_id: "local_id_value" # (str, optional) Local identification string. name: "example_name" # (str, optional) Peer identifier. network_tags: # (list, optional) Tags for network organization. - "network_tags_item" private_subnets: # (list, optional) Remote subnets accessible through the VPN. - "private_subnets_item" public_hostname: "example_name" # (str, optional) Hostname of the peer. public_ip: "192.168.1.1" # (str, optional) Public IP address of the peer. remote_id: "remote_id_value" # (str, optional) Remote identification string. secret: "{{ vault_password }}" # (str, optional) Shared secret for IPsec authentication. state: merged # (str, optional) The state of the resource.
- name: Define expected configuration ansible.builtin.set_fact: expected_config:
- name: Create organization_vpn with merged state cisco.meraki_rm.meraki_organization_vpn: organization_id: "123456" state: merged config: - "{{ expected_config }}" register: merge_result
- name: Assert resource was created ansible.builtin.assert: that: - merge_result is changed - merge_result.config | length == 1
- name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ merge_result.config[0] | ansible.utils.to_paths }}"
- name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}"
- name: Define replacement configuration ansible.builtin.set_fact: expected_config:
- name: Replace organization_vpn configuration cisco.meraki_rm.meraki_organization_vpn: organization_id: "123456" state: replaced config: - "{{ expected_config }}" register: replace_result
- name: Assert resource was replaced ansible.builtin.assert: that: - replace_result is changed - replace_result.config | length == 1
- name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ replace_result.config[0] | ansible.utils.to_paths }}"
- name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}"
- name: Gather current organization_vpn configuration cisco.meraki_rm.meraki_organization_vpn: organization_id: "123456" state: gathered register: gathered
- name: Assert gathered config is not empty ansible.builtin.assert: that: - gathered.config is defined - gathered.config | length > 0 fail_msg: "Gathered config is empty — expected at least one resource"
- name: Display gathered configuration ansible.builtin.debug: var: gathered.config
--- # Manage Meraki organization third-party VPN peers — create or update - name: Define expected configuration ansible.builtin.set_fact: expected_config: - name: Create organization_vpn with merged state cisco.meraki_rm.meraki_organization_vpn: organization_id: "123456" state: merged config: - "{{ expected_config }}" register: merge_result - name: Assert resource was created ansible.builtin.assert: that: - merge_result is changed - merge_result.config | length == 1 - name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ merge_result.config[0] | ansible.utils.to_paths }}" - name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}" # Manage Meraki organization third-party VPN peers — full resource replacement - name: Define replacement configuration ansible.builtin.set_fact: expected_config: - name: Replace organization_vpn configuration cisco.meraki_rm.meraki_organization_vpn: organization_id: "123456" state: replaced config: - "{{ expected_config }}" register: replace_result - name: Assert resource was replaced ansible.builtin.assert: that: - replace_result is changed - replace_result.config | length == 1 - name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ replace_result.config[0] | ansible.utils.to_paths }}" - name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}" # Manage Meraki organization third-party VPN peers — gather current configuration - name: Gather current organization_vpn configuration cisco.meraki_rm.meraki_organization_vpn: organization_id: "123456" state: gathered register: gathered - name: Assert gathered config is not empty ansible.builtin.assert: that: - gathered.config is defined - gathered.config | length > 0 fail_msg: "Gathered config is empty — expected at least one resource" - name: Display gathered configuration ansible.builtin.debug: var: gathered.config