【问题标题】:IP of bosh instance - cloud foundrybosh实例的IP-cloud Foundry
【发布时间】:2019-03-13 01:31:39
【问题描述】:

数据库服务正在特定的组织和空间中运行。两个应用程序绑定到此数据库服务。

要将 Jenkins 的 liquibase 更改应用到 DB 服务,我们需要 Jenkins 和 bosh 实例之间的 JDBC 连接。

Jenkins 在 PCF 之外

如何获取数据库服务主机的IP地址?

【问题讨论】:

  • 如果您阅读the 各种docs,您会看到凭据是通过VCAP_SERVICES 传递的——您可以在控制台中查看。但是您的平台可能不允许从外部 IP 直接访问,并且该服务可能会提供自己的管理控制台,因此 YMMV。这也与 bosh 实例的 IP 不同。根据我的经验,应用迁移的最简单方法是让您的 app 在启动时执行此操作。
  • @jonrsharpe java 中的任何技术栈都可以完成这项工作吗? Flyway 或 liquibase 在构建时完成
  • 我已经使用 Spring Boot 和 Flyway 和 Liquibase 完成了它,并且在应用程序启动时进行了任何迁移。这样,当您 cf push 带有额外迁移的应用版本时,它会自动发生。
  • @jonrsharpe 你能分享对应用程序启动时的文档的引用吗?使用 liquibase...任何文章都可以帮助我。
  • 我不应该为你搜索“spring boot liquibase”,但我们在这里:docs.spring.io/spring-boot/docs/current/reference/html/…

标签: jenkins cloud-foundry cf-bosh


【解决方案1】:

如何获取数据库服务主机的IP地址?

VCAP_SERVICES 加载主机名,然后解析它。您可以使用jq 读取VCAP_SERVICES 并提取主机名。然后您可以使用dig <hostname>host <hostname> 来解析主机名。然后你就有了 IP。

如果您尝试从 CF 外部访问服务,请确保您具有对所述服务的网络和防火墙访问权限。网络访问通常在 CF 环境之外受到限制/阻止。

希望有帮助!

【讨论】:

  • 我们已经安装了cf cli 工具,并且我们从数据库服务密钥文件中获得了 bosh 实例名称。不知道怎么找回IP?
  • 如果您在应用容器中,您可以直接运行dighost,但如果您在应用容器之外,则需要cf ssh -c 'dig <hostname>'。或者在部署了 bosh 的 VM 上,只有这两个地方可以解析 BOSH DNS 地址。
  • 在 PCF 之外,但没有 ssh 访问权限
  • 您也可以对此发表评论吗? stackoverflow.com/q/55164391/3317808
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 2023-03-29
  • 2020-04-27
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
相关资源
最近更新 更多