我的情况比较特殊。我们的系统团队负责管理主要傀儡主机,开发团队对一切都很满意,但他们想用它来控制台式机上的某些元素,同时仍与中央傀儡主机相连。
因为我们不希望他们所做的更改进入我们的 puppet master,有没有办法让 puppet 直接从节点导入清单?
就像在开发人员的机器上一样,他们放置了一个文件“/root/development.pp”或其他东西,然后在我们的 Puppet Master 上放置了类似的东西
node { "developermachine":
# Do the majority of normal things
# import "/root/development.pp"
}
关于对 Puppet 清单的写访问安全性,我们可以采取一些不同的选择,但是如果 Puppet 支持这样的功能,那么它对我们来说可能是最干净的。
任何帮助都值得感激:)
答案1
为什么不推出一个针对已知文件运行 Puppet 代理的 cron.d 条目呢?
即:执行 30 分钟(可能是@reboot)的 cron 作业puppetrun /etc/puppet/userpuppet.pp
或类似任务。
你必须非常信任你的用户,但我认为这不是问题。
答案2
Puppet 允许你提供一个脚本来为节点生成配置。请参阅这里了解更多信息和示例。
鉴于此,您可以轻松想出各种替代方法让开发人员设置自己的机器。
答案3
设置一个根 crontab 条目来运行:/usr/bin/puppet apply /root/development.pp
看https://puppet.com/docs/puppet/latest/services_apply.html了解更多信息。
更“正确”的做法是在你的 Puppet Master 上创建一个“开发者”环境,并只将开发工作站指向该环境。你甚至可以授予开发人员 git 访问权限以提交到该分支并自动部署,而不会影响你的生产环境。
https://puppet.com/docs/puppet/latest/env_environments.html
http://puppetlabs.com/blog/git-workflow-and-puppet-environments/