cisco.meraki.networks_appliance_vlans 模块 – 网络设备 VLAN 资源模块

注意

此模块是 cisco.meraki 集合 (版本 2.18.3) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install cisco.meraki。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在剧本中使用它,请指定: cisco.meraki.networks_appliance_vlans

cisco.meraki 2.16.0 中的新增功能

概要

  • 管理 networks_appliance_vlans 资源的创建、更新和删除操作。

  • 添加 VLAN。

  • 从网络中删除 VLAN。

  • 更新 VLAN。

注意

此模块具有相应的 action 插件

要求

执行此模块的主机需要以下要求。

  • meraki >= 2.4.9

  • python >= 3.5

参数

参数

注释

applianceIp

字符串

VLAN 上设备的本地 IP。

cidr

字符串

子网池的 CIDR。仅适用于模板网络。绑定到模板的每个网络都会自动从此池中选择一个子网来构建其自己的 VLAN。

dhcpBootFilename

字符串

DHCP 引导选项,用于引导文件名。

dhcpBootNextServer

字符串

DHCP 引导选项,用于将引导客户端引导到服务器,以便从服务器加载引导文件。

dhcpBootOptionsEnabled

布尔值

使用其他属性中指定的 DHCP 引导选项。

选项

  • false

  • true

dhcpHandling

字符串

设备在此 VLAN 上处理 DHCP 请求的方式。 “运行 DHCP 服务器”、“将 DHCP 中继到另一台服务器”或“不响应 DHCP 请求”之一。

dhcpLeaseTime

字符串

如果设备在此 VLAN 上运行 DHCP 服务器,则 DHCP 租约的期限。“30 分钟”、“1 小时”、“4 小时”、“12 小时”、“1 天”或“1 周”之一。

dhcpOptions

列表 / 元素=字典

将包含在 DHCP 响应中的 DHCP 选项列表。列表中的每个对象都应具有“code”、“type”和“value”属性。

code

字符串

DHCP 选项的代码。这应该是一个介于 2 和 254 之间的整数。

type

字符串

DHCP 选项的类型。“text”、“ip”、“hex”或“integer”之一。

value

字符串

DHCP 选项的值。

dhcpRelayServerIps

列表 / 元素=字符串

应将 DHCP 请求中继到的 DHCP 服务器的 IP。

dnsNameservers

字符串

用于 DHCP 响应的 DNS 命名服务器,“upstream_dns”、“google_dns”、“opendns”或以换行符分隔的 IP 地址或域名字符串。

fixedIpAssignments

字典

VLAN 上的 DHCP 固定 IP 分配。这应该是一个对象,其中包含从 MAC 地址到对象本身的映射,每个对象都包含“ip”和“name”字符串字段。有关更多详细信息,请参阅示例请求/响应。

groupPolicyId

字符串

要应用于 VLAN 的所需组策略的 ID。

id

字符串

新 VLAN 的 VLAN ID(必须介于 1 和 4094 之间)。

ipv6

字典

VLAN 上的 IPv6 配置。

enabled

布尔值

在 VLAN 上启用 IPv6。

选项

  • false

  • true

prefixAssignments

列表 / 元素=字典

VLAN 上的前缀分配。

autonomous

布尔值

从来源自动分配 /64 前缀到 VLAN。

选项

  • false

  • true

origin

字典

前缀的来源。

interfaces

列表 / 元素=字符串

与前缀关联的接口。

type

字符串

来源的类型。

staticApplianceIp6

字符串

IPv6 设备 IP 的手动配置。

staticPrefix

字符串

VLAN 上 /64 前缀的手动配置。

mandatoryDhcp

字典

强制 DHCP 将强制连接到此 VLAN 的客户端必须使用 DHCP 服务器分配的 IP 地址。使用静态 IP 地址的客户端将无法关联。仅在固件版本 17.0 及更高版本上可用。

enabled

布尔值

在 VLAN 上启用强制 DHCP。

选项

  • false

  • true

mask

整数

用于绑定到模板网络的所有子网的掩码。仅适用于模板网络。

meraki_action_batch_retry_wait_time

整数

meraki_action_batch_retry_wait_time(整数),操作批处理并发错误重试等待时间

默认值: 60

meraki_api_key

字符串 / 必需

meraki_api_key(字符串),在仪表板中生成的 API 密钥;也可以设置为环境变量 MERAKI_DASHBOARD_API_KEY

meraki_base_url

字符串

meraki_base_url(字符串),位于所有端点资源之前

默认值: "https://api.meraki.com/api/v1"

meraki_be_geo_id

字符串

meraki_be_geo_id(字符串),用于 API 使用情况跟踪的可选合作伙伴标识符;也可以设置为环境变量 BE_GEO_ID

默认值: ""

meraki_caller

字符串

meraki_caller (字符串),可选标识符,用于 API 使用跟踪;也可以设置为环境变量 MERAKI_PYTHON_SDK_CALLER

默认值: ""

meraki_certificate_path

字符串

meraki_certificate_path (字符串),如果位于本地代理之后,则用于 TLS/SSL 证书验证的路径

