netapp.ontap.na_ontap_snapmirror_policy 模块 – NetApp ONTAP 创建、删除或修改 SnapMirror 策略

注意

此模块是 netapp.ontap 集合(版本 22.13.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install netapp.ontap。您需要进一步的要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:netapp.ontap.na_ontap_snapmirror_policy

netapp.ontap 20.3.0 中的新增功能

概要

  • NetApp ONTAP 创建、修改或销毁 SnapMirror 策略

  • 添加、修改和删除 SnapMirror 策略规则

  • 以下参数在 REST 中不受支持;‘owner’、‘restart’、‘transfer_priority’、‘tries’、‘ignore_atime’、‘common_snapshot_schedule’

要求

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

  • Ansible 2.9 或更高版本 - 建议使用 2.12 或更高版本。

  • Python3 - 建议使用 3.9 或更高版本。

  • 当使用 ZAPI 时,建议使用 netapp-lib 2018.11.13 或更高版本(使用 ‘pip install netapp-lib’ 安装),强烈建议使用 netapp-lib 2020.3.12,因为它为连接问题提供了更好的错误报告。

  • 一个物理或虚拟集群 Data ONTAP 系统,模块支持 Data ONTAP 9.1 及更高版本,REST 支持需要 ONTAP 9.6 或更高版本。

参数

参数

注释

cert_filepath

字符串

在 netapp.ontap 20.6.0 中添加

SSL 客户端证书文件 (.pem) 的路径。

不支持 python 2.6。

comment

字符串

指定 SnapMirror 策略注释。

common_snapshot_schedule

字符串

指定与策略关联的公共快照副本计划,仅在 strict_sync_mirror 和 sync_mirror 中需要。

REST 不支持。

copy_all_source_snapshots

布尔值

在 netapp.ontap 22.1.0 中添加

指定是否应在传输时将所有源快照副本复制到目标,而不是指定特定的保留策略。

此属性仅适用于异步策略。

属性只能设置为 “true”。

仅 REST 支持,需要 ONTAP 9.10.1 或更高版本。

选择

  • false

  • true

copy_latest_source_snapshot

布尔值

在 netapp.ontap 22.2.0 中添加

指定应将最新的源快照副本(在传输开始之前由 SnapMirror 创建)复制到目标进行传输。

无法同时指定保留属性和此属性。

属性只能设置为 “true”。

仅 REST 支持,需要 ONTAP 9.11.1 或更高版本。

选择

  • false

  • true

create_snapshot_on_source

布尔值

在 netapp.ontap 22.2.0 中添加

指定是否应在更新或重新同步操作开始时在源上创建新的快照副本。

此属性仅适用于异步策略。

属性只能设置为 “false”。

仅 REST 支持,需要 ONTAP 9.11.1 或更高版本。

选择

  • false

  • true

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

这可以用于启用实验性功能或禁用会破坏向后兼容性的新功能。

支持的键和值可能会在不另行通知的情况下进行更改。未知的键将被忽略。

force_ontap_version

字符串

在 netapp.ontap 21.23.0 中添加

在使用 REST 时覆盖集群 ONTAP 版本。

如果版本与目标集群不匹配,则行为未定义。

当由于权限问题而无法读取集群版本时,这将作为一种解决方法。请参阅 https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues

这应采用 9.10 或 9.10.1 的形式,其中每个元素都是一个整数。

use_rest 设置为 auto 时,这可能会根据版本和平台功能强制切换到基于 ZAPI 的版本。

ZAPI 忽略此项。

hostname

字符串 / 必需

ONTAP 实例的主机名或 IP 地址。

http_port

整数

使用此端口覆盖默认端口(80 或 443)

https

布尔值

启用和禁用 https。

在使用 REST 时会被忽略,因为仅支持 https。

当使用 SSL 证书身份验证时会被忽略,因为它需要 SSL。

选择

  • false ← (默认)

  • true

identity_preservation

字符串

在 netapp.ontap 22.0.0 中添加

指定将源 SVM 的哪个配置复制到目标 SVM。

此属性仅适用于具有 “async” 策略类型的 SVM 数据保护。

仅 REST 支持。

选择

  • "full"

  • "exclude_network_config"

  • "exclude_network_and_protocol_config"

ignore_atime

布尔值

指定增量传输是否会忽略仅访问时间发生更改的文件。仅适用于 SnapMirror vault 关系。

REST 不支持。

选择

  • false

  • true

is_network_compression_enabled

布尔值

指定是否为传输启用网络压缩。

选择

  • false

  • true

keep

列表 / elements=integer

在 netapp.ontap 20.7.0 中添加

为创建的快照保留 SnapMirror 策略规则计数。

在定义策略规则时是必需的。

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

SSL 客户端密钥文件的路径。

ontapi

整数

要使用的 ontap api 版本

owner

字符串

指定 SnapMirror 策略的所有者。

REST 不支持。

选择

  • "cluster_admin"

  • "vserver_admin"

password

别名: pass

字符串

指定用户的密码。

policy_name

别名: name

字符串 / 必需

在 netapp.ontap 22.0.0 中添加

指定 SnapMirror 策略名称。

name 在 22.0.0 中添加为别名。

policy_type

字符串

指定 SnapMirror 策略类型。不支持修改现有 SnapMirror 策略的类型。

策略类型 ‘sync’ 和 ‘async’ 仅在 REST 中受支持。

选择

  • "vault"

  • "async_mirror"

  • "mirror_vault"

  • "strict_sync_mirror"

  • "sync_mirror" (同步镜像)

  • "sync" (同步)

  • "async" (异步)

prefix (前缀)

list / elements=string (列表 / 元素=字符串)

在 netapp.ontap 20.7.0 中添加

SnapMirror 策略规则前缀。

定义策略规则时可选。

设置为 ‘’ 表示不设置或删除现有的自定义前缀。

前缀名称在策略中应唯一。

指定自定义前缀时,还必须指定计划。

restart (重启)

字符串

定义如果存在中断的传输时 SnapMirror 的行为,仅适用于数据保护。

REST 不支持。

选择

  • "always" (总是)

  • "never" (从不)

  • "default" (默认)

schedule (计划)

list / elements=string (列表 / 元素=字符串)

在 netapp.ontap 20.7.0 中添加

SnapMirror 策略规则计划。

定义策略规则时可选。

设置为 ‘’ 表示不设置或删除计划。

指定计划时,可以设置自定义前缀,否则前缀将设置为 snapmirror_label。

snapmirror_label (SnapMirror 标签)

list / elements=string (列表 / 元素=字符串)

在 netapp.ontap 20.7.0 中添加

SnapMirror 策略规则标签。

在定义策略规则时是必需的。

使用空列表删除所有用户定义的规则。

state (状态)

字符串

指定的 SnapMirror 策略是否存在。

选择

  • "present" ← (默认)

  • "absent" (不存在)

sync_type (同步类型)

字符串

在 netapp.ontap 22.2.0 中添加

此属性仅适用于同步策略类型。

如果 “sync_type” 为 “sync”,则在将数据写入主端点之后、将数据写入辅助端点之前,向客户端返回写入成功。

如果 “sync_type” 为 “strict_sync”,则在将数据写入主端点和辅助端点之后,向客户端返回写入成功。

“automated_failover” 的 “sync_type” 可以与以一致性组作为端点的 SnapMirror 关系关联,并且需要 ONTAP 9.7 或更高版本。

仅 REST 支持。

选择

  • "sync" (同步)

  • "strict_sync" (严格同步)

  • "automated_failover" (自动故障转移)

transfer_priority (传输优先级)

字符串

指定 SnapMirror 传输运行的优先级。

REST 不支持。

选择

  • "low" (低)

  • "normal" (正常)

transfer_schedule (传输计划)

字符串

在 netapp.ontap 22.2.0 中添加

指定用于更新异步 SnapMirror 关系的计划的名称。

ZAPI 不支持。

tries (尝试次数)

字符串

指定尝试次数。

REST 不支持。

use_rest (使用 REST)

字符串

是否使用 REST 或 ZAPI。

always – 如果模块支持 REST,则始终使用 REST API。如果模块不支持 REST,则会发出警告。如果 REST 中不支持模块选项,则会发出错误。

never – 如果模块支持 ZAPI,则始终使用 ZAPI。如果 ZAPI 中不支持 REST 选项,则可能会发出错误。

auto – 如果模块支持 REST 并且模块选项受支持,则尝试使用 REST API。否则恢复为 ZAPI。

默认值: "auto"

username (用户名)

aliases: user (别名:用户)

字符串

这可以是集群范围或 SVM 范围的帐户,具体取决于需要集群级 API 还是 SVM 级 API。

有关更多信息,请阅读文档 https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/

支持两种身份验证方法

  1. 基本身份验证,使用用户名和密码,

  2. SSL 证书身份验证,使用 ssl 客户端证书文件,以及可选的私钥文件。

要使用证书,必须已在 ONTAP 集群中安装证书,并且必须启用证书身份验证。

validate_certs (验证证书)

布尔值

如果设置为 no,则不会验证 SSL 证书。

只有在使用自签名证书的个人控制站点上时,才应将其设置为 False

选择

  • false

  • true ← (默认)

vserver (Vserver)

字符串

指定 SnapMirror 策略的 vserver。

ZAPI 必需。

使用 REST 时,数据 vserver 的名称。

在当前版本的 ONTAP 中,使用 REST 时,对于集群范围的策略,必须将其设置为集群名称(9.12.1 及更早版本)。

如果未设置 vserver 字段,当前版本的 ONTAP 会出现“svm.uuid”是必需的错误。

对于较新版本的 ONTAP,对于使用 REST 的集群范围策略,请省略该值或省略此选项。

备注

注意

  • 在 REST 中,策略类型 ‘mirror_vault’、‘vault’ 和 ‘async_mirror’ 映射到 ‘async’ policy_type。

  • 在 REST 中,策略类型 ‘sync_mirror’ 和 ‘strict_sync_mirror’ 映射到 ‘sync’ policy_type。

  • 在 REST 中,使用 policy_type ‘async’ 在 CLI 中配置 ‘mirror-vault’。

  • 在 REST 中,使用 policy_type ‘async’ 和 ‘copy_all_source_snapshots’ 在 CLI 中配置带有 ‘all_source_snapshots’ 的 ‘async-mirror’。

  • 在 REST 中,使用 policy_type ‘async’ 和 ‘copy_latest_source_snapshot’ 在 CLI 中配置不带 ‘all_source_snapshots’ 的 ‘async-mirror’。

  • 在 REST 中,使用 policy_type ‘async’ 和 ‘create_snapshot_on_source’ 在 CLI 中配置 ‘vault’。

  • 在 REST 中,使用 policy_type ‘sync’ 和 sync_type ‘sync’ 在 CLI 中配置 ‘sync-mirror’。

  • 在 REST 中,使用 policy_type ‘sync’ 和 sync_type ‘strict_sync’ 在 CLI 中配置 ‘strict-sync-mirror’。

  • 在 REST 中,使用 policy_type ‘sync’ 和 sync_type ‘automated_failover’ 在 CLI 中配置 ‘automated-failover’。

  • 前缀为 na_ontap 的模块旨在支持 ONTAP 存储平台。

  • 默认启用 https,建议使用。要在集群上启用 http,必须运行以下命令 ‘set -privilege advanced;’ ‘system services web modify -http-enabled true;’

示例

- name: Create SnapMirror policy
  na_ontap_snapmirror_policy:
    state: present
    vserver: "SVM1"
    policy_name: "ansible_policy"
    policy_type: "mirror_vault"
    comment: "created by ansible"
    transfer_schedule: "daily"      # when using REST
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

- name: Modify SnapMirror policy
  na_ontap_snapmirror_policy:
    state: present
    vserver: "SVM1"
    policy_name: "ansible_policy"
    policy_type: "async_mirror"
    transfer_priority: "low"
    transfer_schedule: "weekly"     # when using REST
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

- name: Create SnapMirror policy with basic rules
  na_ontap_snapmirror_policy:
    state: present
    vserver: "SVM1"
    policy_name: "ansible_policy"
    policy_type: "async_mirror"
    snapmirror_label: ['daily', 'weekly', 'monthly']
    keep: [7, 5, 12]
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

- name: Create SnapMirror policy with rules and schedules (no schedule for daily rule)
  na_ontap_snapmirror_policy:
    state: present
    vserver: "SVM1"
    policy_name: "ansible_policy"
    policy_type: "mirror_vault"
    snapmirror_label: ['daily', 'weekly', 'monthly']
    keep: [7, 5, 12]
    schedule: ['','weekly','monthly']
    prefix: ['','','monthly_mv']
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

- name: Modify SnapMirror policy with rules, remove existing schedules and prefixes
  na_ontap_snapmirror_policy:
    state: present
    vserver: "SVM1"
    policy_name: "ansible_policy"
    policy_type: "mirror_vault"
    snapmirror_label: ['daily', 'weekly', 'monthly']
    keep: [7, 5, 12]
    schedule: ['','','']
    prefix: ['','','']
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

- name: Modify SnapMirror policy, delete all rules (excludes builtin rules)
  na_ontap_snapmirror_policy:
    state: present
    vserver: "SVM1"
    policy_name: "ansible_policy"
    policy_type: "mirror_vault"
    snapmirror_label: []
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

- name: Delete SnapMirror policy
  na_ontap_snapmirror_policy:
    state: absent
    vserver: "SVM1"
    policy_type: "async_mirror"
    policy_name: "ansible_policy"
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    https: true
    validate_certs: false

作者

  • NetApp Ansible 团队 (@carchi8py)