首页 > 解决方案 > 如何使用 ansibleR 恢复 RDS 极光快照

问题描述

我正在尝试使用 ansible 从快照创建 Aurora 数据库的克隆。我正在使用 rds_snapshot_facts 和 rds_instance 模块,因为 rds 模块不支持 Aurora。这是我的剧本(删除了区域/配置文件)。当我运行它时,它失败了

无法从数据库快照还原数据库实例:调用 RestoreDBInstanceFromDBSnapshot 操作时发生错误 (DBSnapshotNotFound):未找到 DBSnapshot:快照 ID

有没有人设法使用 rds_instance 模块恢复这样的快照,因为它的状态是预览我不确定它是否正常工作。

---                                   
- hosts: localhost              
  connection: local                                             
  tasks:                                                          
    - name: Get rds snapshots            
      rds_snapshot_facts:                                                    
          db_cluster_identifier: "{{rds_live_instance}}"
      register: rds_snapshot                          
    - name: Create dev db                                   
      rds_instance:                             
          wait: yes                       
          vpc_security_group_ids:                 
            - "{{rds_security_group}}"    
          storage_encrypted: yes
          publicly_accessible: no      
          engine: aurora-mysql
          db_subnet_group_name: default
          id: "dev-{{branch}}"
          cluster_id: "dev-{{branch}}-cluster"
          creation_source: snapshot                                
          availability_zone: eu-west-1a
          auto_minor_version_upgrade: yes        
          allow_major_version_upgrade: no
          db_snapshot_identifier: "{{item.db_cluster_snapshot_identifier}}"
          snapshot_identifier: "{{item.db_cluster_snapshot_arn}}"
      with_items:                            
        - "{{rds_snapshot.cluster_snapshots | last }}"  

标签: ansibleamazon-aurora

解决方案


不熟悉 Ansible,但查看您的错误,您似乎正在调用RestoreDBInstance*api,它不适用于 Aurora 等基于集群的引擎。您应该调用RestoreDBCluster*版本,这将为您创建一个新集群。CreateDbInstance然后,您需要使用Api向集群添加一个实例。

我会留给你弄清楚如何在 Ansible 中连接它。希望这可以帮助!


推荐阅读