默认值: ""

meraki_inherit_logging_config

布尔值

meraki_inherit_logging_config (布尔值),继承您自己的日志记录器实例

选项

  • false ← (默认)

  • true

meraki_log_file_prefix

字符串

meraki_log_file_prefix (字符串),日志文件名后附加日期和时间戳

默认: "meraki_api_"

meraki_log_path

字符串

log_path (字符串),输出日志的路径;如果未指定,则默认为脚本的工作目录

默认值: ""

meraki_maximum_retries

整数

meraki_maximum_retries (整数),遇到 429 或其他服务器端错误时,最多重试这么多次

默认: 2

meraki_nginx_429_retry_wait_time

整数

meraki_nginx_429_retry_wait_time (整数),Nginx 429 重试等待时间

默认值: 60

meraki_output_log

布尔值

meraki_output_log (布尔值),创建输出日志文件?

选项

  • false

  • true ← (默认)

meraki_print_console

布尔值

meraki_print_console (布尔值),将日志输出打印到控制台?

选项

  • false

  • true ← (默认)

meraki_requests_proxy

字符串

meraki_requests_proxy (字符串),如果需要,用于 HTTPS 的代理服务器和端口

默认值: ""

meraki_retry_4xx_error

布尔值

meraki_retry_4xx_error (布尔值),如果遇到其他 4XX 错误(除了 429)则重试?

选项

  • false ← (默认)

  • true

meraki_retry_4xx_error_wait_time

整数

meraki_retry_4xx_error_wait_time (整数),其他 4XX 错误重试等待时间

默认值: 60

meraki_simulate

布尔值

meraki_simulate (布尔值),模拟 POST/PUT/DELETE 调用以防止更改?

选项

  • false ← (默认)

  • true

meraki_single_request_timeout

整数

meraki_single_request_timeout (整数),每个 API 调用的最大秒数

默认值: 60

meraki_suppress_logging

布尔值

meraki_suppress_logging (布尔值),禁用所有日志记录?那么你就只能靠自己了!

选项

  • false ← (默认)

  • true

meraki_use_iterator_for_get_pages

布尔值

meraki_use_iterator_for_get_pages (布尔值),list* 方法将返回包含每个对象的迭代器,而不是包含所有项目的完整列表

选项

  • false ← (默认)

  • true

meraki_wait_on_rate_limit

布尔值

meraki_wait_on_rate_limit (布尔值),如果遇到 429 速率限制错误则重试?

选项

  • false

  • true ← (默认)

name

字符串

新 VLAN 的名称。

networkId

字符串

NetworkId 路径参数。网络 ID。

reservedIpRanges

列表 / 元素=字典

VLAN 上的 DHCP 保留 IP 范围。

comment

字符串

保留范围的文本注释。

end

字符串

保留范围中的最后一个 IP。

start

字符串

保留范围中的第一个 IP。

subnet

字符串

VLAN 的子网。

templateVlanType

字符串

VLAN 的子网类型。仅适用于模板网络。

vlanId

字符串

VlanId 路径参数。VLAN ID。

vpnNatSubnet

字符串

如果在 VLAN 上启用了 VPN 和 VPN 子网转换,则为转换后的 VPN 子网。

注释

注意

  • 使用的 SDK 方法为 appliance.Appliance.create_network_appliance_vlan、appliance.Appliance.delete_network_appliance_vlan、appliance.Appliance.update_network_appliance_vlan,

  • 使用的路径为 post /networks/{networkId}/appliance/vlans、delete /networks/{networkId}/appliance/vlans/{vlanId}、put /networks/{networkId}/appliance/vlans/{vlanId},

  • 不支持 check_mode

  • 插件在控制节点上运行,不使用任何 Ansible 连接插件,而是使用 Cisco DNAC SDK 的嵌入式连接管理器

  • 以 dnac_ 开头的参数由 Cisco DNAC Python SDK 用于建立连接

另请参见

另请参见

Cisco Meraki appliance createNetworkApplianceVlan 文档

createNetworkApplianceVlan API 的完整参考。

Cisco Meraki appliance deleteNetworkApplianceVlan 文档

deleteNetworkApplianceVlan API 的完整参考。

Cisco Meraki appliance updateNetworkApplianceVlan 文档

updateNetworkApplianceVlan API 的完整参考。

示例

- 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

- 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

- 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

返回值

常用的返回值已在此处记录,以下是此模块特有的字段

描述

meraki_response

字典

包含 Cisco Meraki Python SDK 返回的响应的字典或列表

返回:始终

示例: {"applianceIp": "string", "cidr": "string", "groupPolicyId": "string", "id": "string", "interfaceId": "string", "ipv6": {"enabled": true, "prefixAssignments": [{"autonomous": true, "origin": {"interfaces": ["string"], "type": "string"}, "staticApplianceIp6": "string", "staticPrefix": "string"}]}, "mandatoryDhcp": {"enabled": true}, "mask": 0, "name": "string", "subnet": "string", "templateVlanType": "string"}

作者

  • Francisco Munoz (@fmunoz)