有没有办法可以在不启动守护进程的情况下使用 Puppet 或 Chef?

有没有办法可以在不启动守护进程的情况下使用 Puppet 或 Chef?

有没有办法使用 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

相关内容