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

参数

参数

注释

access

string

在 purestorage.flashblade 1.9.0 中添加

指定导出策略规则的访问控制

选择

  • "root-squash" ← (默认)

  • "all-squash"

  • "no-squash"

account

string

在 purestorage.flashblade 1.9.0 中添加

对象存储帐户策略应用到的名称。

特殊情况 pure policy 用于系统范围的 S3 策略

actions

list / elements=string

在 purestorage.flashblade 1.9.0 中添加

要授予的权限列表。

无法删除或修改系统范围的策略规则

选择

  • "s3:*"

  • "s3:AbortMultipartUpload"

  • "s3:BypassGovernanceRetention"

  • "s3:CreateBucket"

  • "s3:DeleteBucket"

  • "s3:DeleteObject"

  • "s3:DeleteObjectVersion"

  • "s3:ExtendSafemodeRetentionPeriod"

  • "s3:GetBucketAcl"

  • "s3:GetBucketLocation"

  • "s3:GetBucketVersioning"

  • "s3:GetLifecycleConfiguration"

  • "s3:GetObject"

  • "s3:GetObjectAcl"

  • "s3:GetObjectLegalHold"

  • "s3:GetObjectLockConfiguration"

  • "s3:GetObjectRetention"

  • "s3:GetObjectTagging"

  • "s3:GetObjectVersion"

  • "s3:GetObjectVersionTagging"

  • "s3:ListAllMyBuckets"

  • "s3:ListBucket"

  • "s3:ListBucketMultipartUploads"

  • "s3:ListBucketVersions"

  • "s3:ListMultipartUploadParts"

  • "s3:PutBucketVersioning"

  • "s3:PutLifecycleConfiguration"

  • "s3:PutObject"

  • "s3:PutObjectLegalHold"

  • "s3:PutObjectLockConfiguration"

  • "s3:PutObjectRetention"

  • "s3:ResolveSafemodeConflicts"

anongid

string

在 purestorage.flashblade 1.9.0 中添加

任何 GID 受 `root_squash` 或 `all_squash` 的 access 影响的用户,其 GID 将被映射到 anongid。默认 anongid 为 null,表示 65534。使用 "" 清除。

anonuid

string

在 purestorage.flashblade 1.9.0 中添加

任何 UID 受 `root_squash` 或 `all_squash` 的 access 影响的用户,其 UID 将被映射到 anonuid。默认值为 null,表示 65534。使用 "" 清除。

api_token

string

具有管理员权限的用户的 FlashBlade API 令牌。

at

string

以 12 小时 AM/PM 格式提供时间,例如 11AM

atime

boolean

在 purestorage.flashblade 1.9.0 中添加

在发生读取操作后,只有在以下任何一个条件为真时才会更新 inode 访问时间:之前的访问时间小于 inode 修改时间、之前的访问时间小于 inode 更改时间,或者之前的访问时间超过 24 小时。

如果设置为 false,则禁用读取操作后更新 inode 访问时间。

选择

  • false

  • true ← (默认)

before_rule

integer

在 purestorage.flashblade 1.9.0 中添加

要在其之前插入或移动客户端规则的客户端规则的索引。

change

string

在 purestorage.flashblade 1.12.0 中添加

SMB 共享主体更改访问权限的状态。

设置为 "" 将清除当前设置

选择

  • "allow"

  • "deny"

  • ""

client

string

在 purestorage.flashblade 1.9.0 中添加

指定允许访问导出的客户端。

接受的表示法是单个 IP 地址、CIDR 表示法中的子网、网络组或匿名 (*)。

default_retention

string

在 purestorage.flashblade 1.19.0 中添加

用于将文件提交到 WORM 状态的保留期。如果没有提供访问时间,或者访问时间小于当前服务器时间,则将应用此保留期。介于 min_retentionmax_retention 期间之间。

有效值为周 (w)、天 (d)、小时 (h)、分钟 (m) 和秒 (s)。

