【发布时间】:2015-09-24 16:17:05
【问题描述】:
我有一个用例,我必须使用ansible 运行liquibase 迁移,但不知道如何解决远程连接。一种想法是创建 ssh 隧道,但我不确定。
用例: (在远程服务器上)
- 创建N个数据库
- 为每个数据库创建数据库用户
- 为每个数据库运行 liquibase 迁移
远程服务器只能通过 ssh 访问,而 liquibase 不支持 ssh 隧道(据我所知),也没有适用于 liquibase 的 ansible 模块。
在运行上述任务之前,似乎是一种 hackish 方式:
- 为 mysql 创建正向/反向隧道,
- 创建N个数据库
- 为每个数据库创建数据库用户
- 为每个数据库运行 liquibase 迁移
- 杀死隧道。
但我不确定这是解决此问题的最佳方法
【问题讨论】:
-
我对ansible一无所知。但是从 liquibase(在 java vm 中运行)到数据库的连接是 JDBC。因此,如果您通过 ssh 隧道建立 jdbc 连接,您应该能够使用具有 ssh 访问权限的 liquibase。
-
@Jens,这就是留在桌面上的想法,谢谢。我正在考虑避免隧道问题
-
我遇到了类似的问题。您可以通过在主机上安装 liquibase 并使用 Ansible
command或shell模块运行 liquibase 命令来避免使用隧道。然而对我来说,这变得很复杂,我最终使用 liquibase 创建 SQL 语句并使用 Ansiblemysql_db模块部署这些语句。 -
@knowhy 检查我的答案
-
你所说的“转机远程连接”是什么意思?
标签: mysql ansible liquibase ssh-tunnel