amazon-web-services - 在Saltstack公式中检索另一个EC2实例的公共(public)IP

标签 amazon-web-services amazon-ec2 salt-stack aws-cloudformation

我正在使用 Cloudformation 设置 VPN 节点,并使用 Saltstack 对其进行配置。我们称它们为左节点和右节点。配置左侧节点时,我需要知道右侧节点的公共(public) IP,反之亦然。有没有办法在Saltstack公式中检索另一个EC2实例的IP?两个实例都有与其关联的标签。

或者有其他方法可以实现这一目标吗?我只是想省略任何硬编码。

最佳答案

使用 Salt 执行此操作的独立于云提供商的方法是使用 Salt Mine 。这里,master 收集 minions 的信息(例如 IP 地址)并使它们可供其他 minions 使用。 This link has an example for a load balancer configuration .

此设置要求您运行 Salt Master(无主设置在此不起作用)。如果所有节点可能想了解所有其他节点的 IP 地址,则需要在已知所有 IP 地址后再次运行 Salt 配置,或者使用 Salt Orchestrate确保首先收集所有小兵的 Cereal ,然后安装服务。

如果您希望 IP 地址定期更改,或者您计划通过定期进出的 IP 地址(临时节点)来扩展您的基础设施,Salt 将推荐 Salt Reactor ,但我认为 Consul(见下文)的设置可能要简单得多,具体取决于您的场景。

对于Consul您将在每个节点上安装一个代理,并以直接的 Salt 方式在本地注册每个节点的服务。 Consul 可以为您提供节点和服务的 DNS 解析。与Consul Template一旦 IP 地址更改或节点出现,它将重写您的配置并重新加载您的服务。你需要有一位 Consul master 才能完成这项工作。 Consul online documentation相当不错。我还写过Consul/Salt/Cloud Tutorial您读起来可能会感兴趣。

关于amazon-web-services - 在Saltstack公式中检索另一个EC2实例的公共(public)IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131157/

相关文章:

amazon-web-services - 如何根据允许的来源列表设置 Access-Control-Allow-Origin header 的值?

java - Elastic Beanstalk (AWS) 的 Hibernate 配置

amazon-ec2 - Elasticsearch部署环境设置

amazon-web-services - AWS cloudformation - 堆栈存在但状态不可更新 : ROLLBACK_COMPLETE

yaml - SLS 文件中的状态未形成为列表

tar - 如何在 salt 中调用 archive.tar?

.net - AWS EC2中的服务段错误

ios - Swift上的AWS dynamoDB batchWriteItem示例

amazon-web-services - 安全组在 CloudFormation 模板中不接受

salt-stack - 检查文件是否存在并创建符号链接(symbolic link)