从 circle ci 访问 MySQL GCP 以自动化数据库迁移?

Posted

技术标签:

【中文标题】从 circle ci 访问 MySQL GCP 以自动化数据库迁移?【英文标题】:Accessing MySQL GCP from circle ci to automate database migration? 【发布时间】:2021-06-26 18:26:43 【问题描述】:

我正在尝试从circle ci 在 Cloud mysql GCP 上运行数据库迁移,问题是 Cloud MySQL GCP 允许访问指定的 IP 地址,如link 中所述 但是,每次启动新作业时,circle ci 作业都有动态 IP 地址,因此我们无法预测未来的 IP 地址,出于安全原因,我不想启用所有 IP 范围(0.0.0.0/0)。 除了在授权网络中指定 IP 地址之外,还有其他方法可以连接到 Cloud MySQL 吗? 或者有没有办法在 Cloud sql 上使用 circle ci 作业动态 IP 动态配置授权网络?

【问题讨论】:

Circle Ci 进程是否有能力通过 ssh 运行作业?这样您就可以通过 PEM 密钥对进行验证。我永远不会打开一个面向公众的数据库端口,即使它只是在寻找一个指定的 IP——只是自找麻烦.. 我认为 CircleCi 应该能够通过 SSH 连接到您的容器并直接发出 MySQL 命令。(但不要持有我到那个 - 否则我会回答这个帖子!) @Zak 感谢您的评论,但我不明白您所说的这句话的意思“(但不要让我这么说——否则我会回答这个帖子!)” 他的意思是他不完全确定是否可以这样做 【参考方案1】:

您可以使用Cloud SQL Auth proxy。 Cloud SQL Auth 代理使用身份验证(例如服务帐号)提供对您的实例的安全访问。您可以尝试quickstart 并检查它是否符合您的需求。

【讨论】:

以上是关于从 circle ci 访问 MySQL GCP 以自动化数据库迁移?的主要内容,如果未能解决你的问题,请参考以下文章

什么是 github 操作相当于 circle ci 的 add_ssh_keys

sh Gradle / Bash - 将所有env变量复制到app / gradle.properties(用于从travis或circle CI复制秘密env变量以构建android proj

sh Gradle / Bash - 将所有env变量复制到app / gradle.properties(用于从travis或circle CI复制秘密env变量以构建android proj

sh Gradle / Bash - 将所有env变量复制到app / gradle.properties(用于从travis或circle CI复制秘密env变量以构建android proj

sh Gradle / Bash - 将所有env变量复制到app / gradle.properties(用于从travis或circle CI复制秘密env变量以构建android proj

sh Gradle / Bash - 将所有env变量复制到app / gradle.properties(用于从travis或circle CI复制秘密env变量以构建android proj