cisco.meraki.networks_appliance_vlans (2.18.0) — module

Resource module for networks _appliance _vlans

| "added in version" 2.16.0 of cisco.meraki"

Authors: Francisco Munoz (@fmunoz)

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install cisco.meraki:==2.18.0


Add to requirements.yml

  collections:
    - name: cisco.meraki
      version: 2.18.0

Description

Manage operations create, update and delete of the resource networks _appliance _vlans.

Add a VLAN.

Delete a VLAN from a network.

Update a VLAN.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create
  cisco.meraki.networks_appliance_vlans:
    meraki_api_key: "{{meraki_api_key}}"
    meraki_base_url: "{{meraki_base_url}}"
    meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
    meraki_certificate_path: "{{meraki_certificate_path}}"
    meraki_requests_proxy: "{{meraki_requests_proxy}}"
    meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
    meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
    meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
    meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
    meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
    meraki_maximum_retries: "{{meraki_maximum_retries}}"
    meraki_output_log: "{{meraki_output_log}}"
    meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
    meraki_log_path: "{{meraki_log_path}}"
    meraki_print_console: "{{meraki_print_console}}"
    meraki_suppress_logging: "{{meraki_suppress_logging}}"
    meraki_simulate: "{{meraki_simulate}}"
    meraki_be_geo_id: "{{meraki_be_geo_id}}"
    meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
    meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
    state: present
    applianceIp: 192.168.1.2
    cidr: 192.168.1.0/24
    groupPolicyId: '101'
    id: '1234'
    ipv6:
      enabled: true
      prefixAssignments:
      - autonomous: false
        origin:
          interfaces:
          - wan0
          type: internet
        staticApplianceIp6: 2001:db8:3c4d:15::1
        staticPrefix: 2001:db8:3c4d:15::/64
    mandatoryDhcp:
      enabled: true
    mask: 28
    name: My VLAN
    networkId: string
    subnet: 192.168.1.0/24
    templateVlanType: same
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete by id
  cisco.meraki.networks_appliance_vlans:
    meraki_api_key: "{{meraki_api_key}}"
    meraki_base_url: "{{meraki_base_url}}"
    meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
    meraki_certificate_path: "{{meraki_certificate_path}}"
    meraki_requests_proxy: "{{meraki_requests_proxy}}"
    meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
    meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
    meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
    meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
    meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
    meraki_maximum_retries: "{{meraki_maximum_retries}}"
    meraki_output_log: "{{meraki_output_log}}"
    meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
    meraki_log_path: "{{meraki_log_path}}"
    meraki_print_console: "{{meraki_print_console}}"
    meraki_suppress_logging: "{{meraki_suppress_logging}}"
    meraki_simulate: "{{meraki_simulate}}"
    meraki_be_geo_id: "{{meraki_be_geo_id}}"
    meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
    meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
    state: absent
    networkId: string
    vlanId: string
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update by id
  cisco.meraki.networks_appliance_vlans:
    meraki_api_key: "{{meraki_api_key}}"
    meraki_base_url: "{{meraki_base_url}}"
    meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
    meraki_certificate_path: "{{meraki_certificate_path}}"
    meraki_requests_proxy: "{{meraki_requests_proxy}}"
    meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
    meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
    meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
    meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
    meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
    meraki_maximum_retries: "{{meraki_maximum_retries}}"
    meraki_output_log: "{{meraki_output_log}}"
    meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
    meraki_log_path: "{{meraki_log_path}}"
    meraki_print_console: "{{meraki_print_console}}"
    meraki_suppress_logging: "{{meraki_suppress_logging}}"
    meraki_simulate: "{{meraki_simulate}}"
    meraki_be_geo_id: "{{meraki_be_geo_id}}"
    meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
    meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
    state: present
    adaptivePolicyGroupId: '1234'
    applianceIp: 192.168.1.2
    cidr: 192.168.1.0/24
    dhcpBootFilename: sample.file
    dhcpBootNextServer: 1.2.3.4
    dhcpBootOptionsEnabled: false
    dhcpHandling: Run a DHCP server
    dhcpLeaseTime: 1 day
    dhcpOptions:
    - code: '5'
      type: text
      value: five
    dhcpRelayServerIps:
    - 192.168.1.0/24
    - 192.168.128.0/24
    dnsNameservers: google_dns
    fixedIpAssignments:
      22:33:44:55:66:77:
        ip: 1.2.3.4
        name: Some client name
    groupPolicyId: '101'
    ipv6:
      enabled: true
      prefixAssignments:
      - autonomous: false
        origin:
          interfaces:
          - wan0
          type: internet
        staticApplianceIp6: 2001:db8:3c4d:15::1
        staticPrefix: 2001:db8:3c4d:15::/64
    mandatoryDhcp:
      enabled: true
    mask: 28
    name: My VLAN
    networkId: string
    reservedIpRanges:
    - comment: A reserved IP range
      end: 192.168.1.1
      start: 192.168.1.0
    subnet: 192.168.1.0/24
    templateVlanType: same
    vlanId: string
    vpnNatSubnet: 192.168.1.0/24