desc

string

在 purestorage.flashblade 1.14.0 中添加

对象存储策略的描述,在创建策略时可以选择指定。

无法修改现有策略。

默认: ""

destroy_snapshots

boolean

在 purestorage.flashblade 1.11.0 中添加

必须将此参数设置为 true,才能修改策略,以便销毁本地或远程快照。

选择

  • false ← (默认)

  • true

disable_warnings

boolean

在 purestorage.flashblade 1.18.0 中添加

禁用不安全的证书警告

选择

  • false ← (默认)

  • true

effect

string

在 purestorage.flashblade 1.9.0 中添加

允许匹配所有选定 actions 项的 S3 请求。规则是累加的。

选择

  • "allow" ← (默认)

  • "deny"

enabled

boolean

策略状态

选择

  • false

  • true ← (默认)

every

integer

快照之间的间隔(以秒为单位)

可用范围为 300 - 31536000(相当于 5 分钟到 365 天)

fb_url

string

FlashBlade 管理 IP 地址或主机名。

fileid_32bit

boolean

在 purestorage.flashblade 1.9.0 中添加

文件 ID 是否为 32 位。

选择

  • false ← (默认)

  • true

filesystem

list / elements=string

要在创建时添加到策略的文件系统列表

要修改策略成员,请使用 purestorage.flashblade.purefb_fs 模块

force_delete

boolean

在 purestorage.flashblade 1.9.0 中添加

如果对象存储访问策略附加了用户,则强制删除该策略。

警告:这可能会产生不良的副作用。

无法删除系统范围的策略

选择

  • false ← (默认)

  • true

full_control

string

在 purestorage.flashblade 1.12.0 中添加

SMB 共享主体完全控制访问权限的状态。

设置为 "" 将清除当前设置

选择

  • "allow"

  • "deny"

  • ""

ignore_enforcement

boolean

在 purestorage.flashblade 1.9.0 中添加

如果在一个规则中一起指定,某些操作和其他规则元素的组合本质上会被忽略。

如果设置为 true,则尝试设置这些组合的操作将失败。

如果设置为 false,则将允许此类操作。

选择

  • false

  • true ← (默认)

interfaces

list / elements=string

在 purestorage.flashblade 1.17.0 中添加

指定网络访问策略规则应用于哪个产品接口,以及是允许还是拒绝访问。

选择

  • “management-ssh”

  • “management-rest-api”

  • “management-web-ui”

  • “snmp”

  • “local-network-superuser-password-access”

keep_for

integer

快照的保留时间

可用范围为 300 - 31536000(相当于 5 分钟到 365 天)

设置值不能小于 every

max_retention

string

在 purestorage.flashblade 1.19.0 中添加

WORM文件系统的最大保留期。

介于1秒和100年之间。

不能小于 min_retention

有效值为周 (w)、天 (d)、小时 (h)、分钟 (m) 和秒 (s)。

min_retention

string

在 purestorage.flashblade 1.19.0 中添加

WORM文件系统的最小保留期。

介于1秒和100年之间。

不能大于 max_retention

有效值为周 (w)、天 (d)、小时 (h)、分钟 (m) 和秒 (s)。

name

string

策略的名称

object_resources

list / elements=string

在 purestorage.flashblade 1.9.0 中添加

