我最近让我的木偶大师和客户端正常运行,并且让客户正确地签名,然后请求和应用简单的更改。
我有越来越多的机器(> 100)。 他们并没有一贯的名字(历史原因)。 他们陷入了less数几个类别(想像它:dataserver_type1,dataserver_type2,webserver_type1,webserver_type2 ….)。 这些types的机器的新实例每周添加一次。
我不明白(还)或不能看到如何我可以声明(说)“dataserver_type1”的“通用”节点包含所需的任何模块,并在客户端puppet.conf中设置一些东西,说:“我是一个dataserver_type1 “而不使用主机名/ FQDN
如果我将目录中的节点名称设置为(比如说)“my-data-server-type1”(通过authentication的主机名),那么它就会启动并运行。 我知道你可以使用模式的主机名,但正如我所说,我的服务器名称是不一致的,我不能改变它们。
这似乎是不必要的编辑文件,并为每个服务器手动添加节点,当他们继续增长。
编辑:
深入挖掘,似乎angular色可能是我想要的。 但是似乎仍然有一个元素,主人包含一个特定的命名服务器应该做的angular色列表。 也许我所问的是,一个客户怎么能说“我想成为这个angular色”,而不必更新服务器呢?
节点总是在您的清单或外部节点分类器 (或两者)中集中定义。
我想你可以把一个ENC,允许客户指定他们的angular色..但你为什么要触摸每台计算机在本地configuration?
听起来像你可能只需要一些更好的组织到你的节点清单。 也许某些节点会inheritance系统的“angular色”以减less每次创build新节点时的重复,以及一些包含系统名称的好的正则expression式节点名称(例如,您可能无法覆盖每个webserver_type2正则expression式,但把一个覆盖你正在使用的新节点的命名约定)。
回来一个解决scheme,为未来的谷歌。 感谢别人的意见。
这里有一个讨论 ,导致一组文件暗示一个解决scheme 。
然而,我有限的经验表明,这是有点过时的文件位置方面。 在客户端,你需要一个像这样的文件:
root@vbox1-test:/etc/puppet# cat custom_facts.yml servertype: webserver-type1
在服务器(puppetmaster),如果你按照提供的第二个链接中的文件,那么.rb工作正常,但位置是错误的(我使用v3.x)。 尝试将其移至:
ubuntu@puppetmaster:/etc/puppet/modules/custom/lib/facter$ ls custom_facts.rb custom_facts.rb
在任何你的模块.pp文件等,只需添加类似的东西
... notify { "My servertype is: ${servertype}" : } ...
再次,第二个链接暗示,你可以做一个“事例”的陈述,然后挑选哪些模块/清单使用的事实。 所以我可以将一组基本规则应用于大多数机器,然后对某些types应用一些自定义规则,而不需要触摸服务器清单。
你在客户端上的效果是这样的:
root@vbox1-test:/etc/puppet# puppet agent --test Info: Retrieving plugin /File[/var/lib/puppet/lib/facter]/ensure: created /File[/var/lib/puppet/lib/facter/custom_facts.rb]/ensure: defined content as '{md5}xxxxxxxxxxxxxxxxxxxxxxx' Info: Loading facts in /var/lib/puppet/lib/facter/custom_facts.rb Info: Caching catalog for vbox1-test Info: Applying configuration version '1351762428' My servertype is: webserver-type1 /Stage[main]//Node[default]/Notify[My servertype is: webserver-type1]/message: defined 'message' as 'My servertype is: webserver-type1' Finished catalog run in 0.05 seconds
我非常乐观,这给了我想要的东西,我可以保持清单免费的服务器名称,这是传统和不断增长。