要在多个RDS数据库中执行SQL脚本,可以使用Ansible的MySQL模块。以下是一个使用Ansible在多个RDS数据库中执行SQL脚本的示例代码:
---
- name: Execute SQL script on multiple RDS databases
hosts: localhost
gather_facts: false
vars:
rds_databases:
- name: database1
host: database1.example.com
port: 3306
user: username1
password: password1
- name: database2
host: database2.example.com
port: 3306
user: username2
password: password2
tasks:
- name: Execute SQL script
mysql_db:
login_host: "{{ item.host }}"
login_port: "{{ item.port }}"
login_user: "{{ item.user }}"
login_password: "{{ item.password }}"
name: "{{ item.name }}"
state: dump
target: /tmp/script.sql
with_items: "{{ rds_databases }}"
在这个示例中,我们定义了一个变量rds_databases
,其中包含了多个RDS数据库的连接信息,包括主机名、端口、用户名和密码。接下来,在tasks
部分,我们使用mysql_db
模块来执行SQL脚本。我们使用了with_items
来遍历rds_databases
变量中的每个数据库,并将数据库连接信息传递给mysql_db
模块。
请确保在运行此代码之前安装了Ansible和MySQL模块。可以使用以下命令安装Ansible:
pip install ansible
然后,可以使用以下命令运行Ansible playbook:
ansible-playbook playbook.yml
这将在多个RDS数据库中执行指定的SQL脚本。请将/tmp/script.sql
替换为您要执行的实际SQL脚本的路径。