purestorage.flashblade.purefb_policy 模块 – 管理 FlashBlade 策略
注意
此模块是 purestorage.flashblade 集合(版本 1.19.1)的一部分。
如果您使用的是 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install purestorage.flashblade。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。
要在剧本中使用它,请指定: purestorage.flashblade.purefb_policy。
purestorage.flashblade 1.0.0 中的新增功能
概要
- 管理文件系统、文件副本链接和对象存储访问的策略。 
- 要更新现有的快照策略规则,您必须首先删除原始规则,然后添加新规则来替换它。Purity 的最佳拟合将尝试确保在删除第一个规则时删除的任何必需快照都将被恢复,只要在快照清除期(通常为 24 小时)超过之前添加替换规则。 
要求
执行此模块的主机需要满足以下要求。
- python >= 3.9 
- py-pure-client 
- purity_fb >= 1.12.2 
- netaddr 
- datetime 
- pytz 
- distro 
- pycountry 
- urllib3 
参数
| 参数 | 注释 | 
|---|---|
| 指定导出策略规则的访问控制 选择 
 | |
| 对象存储帐户策略应用到的名称。 特殊情况 pure policy 用于系统范围的 S3 策略 | |
| 要授予的权限列表。 无法删除或修改系统范围的策略规则 选择 
 | |
| 任何 GID 受 `root_squash` 或 `all_squash` 的 access 影响的用户,其 GID 将被映射到 anongid。默认 anongid 为 null,表示 65534。使用 "" 清除。 | |
| 任何 UID 受 `root_squash` 或 `all_squash` 的 access 影响的用户,其 UID 将被映射到 anonuid。默认值为 null,表示 65534。使用 "" 清除。 | |
| 具有管理员权限的用户的 FlashBlade API 令牌。 | |
| 以 12 小时 AM/PM 格式提供时间,例如 11AM | |
| 在发生读取操作后,只有在以下任何一个条件为真时才会更新 inode 访问时间:之前的访问时间小于 inode 修改时间、之前的访问时间小于 inode 更改时间,或者之前的访问时间超过 24 小时。 如果设置为 false,则禁用读取操作后更新 inode 访问时间。 选择 
 | |
| 要在其之前插入或移动客户端规则的客户端规则的索引。 | |
| SMB 共享主体更改访问权限的状态。 设置为 "" 将清除当前设置 选择 
 | |
| 指定允许访问导出的客户端。 接受的表示法是单个 IP 地址、CIDR 表示法中的子网、网络组或匿名 (*)。 | |
| 用于将文件提交到 WORM 状态的保留期。如果没有提供访问时间,或者访问时间小于当前服务器时间,则将应用此保留期。介于 min_retention 和 max_retention 期间之间。 有效值为周 (w)、天 (d)、小时 (h)、分钟 (m) 和秒 (s)。 | |
| 对象存储策略的描述,在创建策略时可以选择指定。 无法修改现有策略。 默认:  | |
| 必须将此参数设置为 true,才能修改策略,以便销毁本地或远程快照。 选择 
 | |
| 禁用不安全的证书警告 选择 
 | |
| 允许匹配所有选定 actions 项的 S3 请求。规则是累加的。 选择 
 | |
| 策略状态 选择 
 | |
| 快照之间的间隔(以秒为单位) 可用范围为 300 - 31536000(相当于 5 分钟到 365 天) | |
| FlashBlade 管理 IP 地址或主机名。 | |
| 文件 ID 是否为 32 位。 选择 
 | |
| 要在创建时添加到策略的文件系统列表 要修改策略成员,请使用 purestorage.flashblade.purefb_fs 模块 | |
| 如果对象存储访问策略附加了用户,则强制删除该策略。 警告:这可能会产生不良的副作用。 无法删除系统范围的策略 选择 
 | |
| SMB 共享主体完全控制访问权限的状态。 设置为 "" 将清除当前设置 选择 
 | |
