azure.azcollection.azure_rm_sqlmanagedinstance 模块 – 管理 SQL 托管实例

注意

此模块是 azure.azcollection 集合 (版本 3.1.0) 的一部分。

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

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

要在 playbook 中使用它,请指定:azure.azcollection.azure_rm_sqlmanagedinstance

azure.azcollection 1.14.0 中的新增功能

概要

  • 创建、更新或删除 SQL 托管实例。

要求

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

  • python >= 2.7

  • 执行此模块的主机必须通过 galaxy 安装 azure.azcollection 集合

  • 集合的 requirements.txt 中列出的所有 python 包必须通过 pip 安装在执行 azure.azcollection 中模块的主机上

  • 完整的安装说明可在 https://galaxy.ansible.com/azure/azcollection 找到

参数

参数

注释

ad_user

字符串

Active Directory 用户名。在使用 Active Directory 用户而不是服务主体进行身份验证时使用。

adfs_authority_url

字符串

azure.azcollection 0.0.1 中添加

Azure AD 授权 URL。在使用用户名/密码进行身份验证并且拥有自己的 ADFS 授权时使用。

administrator_login

字符串

托管实例的管理员用户名。

仅在创建托管实例时才能指定(并且创建时是必需的)。

administrator_login_password

字符串

管理员登录密码(创建托管实例时需要)。

administrators

字符串

服务器的 Azure Active Directory 管理员。

api_profile

字符串

azure.azcollection 0.0.1 中添加

选择在与 Azure 服务通信时使用的 API 配置文件。 latest 的默认值适用于公共云;未来的值将允许与 Azure Stack 一起使用。

默认值: "latest"

append_tags

布尔值

用于控制标签字段是规范的还是仅附加到现有标签。

当规范时,在 tags 参数中找不到的任何标签都将从对象的元数据中删除。

选项

  • false

  • true ← (默认)

auth_source

字符串

azure.azcollection 0.0.1 中添加

控制用于身份验证的凭据来源。

也可以通过 ANSIBLE_AZURE_AUTH_SOURCE 环境变量设置。

当设置为 auto(默认值)时,优先级为模块参数 -> env -> credential_file -> cli

当设置为 env 时,凭据将从环境变量中读取。

当设置为 credential_file 时,它将从 ~/.azure/credentials 读取配置文件。

当设置为 cli 时,凭据将从 Azure CLI 配置文件中获取。如果存在多个订阅,则可以使用 subscription_id 或环境变量 AZURE_SUBSCRIPTION_ID 来标识订阅 ID,否则将使用默认的 az cli 订阅。

当设置为 msi 时,主机必须是启用了 MSI 扩展的 Azure 资源。如果资源被授予对多个订阅的访问权限,则可以使用 subscription_id 或环境变量 AZURE_SUBSCRIPTION_ID 来标识订阅 ID,否则将选择第一个订阅。

msi 已在 Ansible 2.6 中添加。

选项

  • "auto" ← (默认)

  • "cli"

  • "credential_file"

  • "env"

  • "msi"

cert_validation_mode

字符串

azure.azcollection 0.0.1 中添加

控制 Azure 端点的证书验证行为。默认情况下,所有模块都将验证服务器证书,但在使用 HTTPS 代理或针对 Azure Stack 时,可能需要通过传递 ignore 来禁用此行为。也可以通过凭据文件配置文件或 AZURE_CERT_VALIDATION 环境变量设置。

选项

  • "ignore"

  • "validate"

client_id

字符串

Azure 客户端 ID。在使用服务主体或托管标识 (msi) 进行身份验证时使用。

也可以通过 AZURE_CLIENT_ID 环境变量设置。

cloud_environment

字符串

azure.azcollection 0.0.1 中添加

对于除美国公共云以外的其他云环境,环境名称(由 Azure Python SDK 定义,例如 AzureChinaCloudAzureUSGovernment)或元数据发现端点 URL(Azure Stack 必须)。也可以通过凭据文件配置文件或 AZURE_CLOUD_ENVIRONMENT 环境变量设置。

默认值: "AzureCloud"

collation

