mysql - 在ansible中连接变量

标签 mysql ansible jinja2

我正在尝试执行以下任务:

 -name: Dump Server1 database to Server2

  shell: 'mysqldump -h {{ server1_ip }} -u {{ mysql_user }} --protocol=tcp --password={{ mysql_passwd }} --single-transaction --set-gtid-purged=off {{server1_db}} table1 table2 table3 > dump.sql'

这个任务的想法是导出数据库结构和我想要的表的数据。在这个例子中我只放了 3 个表,但在现实生活中可能是 20 或 30 个表。所以,我的想法是做这样的事情:

将“table1 table2 table3”替换为“{{tables }}”之类的内容,然后使用多个值创建一个变量,如下所示:

tables:
  - table1
  - table2
  - table3

...

有人知道做类似事情的正确方法吗?在句子中放置一个变量,并替换为变量中多个值的串联。

提前致谢!

最佳答案

如果您有表格作为列表,例如:

tables:
  - table1
  - table2
  - table3

然后做{{tables| join(' ') }} 将生成 table1 table2 table3

参见other useful filters在文档中。

关于mysql - 在ansible中连接变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44021333/

相关文章:

mysql - 如何使用第一行的值更新所有行

ubuntu - Ansible 和 MariaDB。无法通过 playbook 安装 MariaDB

ruby - Rake 和 Ansible 有什么区别?

javascript - 段落中的嵌套跨度不会在子节点上换行,只会在父节点上换行

python - 无法在从 python 模块创建的 pip 包中使用 jinja2 模板

python - Jinja2 扩展 - 获取传递给扩展的变量值

mysql - 仅选择文本列

mysql - 如何在 MySQL 中强制执行唯一约束?

mysql - INSERT...ON DUPLICATE KEY UPDATE 比 DELETE/INSERT 所有记录更快

ansible - 如何确保 Ansible 中的路径变量以斜杠结尾?