cisco.meraki.networks_switch_access_policies 模块 – 用于 networks _switch _accesspolicies 的资源模块

注意

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

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

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

要在 playbook 中使用它,请指定:cisco.meraki.networks_switch_access_policies

cisco.meraki 2.16.0 中的新增功能

概要

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

  • 为交换机网络创建访问策略。如果要启用 Meraki 身份验证,请将 radiusServers 设置为空数组。

  • 删除交换机网络的访问策略。

  • 更新交换机网络的访问策略。如果要启用 Meraki 身份验证,请将 radiusServers 设置为空数组。

注意

此模块具有相应的 操作插件

要求

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

  • meraki >= 2.4.9

  • python >= 3.5

参数

参数

注释

accessPolicyNumber

字符串

AccessPolicyNumber 路径参数。访问策略编号。

accessPolicyType

字符串

策略的访问类型。当 hostMode 为“多域”时,自动为“混合身份验证”。

dot1x

字典

802.1x 设置。

controlDirection

字符串

支持“both”或“inbound”。设置为“inbound”以允许在交换机端口上进行未经授权的出口。设置为“both”以使用授权控制两个方向的流量。默认为“both”。

guestPortBouncing

布尔值

如果启用,Meraki 设备将定期向这些 RADIUS 服务器发送访问请求消息。

选择

  • false

  • true

guestVlanId

整数

访客 VLAN 的 ID,允许未经授权的设备访问有限的网络资源。

hostMode

字符串

为访问策略选择主机模式。

increaseAccessSpeed

布尔值

启用此选项将使交换机同时执行 802.1X 和 MAC 旁路身份验证,以便客户端更快地进行身份验证。仅当 accessPolicyType 为“混合身份验证”时才需要。

选择

  • false

  • true

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

字符串

访问策略的名称。

networkId

字符串

NetworkId 路径参数。网络 ID。

radius

字典

RADIUS 设置的对象。

criticalAuth

字典

当 RADIUS 服务器拒绝身份验证时的关键身份验证设置。

dataVlanId

整数

当 RADIUS 身份验证失败时,将使用数据的客户端放置到的 VLAN。如果 hostMode 为多重身份验证,则为 null。

suspendPortBounce

布尔值

启用以在 RADIUS 服务器不可访问时暂停端口反弹。

选择

  • false

  • true

voiceVlanId

整数

当 RADIUS 身份验证失败时,将使用语音的客户端放置到的 VLAN。如果 hostMode 为多重身份验证,则为 null。

failedAuthVlanId

整数

当 RADIUS 身份验证失败时,客户端将放置到的 VLAN。如果 hostMode 为多重身份验证,则为 null。

reAuthenticationInterval

整数

重新身份验证周期(以秒为单位)。如果 hostMode 为多重身份验证,则为 null。

radiusAccountingEnabled

布尔值

启用以将开始、临时更新和停止消息发送到配置的 RADIUS 计费服务器,以跟踪连接的客户端。

选择

  • false

  • true

radiusAccountingServers

列表 / 元素=字典

RADIUS 记账服务器列表,用于要求连接设备在授予网络访问权限之前进行身份验证。

host

字符串

RADIUS 记账服务器的公共 IP 地址。

port

整数

RADIUS 记账服务器监听访问请求的 UDP 端口。

secret

字符串

RADIUS 客户端共享密钥。

radiusCoaSupportEnabled

布尔值

RADIUS 重新身份验证和断开连接的身份验证更改。

选择

  • false

  • true

radiusGroupAttribute

字符串

可接受的值为 `""` 表示无,或 `”11”` 表示组策略 ACL。

radiusServers

列表 / 元素=字典

RADIUS 服务器列表,用于要求连接设备在授予网络访问权限之前进行身份验证。

host

字符串

RADIUS 服务器的公共 IP 地址。

port

整数

RADIUS 服务器监听访问请求的 UDP 端口。

secret

字符串

RADIUS 客户端共享密钥。

radiusTestingEnabled

布尔值

如果启用,Meraki 设备将定期向这些 RADIUS 服务器发送访问请求消息。

选择

  • false

  • true

urlRedirectWalledGardenEnabled

布尔值

启用此选项可限制客户端在身份验证之前对特定 IP 地址或主机名的访问。

选择

  • false

  • true

urlRedirectWalledGardenRanges

列表 / 元素=字符串

IP 地址范围,以 CIDR 表示法表示,用于限制客户端在身份验证之前对特定 IP 地址或主机名的访问。