字符串

托管实例的排序规则。

disable_instance_discovery

布尔值

在 azure.azcollection 2.3.0 中添加

确定尝试进行身份验证时是否执行实例发现。将其设置为 true 将完全禁用实例发现和权限验证。此功能旨在用于无法访问元数据端点的场景,例如私有云或 Azure Stack。实例发现过程需要从 https://login.microsoft.com/ 检索权限元数据以验证权限。将其设置为 **True** 将禁用权限验证。因此,务必确保已配置的权限主机有效且值得信赖。

通过凭据文件配置文件或 AZURE_DISABLE_INSTANCE_DISCOVERY 环境变量设置。

选项

  • false ← (默认)

  • true

dns_zone

字符串

托管实例所在的 DNS 区域。

dns_zone_partner

字符串

另一个托管实例的资源 ID,创建后,此托管实例将共享其 DNS 区域。

identity

字典

对象的标识。

type

字符串

托管身份的类型。

选项

  • "SystemAssigned"

  • "UserAssigned"

  • "SystemAssigned, UserAssigned"

  • "None" ← (默认)

user_assigned_identities

字典

用户分配的托管身份及其选项。

默认值: {}

append

布尔值

身份列表是否需要添加到当前身份 (true) 或替换当前身份 (false)。

选项

  • false

  • true ← (默认)

id

列表 / 元素=字符串

与对象关联的用户分配身份 ID 列表。

默认值: []

instance_pool_id

字符串

此托管服务器所属的实例池的 ID。

key_id

字符串

用于加密的密钥的 CMK URI。

license_type

字符串

许可证类型。

可能的值为 LicenseIncludedBasePrice

自带 SQL 许可证的折扣 AHB 价格。

包含新 SQL 许可证的常规价格。

选项

  • "LicenseIncluded"

  • "BasePrice"

location

字符串

SQL 托管实例的位置。

log_mode

字符串

父参数。

log_path

字符串

父参数。

maintenance_configuration_id

字符串

指定要应用于此托管实例的维护配置 ID。

managed_instance_create_mode

字符串

指定数据库创建模式。

minimal_tls_version

字符串

最低 TLS 版本。允许的值 None1.01.11.2

选项

  • "None"

  • "1.0"

  • "1.1"

  • "1.2"

name

字符串 / 必需

SQL 托管实例的名称。

password

字符串

Active Directory 用户密码。使用 Active Directory 用户而不是服务主体进行身份验证时使用。

primary_user_assigned_identity_id

字符串

要默认使用的用户分配身份的资源 ID。

private_endpoint_connections

列表 / 元素=字符串

托管实例上的私有终结点连接列表。

profile

字符串

在 ~/.azure/credentials 文件中找到的安全配置文件。

proxy_override

字符串

用于连接到实例的连接类型。

选项

  • "Proxy"

  • "Redirect"

  • "Default"

public_data_endpoint_enabled

布尔值

公共数据端点是否启用。

选项

  • false

  • true

resource_group

字符串 / 必需

资源组的名称。

restore_point_in_time

字符串

指定将还原以创建新数据库的源数据库的时间点 (ISO8601 格式)。

secret

字符串

Azure 客户端密钥。使用服务主体进行身份验证时使用。

sku

字典

ARM 资源 SKU。

capacity

字符串

托管实例的容量(以 vcore 的整数表示)。

family

字符串

如果服务针对同一 SKU 具有不同代的硬件,则可以在此处捕获。

name

字符串

SKU 的名称,通常是字母加数字代码。

size

字符串

特定 SKU 的大小。

tier

字符串

特定 SKU 的层级或版本。

source_managed_instance_id

字符串

与此实例的创建操作关联的源托管实例的资源标识符。

state

字符串

SQL 托管实例的状态。

使用 present 创建或更新自动化运行手册,并使用 absent 删除。

选项

  • "present" ← (默认)

  • "absent"

storage_account_type

字符串

用于存储此实例备份的存储帐户类型。

storage_size_in_gb

整数

存储大小(以 GB 为单位)。

最小值为 32。最大值为 8192

仅允许 32 GB 的增量。

