如果我设置我的主机文件,使他们参考所有其他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。 如果你的傀儡服务器在东方,而一些在西方的客户。西方的客户使用公共,东方的客户仍然使用内部。