木偶节点不能find主,ec2公共与内部IP地址和主机文件

如果我设置我的主机文件,使他们参考所有其他ec2节点使用内部IP地址,这将工作,还是我必须使用外部IP地址?

我是否需要在安全组中指定任何内容才能使内部IP地址正常工作?

例如/ etc / hosts

ip-10-11-12-13.internal some_node_name 

如果我这样做,我可以在脚本中的任何地方引用some_node_name,我以前会使用ip地址吗?

在我的木偶代理服务器上,我有一个像我的木偶大师的参考:

 public-ip-here puppet 

当我重启我的木偶代理时,系统日志显示他们找不到主人的消息:getaddinfo:name or service not known

我确实通过更新/etc/default/puppet

我添加到选项:

 --server=public-ip-here 

从我读的,木偶会默认尝试使用“傀儡”,我把它放在我的主机文件中,那为什么不把它捡起来呢?

在EC2中使用puppet的一个技巧是给你的puppet分配一个ElasticIP,然后为ElasticIP CNAME创build一个DNS条目,而不是IP的Alogging。

AWS DNS服务器使用dns“视图”来根据查询是来自同一个EC2区域还是外部来改变响应。 如果CNAME请求来自EC2区域,则AWS DNS服务器将使用CNAME的内部IP进行响应。 (阅读关于BIND“视图”的条件DNS响应)

您应该在DNS中使用CNAME,这样当EC2 puppet客户端向AWS DNS服务器查询Puppetmaster的IP时,他们将收到一个响应,指示他们到puppetmaster的内部IP,而不是外部IP。

总结:不要使用/ etc / hosts来查找EC2中的puppetmaster,内部IP可能会改变,并且不能跨多个区域使用。 使用指向存储在DNS中的ElasticIP CNAME的CNAMElogging。

该主机文件是错误的..如果你的木偶服务器有一个内部IP为10.0.1.10。 然后,你要连接到每个节点

 10.0.1.10 puppet 

那么这个节点将会连接到没有服务器的线路。 如果所有节点都在美国东部,则必须使用内部IP。 如果你的傀儡服务器在东方,而一些在西方的客户。西方的客户使用公共,东方的客户仍然使用内部。