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