在本地计算机上运行的Puppet脚本,无需主机名规范

时间:2014-05-05 16:22:15

标签: puppet

我想编写一个可以安装在计算机上的puppet脚本,并自动检查git repo的更改并将它们应用到hostfile。

在阅读puppet文档时,我通常会看到以下对机器主机名的明确引用:

节点' node1' { }

有没有办法让我将它部署到许多开发人员计算机并让它更新hosts文件而不在脚本中明确列出每台计算机的主机名?或许还有一种更好的方法我错过了?

DNS服务器是不可能的,所以请不要建议:)

2 个答案:

答案 0 :(得分:2)

node块仅在master / agent样式的Puppet设置中有意义。

虽然这种情况很普遍,但是对于无人操作有很强的理由。

在您的特殊情况下,您绝对应该在没有主人的情况下解决您的问题。只需写下

  1. 一个完整的mytask.pp文件,它只声明您关注的所有资源
    • 并通过在每台计算机上调用puppet apply /path/to/mytask.pp
    • 来使用它
  2. 一个简单的Puppet模块,可以满足您的需求,将其部署到每台机器上
    • 并致电puppet apply -e 'include mymodule'
  3. apply子命令是puppet agent的对应部分,如果你想让Puppet工作而不涉及puppet master

答案 1 :(得分:1)

如果要应用于所有计算机,可以使用以下命令:

node default { }

您还可以使用正则表达式来包含一组计算机,例如:

node /^workstation*/ { }

node /^workstation[1-8]/ { }