| 如果在一个规则中一起指定,某些操作和其他规则元素的组合本质上会被忽略。 如果设置为 true,则尝试设置这些组合的操作将失败。 如果设置为 false,则将允许此类操作。 选择 
 | |
| 指定网络访问策略规则应用于哪个产品接口,以及是允许还是拒绝访问。 选择 
 | |
| 快照的保留时间 可用范围为 300 - 31536000(相当于 5 分钟到 365 天) 设置值不能小于 every | |
| WORM文件系统的最大保留期。 介于1秒和100年之间。 不能小于 min_retention。 有效值为周 (w)、天 (d)、小时 (h)、分钟 (m) 和秒 (s)。 | |
| WORM文件系统的最小保留期。 介于1秒和100年之间。 不能大于 max_retention。 有效值为周 (w)、天 (d)、小时 (h)、分钟 (m) 和秒 (s)。 | |
| 策略的名称 | |
| 存储桶名称和对象路径列表,使用通配符 (*) 指定存储桶中的对象;例如:bucket1, bucket1/*, bucket2, bucket2/*。 无法删除或修改系统范围的策略规则 | |
| 指定允许导出哪些读写客户端访问权限。 选择 
 | |
| 策略类型 选择 
 | |
| 此规则的主体用户或组及其域 | |
| SMB共享主体读取访问权限的状态。 设置为 "" 将清除当前设置 选择 
 | |
| 策略的新名称 仅适用于 NFS 和 SMB 策略 | |
| 要在创建时添加到策略的文件系统副本链接列表 要修改策略成员,请使用 purestorage.flashblade.purefb_fs_replica 模块 | |
| 创建后策略属性的状态。 如果设置为 locked,则不允许更改策略属性的值。 如果设置为 unlocked,则可以更改策略属性的值。 允许从 unlocked 更改为 locked,但从 locked 更改为 unlocked 需要 Pure Storage 技术服务的支持。 选择 
 | |
| 对象存储访问策略的规则名称 系统范围策略中的规则不能删除或修改 | |
| 对象列表请求中允许的分隔符字符列表。 授予列出“文件夹名称”(以分隔符结尾的前缀)而不是对象键的权限。 无法删除或修改系统范围的策略规则 | |
| 可以请求列出对象的“文件夹”(对象键前缀)的列表。 无法删除或修改系统范围的策略规则 | |
| 如果为 true,则防止来自非保留端口的客户端连接的 NFS 访问。 如果为 false,则允许来自非保留端口的客户端连接的 NFS 访问。 适用于 NFSv3、NFSv4.1 和辅助协议 MOUNT 和 NLM。 选择 
 | |
| 用于访问此挂载点上文件的安全类型。 如果服务器不支持请求的类型,则挂载操作失败。 sys 信任客户端指定用户身份。 krb 在每个 RPC 请求中提供用户身份的加密证明。 krb5i 将完整性检查添加到 krb5,以确保数据未被篡改。 krb5p 将完整性检查和加密添加到 krb5。 选择 
 默认值:  | |
| 客户端策略规则中 SMB 加密的状态 选择 
 | |
| 此规则应允许请求的 IP 和子网列表;例如:10.20.30.40、10.20.30.0/24、2001:DB8:1234:5678::/64。 无法删除或修改系统范围的策略规则 | |
| 创建或删除策略。 复制仅适用于对象存储访问策略规则 选择 
 | |
| 要将规则复制到的策略名称 | |
| 要将现有规则复制到的规则名称。 如果未定义,则使用现有规则名称。 | |
| 用于 at 参数的时区 如果未提供,模块将尝试从服务器获取当前本地时区 | |
| 策略授予的 account 中的用户。 | 
注意
注意
- 此模块需要 - purity_fbPython 库
- 如果未将 fb_url 和 api_token 参数直接传递给模块,则必须设置 - PUREFB_URL和- PUREFB_API环境变量
示例
- name: Create a simple snapshot policy with no rules
  purestorage.flashblade.purefb_policy:
    name: test_policy
    policy_type: snapshot
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create a snapshot policy and connect to existing filesystems and filesystem replica links
  purestorage.flashblade.purefb_policy:
    name: test_policy_with_members
    policy_type: snapshot
    filesystem:
    - fs1
    - fs2
    replica_link:
    - rl1
    - rl2
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create a snapshot policy with rules
  purestorage.flashblade.purefb_policy:
    name: test_policy2
    policy_type: snapshot
    at: 11AM
    keep_for: 86400
    every: 86400
    timezone: Asia/Shanghai
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete a snapshot policy
  purestorage.flashblade.purefb_policy:
    name: test_policy
    policy_type: snapshot
    state: absent
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create an empty object store access policy
  purestorage.flashblade.purefb_policy:
    name: test_os_policy
    account: test
    policy_type: access
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create an empty object store access policy and assign user
  purestorage.flashblade.purefb_policy:
    name: test_os_policy
    account: test
    policy_type: access
    user: fred
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create a object store access policy with simple rule
  purestorage.flashblade.purefb_policy:
    name: test_os_policy_rule
    policy_type: access
    account: test
    rule: rule1
    actions: "s3:*"
    object_resources: "*"
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create an empty SMB client policy
  purestorage.flashblade.purefb_policy:
    name: test_smb_client
    policy_type: smb_client
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create an SMB client policy with a client rule
  purestorage.flashblade.purefb_policy:
    name: test_smb_client
    policy_type: smb_client
    client: "10.0.1.0/24"
    permission: rw
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create an empty NFS export policy
  purestorage.flashblade.purefb_policy:
    name: test_nfs_export
    policy_type: nfs
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create an NFS export policy with a client rule
  purestorage.flashblade.purefb_policy:
    name: test_nfs_export
    policy_type: nfs
    atime: true
    client: "10.0.1.0/24"
    secure: true
    security: [sys, krb5]
    permission: rw
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create a new rule for an existing NFS export policy
  purestorage.flashblade.purefb_policy:
    name: test_nfs_export
    policy_type: nfs
    atime: true
    client: "10.0.2.0/24"
    security: sys
    permission: ro
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete a client rule from an NFS export policy
  purestorage.flashblade.purefb_policy:
    name: test_nfs_export
    client: "10.0.1.0/24"
    policy_type: nfs
    state: absent
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete an NFS export policy and all associated rules
  purestorage.flashblade.purefb_policy:
    name: test_nfs_export
    state: absent
    policy_type: nfs
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete a rule from an object store access policy
  purestorage.flashblade.purefb_policy:
    name: test_os_policy_rule
    account: test
    policy_type: access
    rule: rule1
    state: absent
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete a user from an object store access policy
  purestorage.flashblade.purefb_policy:
    name: test_os_policy_rule
    account: test
    user: fred
    policy_type: access
    state: absent
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete an object store access policy with attached users (USE WITH CAUTION)
  purestorage.flashblade.purefb_policy:
    name: test_os_policy_rule
    account: test
    policy_type: access
    force_delete: true
    state: absent
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Delete an object store access policy with no attached users
  purestorage.flashblade.purefb_policy:
    name: test_os_policy_rule
    account: test
    policy_type: access
    state: absent
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Copy an object store access policy rule to another exisitng policy
  purestorage.flashblade.purefb_policy:
    name: test_os_policy_rule
    policy_type: access
    account: test
    target: "account2/anotherpolicy"
    target_rule: new_rule1
    state: copy
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Rename an NFS Export Policy
  purestorage.flashblade.purefb_policy:
    name: old_name
    policy_type: nfs
    rename: new_name
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
- name: Create a WORM Data Policy
  purestorage.flashblade.purefb_policy:
    name: worm1
    policy_type: worm
    default_retention: 5d
    min_rentetion: 20h
    max_retention: 1y
    fb_url: 10.10.10.2
    api_token: T-9f276a18-50ab-446e-8a0c-666a3529a1b6