subnet_id

字符串

托管实例的子网资源 ID。

subscription_id

字符串

您的 Azure 订阅 ID。

tags

字典

要作为元数据分配给对象的字符串:字符串对字典。

对象的元数据标签将使用任何提供的数值进行更新。

要删除标签,请将 append_tags 选项设置为 false。

目前,Azure DNS 区域和流量管理器服务也不允许在标签中使用空格。

Azure 前端门户不支持使用

Azure 自动化和 Azure CDN 资源上只支持 15 个标签。

tenant

字符串

Azure 租户 ID。使用服务主体进行身份验证时使用。

thumbprint

字符串

在 azure.azcollection 1.14.0 中添加

在 *x509_certificate_path* 中指定的私钥的指纹。

使用服务主体进行身份验证时使用。

如果定义了 *x509_certificate_path*,则为必需。

timezone_id

字符串

时区的 ID。

允许的值是 Windows 支持的时区。

Windows 保留有关支持的时区的详细信息。

v_cores

整数

vCore 的数量。

选项

  • 8

  • 16

  • 24

  • 32

  • 40

  • 64

  • 80

x509_certificate_path

路径

在 azure.azcollection 1.14.0 中添加

用于创建 PEM 格式的服务主体的 X509 证书的路径。

证书必须附加到私钥。

使用服务主体进行身份验证时使用。

zone_redundant

布尔值

是否启用了多 AZ。

选项

  • false

  • true

备注

注意

  • 对于使用 Azure 进行身份验证,您可以传递参数、设置环境变量、使用存储在 ~/.azure/credentials 中的配置文件,或在运行任务或剧本之前使用 az login 登录。

  • 也可以使用服务主体或 Active Directory 用户进行身份验证。

  • 要通过服务主体进行身份验证,请传递 subscription_id、client_id、secret 和 tenant,或设置环境变量 AZURE_SUBSCRIPTION_ID、AZURE_CLIENT_ID、AZURE_SECRET 和 AZURE_TENANT。

  • 要通过 Active Directory 用户进行身份验证,请传递 ad_user 和 password,或在环境中设置 AZURE_AD_USER 和 AZURE_PASSWORD。

  • 或者,凭据可以存储在 ~/.azure/credentials 中。这是一个包含 [default] 部分和以下键的 ini 文件:subscription_id、client_id、secret 和 tenant 或 subscription_id、ad_user 和 password。也可以添加其他配置文件。通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。

另请参阅

另请参阅

使用 Azure CLI 登录

如何使用 az login 命令进行身份验证。

示例

- name: Create sql managed instance
  azure_rm_sqlmanagedinstance:
    resource_group: "{{ resource_group }}"
    name: testmanagedinstance
    subnet_id: subnet_id
    sku:
      name: GP_Gen5
      tier: GeneralPurpose
      family: Gen5
      capacity: 5
    identity:
      type: SystemAssigned
    administrator_login: azureuser
    administrator_login_password: "{{ password }}"
    storage_size_in_gb: 256
    v_cores: 8

- name: Delete sql managed instance
  azure_rm_sqlmanagedinstance:
    resource_group: "{{ resource_group }}"
    name: testmanagedinstance
    state: absent

返回值

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

描述

sql_managed_instance

复杂

包含 SQL 托管实例事实的字典列表。

返回: 始终

administrator_login

字符串

托管实例的管理员用户名。

返回: 始终

示例: "azureuser"

administrators

字符串

服务器的 Azure Active Directory 管理员。

返回: 始终

collation

字符串

SQL 托管实例的排序规则。

返回: 始终

示例: "SQL_Latin1_General_CP1_CI_AS"

dns_zone

字符串

-托管实例所在的 DNS 区域。

返回: 始终

示例: "8a23abba54cd"

dns_zone_partner

字符串

另一个托管实例的资源 ID,创建后,此托管实例将共享其 DNS 区域。

返回: 始终

fully_qualified_domain_name

字符串

托管实例的完全限定域名。

返回: 始终

示例: "fredsqlinstance.8a23abba54cd.database.windows.net"

id

