ansible - 如何使用 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 }}"
解决方案
不熟悉 Ansible,但查看您的错误,您似乎正在调用RestoreDBInstance*
api,它不适用于 Aurora 等基于集群的引擎。您应该调用RestoreDBCluster*
版本,这将为您创建一个新集群。CreateDbInstance
然后,您需要使用Api向集群添加一个实例。
我会留给你弄清楚如何在 Ansible 中连接它。希望这可以帮助!
推荐阅读
- django - form_invalid 方法不显示错误的字段
- javascript - 将元素推送到 Javascript (Socket.io) 中的嵌套对象
- javascript - 如何将 HTML 脚本标签复制到外部 javascript?
- django - 将 django 模板与非技术用户可编辑的内容相结合
- python - 在网站输入中输入数据的 Python 脚本
- javascript - 动态地将 Change 事件侦听器应用于每个选择元素
- cmake - 告诉 CMake 使用自定义 Find*.cmake 而不是系统范围的一个
- python - 得到 JSONDecodeError:期望值:第 1 行第 1 列(字符 0)
- matlab - 在 Matlab 中以 Rational 格式打印饼图百分比
- ansible - 通过传递文件夹列表作为参数在 ansible 中创建多个目录