Inputs

    
id:
    description: The VLAN ID of the new VLAN (must be between 1 and 4094).
    type: str

cidr:
    description: CIDR of the pool of subnets. Applicable only for template network. Each
      network bound to the template will automatically pick a subnet from this pool to
      build its own VLAN.
    type: str

ipv6:
    description: IPv6 configuration on the VLAN.
    suboptions:
      enabled:
        description: Enable IPv6 on VLAN.
        type: bool
      prefixAssignments:
        description: Prefix assignments on the VLAN.
        elements: dict
        suboptions:
          autonomous:
            description: Auto assign a /64 prefix from the origin to the VLAN.
            type: bool
          origin:
            description: The origin of the prefix.
            suboptions:
              interfaces:
                description: Interfaces associated with the prefix.
                elements: str
                type: list
              type:
                description: Type of the origin.
                type: str
            type: dict
          staticApplianceIp6:
            description: Manual configuration of the IPv6 Appliance IP.
            type: str
          staticPrefix:
            description: Manual configuration of a /64 prefix on the VLAN.
            type: str
        type: list
    type: dict

mask:
    description: Mask used for the subnet of all bound to the template networks. Applicable
      only for template network.
    type: int

name:
    description: The name of the new VLAN.
    type: str

subnet:
    description: The subnet of the VLAN.
    type: str

vlanId:
    description: VlanId path parameter. Vlan ID.
    type: str

networkId:
    description: NetworkId path parameter. Network ID.
    type: str

applianceIp:
    description: The local IP of the appliance on the VLAN.
    type: str

dhcpOptions:
    description: The list of DHCP options that will be included in DHCP responses. Each
      object in the list should have "code", "type", and "value" properties.
    elements: dict
    suboptions:
      code:
        description: The code for the DHCP option. This should be an integer between 2
          and 254.
        type: str
      type:
        description: The type for the DHCP option. One of 'text', 'ip', 'hex' or 'integer'.
        type: str
      value:
        description: The value for the DHCP option.
        type: str
    type: list

dhcpHandling:
    description: The appliance's handling of DHCP requests on this VLAN. One of 'Run a
      DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'.
    type: str

vpnNatSubnet:
    description: The translated VPN subnet if VPN and VPN subnet translation are enabled
      on the VLAN.
    type: str

dhcpLeaseTime:
    description: The term of DHCP leases if the appliance is running a DHCP server on
      this VLAN. One of '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'.
    type: str

groupPolicyId:
    description: The id of the desired group policy to apply to the VLAN.
    type: str

mandatoryDhcp:
    description: Mandatory DHCP will enforce that clients connecting to this VLAN must
      use the IP address assigned by the DHCP server. Clients who use a static IP address
      won't be able to associate. Only available on firmware versions 17.0 and above.
    suboptions:
      enabled:
        description: Enable Mandatory DHCP on VLAN.
        type: bool
    type: dict

meraki_caller:
    default: ''
    description:
    - meraki_caller (string), optional identifier for API usage tracking; can also be
      set as an environment variable MERAKI_PYTHON_SDK_CALLER
    type: str

dnsNameservers:
    description: The DNS nameservers used for DHCP responses, either "upstream_dns", "google_dns",
      "opendns", or a newline seperated string of IP addresses or domain names.
    type: str

meraki_api_key:
    description:
    - meraki_api_key (string), API key generated in dashboard; can also be set as an environment
      variable MERAKI_DASHBOARD_API_KEY
    required: true
    type: str

meraki_base_url:
    default: https://api.meraki.com/api/v1
    description:
    - meraki_base_url (string), preceding all endpoint resources
    type: str

meraki_log_path:
    default: ''
    description:
    - log_path (string), path to output log; by default, working directory of script if
      not specified
    type: str

meraki_simulate:
    default: false
    description:
    - meraki_simulate (boolean), simulate POST/PUT/DELETE calls to prevent changes?
    type: bool

dhcpBootFilename:
    description: DHCP boot option for boot filename.
    type: str

meraki_be_geo_id:
    default: ''
    description:
    - meraki_be_geo_id (string), optional partner identifier for API usage tracking; can
      also be set as an environment variable BE_GEO_ID
    type: str

