![有没有办法可以在不启动守护进程的情况下使用 Puppet 或 Chef?](https://linux22.com/image/500491/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E5%90%AF%E5%8A%A8%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%BD%BF%E7%94%A8%20Puppet%20%E6%88%96%20Chef%EF%BC%9F.png)
有没有办法使用 puppet 或 chef 配方而无需启动守护进程等?我希望能够解释文件并应用它们,而无需进行所有繁重的工作。
如果没有,是否有替代产品可用于设置任意东西,例如不占用空间的灯堆?
答案1
如果您只想在本地应用单个清单,则可以运行puppet <file>.pp
。也就是说,如果您需要管理的服务器数量很少,那么单个 puppetmasterd 不会带来很大的不便。
答案2
作为罗德杰克注意,您可以使用命令执行单个清单puppet
。但是,由于没有puppetmasterd
处理编译过程,您将失去与模块组织和自动加载相关的大量好处。更不用说必须手动分发清单了。
从你的问题来看,你可能更担心客户端的占用空间,而不是服务器。值得注意的是,你不必puppetd
在守护进程模式下运行,有些人(包括我自己)更喜欢使用选项从 cron 定期调用它--onetime --no-daemonize
。你可以选择根据需要经常或不经常调用它。
答案3
Chef 可以与“单独”模式一起使用,这种模式不需要运行守护进程或服务器。您可以将其指向食谱的远程 URI,这样您就不必为了配置而到处分发文件。
如果您正在安装/配置不需要 root 访问权限的软件程序(即安装在主目录中,端口超过 1024),您甚至不需要 root 访问权限即可使用 chef-solo。这也是开始使用 Chef 的最简单方法,因为您编写的用于 solo 的配方也可用于 Chef 客户端/服务器环境,因此您可以轻松扩展。
更多信息请参阅Chef Solo 页面在厨师维基上。
答案4
如果你的意思是不想运行 puppetd(客户端守护进程),但不介意有一个 puppetmaster,那么我会这样做:
只需连接到客户端并--test
在每个客户端上以模式运行 puppetd。据说测试模式比 更快--onetime --no-daemonize
。您还可以在 /etc/puppet/puppet.conf 中配置选项
# aofficelinux2 is the puppetmaster server name
sudo /usr/sbin/puppetd --server aofficelinux2.visionten.locala --waitforcert 60 --test –-verbose
当我需要时,我也会使用脚本远程执行此操作,该脚本将我的 repo rsync 到 puppetmaster 并远程启动 puppet 客户端
# aofficelinux5 is the puppet client servername
rsync_puppet_to_aofficelinux2
ssh -t aofficelinux5 sudo /usr/sbin/puppetd --server aofficelinux2.visionten.locala --waitforcert 60 --test –-verbose