字符串

资源 ID。

返回: 始终

示例: "/subscription/xxx-xxx/resourceGroups/testRG/providers/Microsoft.Sql/managedInstances/fredsqlinstance"

identity

复杂

资源的 Azure Active Directory 标识配置。

返回: 始终

principal_id

字符串

Azure Active Directory 主体 ID。

返回: 始终

示例: "895c-xxx-xxxbe"

tenant_id

字符串

Azure Active Directory 租户 ID。

返回: 始终

示例: "72fxxxxx-xxxx-xxxx-xxxx-xxxxxx11db47"

type

字符串

身份类型。

返回: 始终

示例: "SystemAssigned"

user_assigned_identities

字符串

要使用的用户分配身份的资源 ID。

返回: 始终

instance_pool_id

字符串

此托管服务器所属的实例池的 ID。

返回: 始终

key_id

字符串

用于加密的密钥的 CMK URI。

返回: 始终

license_type

字符串

许可证类型。

返回: 始终

示例: "LicenseIncluded"

location

字符串

资源位置。

返回: 始终

示例: "eastus"

maintenance_configuration_id

字符串

指定要应用于此托管实例的维护配置 ID。

返回: 始终

示例: "/subscriptions/xxx-xxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default"

managed_instance_create_mode

字符串

指定数据库创建模式。

返回: 始终

minimal_tls_version

字符串

最低 TLS 版本。允许的值为 'None'、'1.0'、'1.1'、'1.2'。

返回: 始终

示例: "1.2"

name

字符串

SQL 托管实例名称。

返回: 始终

示例: "testmanagedinstance"

primary_user_assigned_identity_id

字符串

要默认使用的用户分配身份的资源 ID。

返回: 始终

private_endpoint_connections

列表 / 元素=字符串

托管实例上的私有终结点连接列表。

返回: 始终

示例: []

provisioning_state

字符串

SQL 托管实例的状态。

返回: 始终

示例: "Successed"

proxy_override

字符串

用于连接到实例的连接类型。

返回: 始终

示例: "Proxy"

public_data_endpoint_enabled

布尔值

公共数据端点是否启用。

返回: 始终

示例: false

restore_point_in_time

字符串

指定将还原以创建新数据库的源数据库的时间点 (ISO8601 格式)。

返回: 始终

sku

复杂

ARM 资源 SKU。

返回: 始终

capacity

整数

SKU 容量。

返回: 始终

示例: 2

family

字符串

如果服务针对同一 SKU 具有不同代的硬件,则可以在此处捕获。

返回: 始终

示例: "Gen5"

name

字符串

SKU 名称。

返回: 始终

示例: "BC_Gen4_2"

size

字符串

特定 SKU 的大小。

返回: 始终

tier

字符串

SKU 层级。

返回: 始终

示例: "BusinessCritical"

source_managed_instance_id

字符串

与此实例的创建操作关联的源托管实例的资源标识符。

返回: 始终

state

字符串

托管实例的状态。

返回: 始终

示例: "Ready"

storage_account_type

字符串

用于存储此实例备份的存储帐户类型。

返回: 始终

示例: "GRS"

storage_size_in_gb

整数

存储大小(GB)。最小值 32,最大值 8192。

返回: 始终

示例: 256

subnet_id

字符串

托管实例的子网资源 ID。

返回: 始终

示例: "/subscriptions/xxx-xxxx/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/vnet-smi/subnets/sqi_sub"

tags

字典

资源标签。

返回: 始终

示例: {"taga": "aaa", "tagb": "bbb"}

timezone_id

字符串

时区的 ID。允许的值为 Windows 支持的时区。

返回: 始终

示例: "UTC"

type

字符串

SQL 托管实例类型。

返回: 始终

示例: "Microsoft.Sql/managedInstances"

v_cores

整数

vCore 数量。允许的值为 8、16、24、32、40、64、80。

返回: 始终

示例: 8

zone_redundant

布尔值

是否启用了多 AZ。

返回: 始终

示例: false

作者

  • xuzhang3 (@xuzhang3)

  • Fred Sun (@Fred-sun)