我想编写一个可以安装在计算机上的puppet脚本,并自动检查git repo的更改并将它们应用到hostfile。
在阅读puppet文档时,我通常会看到以下对机器主机名的明确引用:
节点' node1' { }
有没有办法让我将它部署到许多开发人员计算机并让它更新hosts文件而不在脚本中明确列出每台计算机的主机名?或许还有一种更好的方法我错过了?
DNS服务器是不可能的,所以请不要建议:)
答案 0 :(得分:2)
node
块仅在master
/ agent
样式的Puppet设置中有意义。
虽然这种情况很普遍,但是对于无人操作有很强的理由。
在您的特殊情况下,您绝对应该在没有主人的情况下解决您的问题。只需写下
mytask.pp
文件,它只声明您关注的所有资源
puppet apply /path/to/mytask.pp
或puppet apply -e 'include mymodule'
apply
子命令是puppet agent
的对应部分,如果你想让Puppet工作而不涉及puppet master
。
答案 1 :(得分:1)
如果要应用于所有计算机,可以使用以下命令:
node default { }
您还可以使用正则表达式来包含一组计算机,例如:
node /^workstation*/ { }
或
node /^workstation[1-8]/ { }