使用 BOSH 处理动态 IP 地址的最佳方式是什么?目前,我们正在为要使用的每台机器设置静态 IP 地址,但我们只真正关心其中一个 VM 是否具有静态 IP 地址。
有没有办法从 BOSH VM 中获取有关在 BOSH 网络中运行的其他 VM 的信息?或者只是从 VM 中获取有关部署的动态信息?比如哪些机器当前在哪些IP地址上运行?
使用 BOSH 处理动态 IP 地址的最佳方式是什么?目前,我们正在为要使用的每台机器设置静态 IP 地址,但我们只真正关心其中一个 VM 是否具有静态 IP 地址。
有没有办法从 BOSH VM 中获取有关在 BOSH 网络中运行的其他 VM 的信息?或者只是从 VM 中获取有关部署的动态信息?比如哪些机器当前在哪些IP地址上运行?
听起来最近引入的“链接”值得一看您的用例。
以前,如果作业之间需要网络通信,发布作者必须添加作业属性以接受其他作业的网络地址(例如 db_ips 属性)。然后,操作员必须为每个实例组显式分配静态 IP 或 DNS 名称并填写网络地址属性
这使每个作业都可以公开或使用连接。
即一个数据库暴露了它的连接
# Database job spec file.
name: database_job
# ...
provides:
- name: database_conn
type: conn
# Links always carry certain information, like its address and AZ.
# Optionally, the provider can specify other properties in the link.
properties:
- port
- adapter
- username
- password
- name
一个应用程序可以使用它。
# Application job spec file.
name: application_job
# ...
consumes:
- name: database_conn
type: conn
消费作业提供了额外的属性以根据需要使用这些地址/信息,即
#!/bin/bash
# Application's templated control script.
# ...
export DATABASE_HOST="<%= link('database_conn').instances[0].address %>"
export DATABASE_PORT="<%= link('database_conn').p('port') %>"