voiceVlanClients

布尔值

支持 CDP/LLDP 的语音客户端将能够使用此 VLAN。当 hostMode 为 “Multi-Domain” 时自动为真。

选择

  • false

  • true

说明

注意

  • 使用的 SDK 方法是 switch.Switch.create_network_switch_access_policy, switch.Switch.delete_network_switch_access_policy, switch.Switch.update_network_switch_access_policy,

  • 使用的路径是 post /networks/{networkId}/switch/accessPolicies, delete /networks/{networkId}/switch/accessPolicies/{accessPolicyNumber}, put /networks/{networkId}/switch/accessPolicies/{accessPolicyNumber},

  • 不支持 check_mode

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

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

另请参阅

另请参阅

Cisco Meraki 文档,了解 switch createNetworkSwitchAccessPolicy

createNetworkSwitchAccessPolicy API 的完整参考。

Cisco Meraki 文档,了解 switch deleteNetworkSwitchAccessPolicy

deleteNetworkSwitchAccessPolicy API 的完整参考。

Cisco Meraki 文档,了解 switch updateNetworkSwitchAccessPolicy

updateNetworkSwitchAccessPolicy API 的完整参考。

示例

- name: Create
  cisco.meraki.networks_switch_access_policies:
    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
    accessPolicyType: Hybrid authentication
    dot1x:
      controlDirection: inbound
    guestPortBouncing: false
    guestVlanId: 100
    hostMode: Single-Host
    increaseAccessSpeed: false
    name: 'Access policy #1'
    networkId: string
    radius:
      criticalAuth:
        dataVlanId: 100
        suspendPortBounce: true
        voiceVlanId: 100
      failedAuthVlanId: 100
      reAuthenticationInterval: 120
    radiusAccountingEnabled: true
    radiusAccountingServers:
    - host: 1.2.3.4
      port: 22
      secret: secret
    radiusCoaSupportEnabled: false
    radiusGroupAttribute: '11'
    radiusServers:
    - host: 1.2.3.4
      port: 22
      secret: secret
    radiusTestingEnabled: false
    urlRedirectWalledGardenEnabled: true
    urlRedirectWalledGardenRanges:
    - 192.168.1.0/24
    voiceVlanClients: true

- name: Delete by id
  cisco.meraki.networks_switch_access_policies:
    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
    accessPolicyNumber: string
    networkId: string

- name: Update by id
  cisco.meraki.networks_switch_access_policies:
    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
    accessPolicyNumber: string
    accessPolicyType: Hybrid authentication
    dot1x:
      controlDirection: inbound
    guestPortBouncing: false
    guestVlanId: 100
    hostMode: Single-Host
    increaseAccessSpeed: false
    name: 'Access policy #1'
    networkId: string
    radius:
      criticalAuth:
        dataVlanId: 100
        suspendPortBounce: true
        voiceVlanId: 100
      failedAuthVlanId: 100
      reAuthenticationInterval: 120
    radiusAccountingEnabled: true
    radiusAccountingServers:
    - host: 1.2.3.4
      port: 22
      secret: secret
    radiusCoaSupportEnabled: false
    radiusGroupAttribute: '11'
    radiusServers:
    - host: 1.2.3.4
      port: 22
      secret: secret
    radiusTestingEnabled: false
    urlRedirectWalledGardenEnabled: true
    urlRedirectWalledGardenRanges:
    - 192.168.1.0/24
    voiceVlanClients: true

返回值

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

描述

meraki_response

字典

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

返回: 总是

示例: {"accessPolicyType": "string", "counts": {"ports": {"withThisPolicy": 0}}, "dot1x": {"controlDirection": "string"}, "guestPortBouncing": true, "guestVlanId": 0, "hostMode": "string", "increaseAccessSpeed": true, "name": "string", "radius": {"criticalAuth": {"dataVlanId": 0, "suspendPortBounce": true, "voiceVlanId": 0}, "failedAuthVlanId": 0, "reAuthenticationInterval": 0}, "radiusAccountingEnabled": true, "radiusAccountingServers": [{"host": "string", "port": 0}], "radiusCoaSupportEnabled": true, "radiusGroupAttribute": "string", "radiusServers": [{"host": "string", "port": 0}], "radiusTestingEnabled": true, "urlRedirectWalledGardenEnabled": true, "urlRedirectWalledGardenRanges": ["string"], "voiceVlanClients": true}

作者

  • Francisco Munoz (@fmunoz)