reservedIpRanges:
    description: The DHCP reserved IP ranges on the VLAN.
    elements: dict
    suboptions:
      comment:
        description: A text comment for the reserved range.
        type: str
      end:
        description: The last IP in the reserved range.
        type: str
      start:
        description: The first IP in the reserved range.
        type: str
    type: list

templateVlanType:
    description: Type of subnetting of the VLAN. Applicable only for template network.
    type: str

meraki_output_log:
    default: true
    description:
    - meraki_output_log (boolean), create an output log file?
    type: bool

dhcpBootNextServer:
    description: DHCP boot option to direct boot clients to the server to load the boot
      file from.
    type: str

dhcpRelayServerIps:
    description: The IPs of the DHCP servers that DHCP requests should be relayed to.
    elements: str
    type: list

fixedIpAssignments:
    description: The DHCP fixed IP assignments on the VLAN. This should be an object that
      contains mappings from MAC addresses to objects that themselves each contain "ip"
      and "name" string fields. See the sample request/response for more details.
    type: dict

meraki_print_console:
    default: true
    description:
    - meraki_print_console (boolean), print logging output to console?
    type: bool

meraki_requests_proxy:
    default: ''
    description:
    - meraki_requests_proxy (string), proxy server and port, if needed, for HTTPS
    type: str

dhcpBootOptionsEnabled:
    description: Use DHCP boot options specified in other properties.
    type: bool

meraki_log_file_prefix:
    default: meraki_api_
    description:
    - meraki_log_file_prefix (string), log file name appended with date and timestamp
    type: str

meraki_maximum_retries:
    default: 2
    description:
    - meraki_maximum_retries (integer), retry up to this many times when encountering
      429s or other server-side errors
    type: int

meraki_retry_4xx_error:
    default: false
    description:
    - meraki_retry_4xx_error (boolean), retry if encountering other 4XX error (besides
      429)?
    type: bool

meraki_certificate_path:
    default: ''
    description:
    - meraki_certificate_path (string), path for TLS/SSL certificate verification if behind
      local proxy
    type: str

meraki_suppress_logging:
    default: false
    description:
    - meraki_suppress_logging (boolean), disable all logging? you're on your own then!
    type: bool

meraki_wait_on_rate_limit:
    default: true
    description:
    - meraki_wait_on_rate_limit (boolean), retry if 429 rate limit error encountered?
    type: bool

meraki_inherit_logging_config:
    default: false
    description:
    - meraki_inherit_logging_config (boolean), Inherits your own logger instance
    type: bool

meraki_single_request_timeout:
    default: 60
    description:
    - meraki_single_request_timeout (integer), maximum number of seconds for each API
      call
    type: int

meraki_nginx_429_retry_wait_time:
    default: 60
    description:
    - meraki_nginx_429_retry_wait_time (integer), Nginx 429 retry wait time
    type: int

meraki_retry_4xx_error_wait_time:
    default: 60
    description:
    - meraki_retry_4xx_error_wait_time (integer), other 4XX error retry wait time
    type: int

meraki_use_iterator_for_get_pages:
    default: false
    description:
    - meraki_use_iterator_for_get_pages (boolean), list* methods will return an iterator
      with each object instead of a complete list with all items
    type: bool

meraki_action_batch_retry_wait_time:
    default: 60
    description:
    - meraki_action_batch_retry_wait_time (integer), action batch concurrency error retry
      wait time
    type: int

Outputs

meraki_response:
  description: A dictionary or list with the response returned by the Cisco Meraki
    Python SDK
  returned: always
  sample: "{\n  \"applianceIp\": \"string\",\n  \"cidr\": \"string\",\n  \"groupPolicyId\"\
    : \"string\",\n  \"id\": \"string\",\n  \"interfaceId\": \"string\",\n  \"ipv6\"\
    : {\n    \"enabled\": true,\n    \"prefixAssignments\": [\n      {\n        \"\
    autonomous\": true,\n        \"origin\": {\n          \"interfaces\": [\n    \
    \        \"string\"\n          ],\n          \"type\": \"string\"\n        },\n\
    \        \"staticApplianceIp6\": \"string\",\n        \"staticPrefix\": \"string\"\
    \n      }\n    ]\n  },\n  \"mandatoryDhcp\": {\n    \"enabled\": true\n  },\n\
    \  \"mask\": 0,\n  \"name\": \"string\",\n  \"subnet\": \"string\",\n  \"templateVlanType\"\
    : \"string\"\n}\n"
  type: dict

See also