使用 Ansible 代码设置 Azure Sql 数据库的备份保留天数?

问题描述 投票:0回答:1

我有一个 ansible 脚本设置为使用 azure.azcollection.azure_rm_sqldatabase 自动创建 azure sql 数据库(不是托管实例,我知道有一个用于该类型的模块)。

由于已有标准,我们正在努力坚持使用 ansible 和 API,而不是将 powershell 之类的东西引入自动化。

有人在这方面取得了成功并可以分享他们所做的吗?

不幸的是,没有参数可以设置数据库的备份保留时间。我不能依赖天蓝色的默认设置,因为根据数据库是开发还是生产,我需要不同的时间。其他数据库风格在其 azcollection 模块中具有此参数,但没有此模块。我一直在尝试 azure_rm_resource 但还没有让它工作(它无法识别 backupRetentionDays)。

以下是我最好的尝试,但找不到资源

以下是我最好的尝试,但找不到资源

`- name: Create Azure SQL database retention
 azure.azcollection.azure_rm_resource:
  client_id: "{{ lookup('env', 'DB_USER') }}"
  secret: "{{ lookup('env', 'DB_CRED') }}"
  tenant: "{{ aztenant }}"
  subscription_id: "{{ subscription_info_results['subscriptions'] | json_query('[0].subscription_id') }}"
  resource_group: '{{ resource_group_name }}'
  provider: 'Sql'
  resource_type: 'servers/databases' #'servers/{{ server_name }}/databases'
  resource_name: '{{ database_name }}'
  api_version: '2024-05-01-preview' 
  method: '{{ method }}'
  body:
   properties: 
     backupRetentionDays: 14
  idempotency: true`

`

azure ansible azure-sql-database
1个回答
0
投票

应使用完整的命名空间指定提供程序。使用“Microsoft.Sql”代替“Sql”。

在处理SQL服务器和数据库等嵌套资源时,需要正确定义resource_type和resource_name。

  • resource_type:应包含完整路径,例如“服务器/数据库”。

  • resource_name:应包含服务器名称和数据库名称,以 / 分隔。

    - name: Create Azure SQL database with custom backup retention
      azure.azcollection.azure_rm_resource:
      client_id: "{{ lookup('env', 'DB_USER') }}"
      secret: "{{ lookup('env', 'DB_CRED') }}"
      tenant: "{{ aztenant }}"
      subscription_id: "{{ subscription_info_results['subscriptions'] | 
      json_query('[0].subscription_id') }}"
      resource_group: "{{ resource_group_name }}"
      provider: "Microsoft.Sql"
      resource_type: "servers/databases"
      resource_name: "{{ server_name }}/{{ database_name }}"
      api_version: "2024-05-01-preview"  # Ensure this version supports 
      backupRetentionDays
      method: "PUT"
      body:
        location: "{{ location }}"  # Ensure you specify the location
        properties:
        collation: "SQL_Latin1_General_CP1_CI_AS" 
        maxSizeBytes: "2147483648"  # Example property; adjust as needed
        backupRetentionDays: 14
        state: present
        idempotency: true
    
© www.soinside.com 2019 - 2024. All rights reserved.