存储桶名称和对象路径列表,使用通配符 (*) 指定存储桶中的对象;例如:bucket1, bucket1/*, bucket2, bucket2/*。

无法删除或修改系统范围的策略规则

permission

string

在 purestorage.flashblade 1.9.0 中添加

指定允许导出哪些读写客户端访问权限。

选择

  • “rw”

  • "ro" ← (默认)

policy_type

string

在 purestorage.flashblade 1.9.0 中添加

策略类型

选择

  • "snapshot" ← (默认)

  • “access”

  • “nfs”

  • “smb_share”

  • “smb_client”

  • “network”

  • “worm”

principal

string

在 purestorage.flashblade 1.12.0 中添加

此规则的主体用户或组及其域

read

string

在 purestorage.flashblade 1.12.0 中添加

SMB共享主体读取访问权限的状态。

设置为 "" 将清除当前设置

选择

  • "allow"

  • "deny"

  • ""

rename

string

在 purestorage.flashblade 1.10.0 中添加

策略的新名称

仅适用于 NFS 和 SMB 策略

list / elements=string

要在创建时添加到策略的文件系统副本链接列表

要修改策略成员,请使用 purestorage.flashblade.purefb_fs_replica 模块

retention_lock

string

在 purestorage.flashblade 1.19.0 中添加

创建后策略属性的状态。

如果设置为 locked,则不允许更改策略属性的值。

如果设置为 unlocked,则可以更改策略属性的值。

允许从 unlocked 更改为 locked,但从 locked 更改为 unlocked 需要 Pure Storage 技术服务的支持。

选择

  • “locked”

  • “unlocked”

rule

string

在 purestorage.flashblade 1.9.0 中添加

对象存储访问策略的规则名称

系统范围策略中的规则不能删除或修改

s3_delimiters

list / elements=string

在 purestorage.flashblade 1.9.0 中添加

对象列表请求中允许的分隔符字符列表。

授予列出“文件夹名称”(以分隔符结尾的前缀)而不是对象键的权限。

无法删除或修改系统范围的策略规则

s3_prefixes

list / elements=string

在 purestorage.flashblade 1.9.0 中添加

可以请求列出对象的“文件夹”(对象键前缀)的列表。

无法删除或修改系统范围的策略规则

secure

boolean

在 purestorage.flashblade 1.9.0 中添加

如果为 true,则防止来自非保留端口的客户端连接的 NFS 访问。

如果为 false,则允许来自非保留端口的客户端连接的 NFS 访问。

适用于 NFSv3、NFSv4.1 和辅助协议 MOUNT 和 NLM。

选择

  • false ← (默认)

  • true

security

list / elements=string

在 purestorage.flashblade 1.9.0 中添加

用于访问此挂载点上文件的安全类型。

如果服务器不支持请求的类型,则挂载操作失败。

sys 信任客户端指定用户身份。

krb 在每个 RPC 请求中提供用户身份的加密证明。

krb5i 将完整性检查添加到 krb5,以确保数据未被篡改。

krb5p 将完整性检查和加密添加到 krb5。

选择

  • "sys" ← (默认)

  • “krb5”

  • “krb5i”

  • “krb5p”

默认值: ["sys"]

smb_encryption

string

在 purestorage.flashblade 1.12.0 中添加

客户端策略规则中 SMB 加密的状态

选择

  • “disabled”

  • "optional" ← (默认)

  • “required”

source_ips

list / elements=string

在 purestorage.flashblade 1.9.0 中添加

此规则应允许请求的 IP 和子网列表;例如:10.20.30.40、10.20.30.0/24、2001:DB8:1234:5678::/64。

无法删除或修改系统范围的策略规则

state

string

创建或删除策略。

复制仅适用于对象存储访问策略规则

选择

  • “absent”

  • "present" ← (默认)

  • “copy”

target

string

在 purestorage.flashblade 1.9.0 中添加

要将规则复制到的策略名称

target_rule

string

在 purestorage.flashblade 1.9.0 中添加

要将现有规则复制到的规则名称。

如果未定义,则使用现有规则名称。

timezone

string

用于 at 参数的时区

如果未提供,模块将尝试从服务器获取当前本地时区

user

string

在 purestorage.flashblade 1.9.0 中添加

策略授予的 account 中的用户。

注意

注意

  • 此模块需要 purity_fb Python 库

  • 如果未将 fb_urlapi_token 参数直接传递给模块,则必须设置 PUREFB_URLPUREFB_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

作者

  • Pure Storage Ansible 团队 (@sdodsley)