问题标签 [puppet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1138 浏览

deployment - 我的应用程序的多次安装 - 我如何处理它

我有一个用 PHP、MySQL 等编写的应用程序。该应用程序有一些依赖项,例如 beanstalkd、Solr 和一些 PHP 扩展。

对于每个客户,我们都有单独的应用程序安装,可以在与其他客户共享的服务器上,也可以在仅与该客户共享的服务器上。

现在我们使用 Puppet 脚本来引导新客户,然后我们手动转到每个客户进行 git pull、更新数据库等,只要有变化。

我们正在寻找的是真正具有尽可能多的以下功能的工具:

  1. 允许我们查看所有客户及其当前版本的 Web 界面
  2. 能够引导新安装
  3. 能够将现有安装更新到特定版本或分支

我们不是在寻找引导新服务器的工具——我们仍然手动进行。相反,我们正在寻找一种在现有服务器上自动设置客户端的方法。

Chef 或 Puppet 是否足以满足此要求,是否有更合适的工具,或者您会建议自己滚动一些东西吗?

0 投票
1 回答
20115 浏览

puppet - 当我使用 puppet kick 时,puppet 客户端服务器连接被拒绝

我有一个很奇怪的问题。我在多台服务器上设置了 puppet 客户端,但其中一台出现问题。当我调用时:

一切正常。对系统应用了新的更改。

当我尝试从服务器拉取对客户端的更改时:

我在客户端的系统日志上遇到错误:

这是 puppetclient.domain.ltd 的配置文件

puppet.conf

auth.conf:

namespaceauth.conf

木偶大师2.7.9版

Puppet 客户端版本 2.7.6

0 投票
1 回答
1034 浏览

puppet - 使用 Puppet 修改远程服务器上的文件

我们有一个安装和配置 OpenVPN 的类。但是,为了让服务器对用户进行身份验证,我们需要在我们的 radius 身份验证服务器上的配置文件中创建一个条目(这些服务器当前不受 Puppet 管理,但如果需要解决此问题可能会这样做)。

当配置新的 OpenVPN 服务器时,自动执行此操作的最佳解决方案是使用 exec 资源编写与身份验证服务器的 SSH 连接的脚本吗?exec 将使用“creates”参数来确保 exec 是幂等的。或者在任何人都可能建议的简单性和安全性方面是否有更好的解决方案?

0 投票
2 回答
474 浏览

dry - 我怎样才能干这个木偶课?

我有这段代码,根据节点是否是 Debian 机器,执行的操作略有不同:

似乎应该有一种方法来减少重复,但对我来说没有什么明显的。想法?

0 投票
2 回答
2498 浏览

puppet - 当 puppet 想要改变某些东西时通知

我目前正在我们的环境中实现 puppet,但是,我有一个请求,我不知道 puppet 本身是否可以满足。

如果我在 /etc/myconfig.conf 下有配置。而且我希望它仅在它不存在时才被写入;我可以使用 onlyif 函数。但是有什么方法可以让 puppet 做某事,一个 notify() 或如果它检测到文件中的更改..?

我不希望它实际更改文件,只通知我文件不是它想要的方式..

这个问题真的没有例子或任何东西,但我希望有人能够在这里把我推向正确的方向。如果我根据提示为此创建解决方案,我将自己发布答案以供其他人学习。

谢谢

0 投票
2 回答
220 浏览

sinatra - 机架:Bundler::GemNotFound 在`bundle install --deployment` 期间出现错误

所以我有几台机器正在生产中,它们在 Rack 上运行 Sinatra 应用程序。通常一切都是笨拙的,直到 Puppet(我们用来将更改同步到我们的服务器)注意到项目的 Gemfile.lock 已更改,因此需要发出bundle install --binstubs --deployment命令以便我们获得新的 gem。发生这种情况时,任何 http 请求在调用 Bundler 以要求我们的 gem 时都会导致 500 错误,因为尚未安装新的 gem。

我们通常至少有一个 Rack 进程挂起,因为另一个进程会定期发出 http 请求以确保服务器处于活动状态,但是当这种情况发生时,没有 Rack 进程处于活动状态。如果问题出在新实例上,该指令似乎PassengerMinInstances可能会有所帮助,但我们还有一个进程会定期获取页面以测试服务器是否仍在运行,因此至少应该有一个 Rack 进程处于活动状态来处理请求.

我可能应该注意到 puppettouch直到bundle install完成之后才真正重新启动 Rack(通过重新启动.txt 文件),所以我们的 Rack 进程在这个时候消失是没有任何意义的。有没有人遇到过这样的事情?是否有一些 Rack 选项可以在我忽略的每个请求上不重新加载整个环境?

0 投票
2 回答
1677 浏览

ubuntu - 为什么 puppet 无法启动 Dropbox 守护进程?

我在 Ubuntu 11.10 上使用 Dropbox命令行实用程序/守护程序,但它不适用于 Puppet。

我可以手动成功控制保管箱:

但是,当我配置 Puppet 以确保保管箱始终运行时,它会失败并显示以下日志消息:

这是我的木偶清单文件:

上述错误消息似乎也暗示 Dropbox“状态”命令不适用于 Puppet,因为即使 Dropbox 已经在运行,我也会收到相同的错误消息(“无法启动”)。

有什么想法吗?

0 投票
1 回答
3866 浏览

ssl - Puppet SSL 连接问题

木偶版本 2.6.6

我在 puppet 代理上间歇性地看到类似于以下内容的 SSL 连接错误:

或者:

我发现几篇文章将其描述为可能是由于主服务器和代理之间的 TLS 握手超时,但不清楚如果确实是问题,可以在哪里配置。

任何帮助感激不尽!

亲切的问候,安德鲁·埃尔斯

0 投票
2 回答
11261 浏览

puppet - 如何让 puppet 在替换文件之前停止服务?

在替换 puppet 服务后面的软件时,我试图避免竞争条件。

为此,puppet 需要停止服务,替换可执行文件,然后启动服务。有没有办法说服 puppet 这样做?它首选的处理方式似乎是替换可执行文件,然后检查状态并在必要时再次启动服务。

(这个例子是人为的。真正的竞争条件远没有这么简单......)

这是我用来模拟这个问题的木偶清单:

这是test-v1文件。test-v2文件相同,但带有v=2.

和 init.d 脚本:

0 投票
1 回答
964 浏览

twitter - 谋杀、傀儡、厨师的区别

有没有人使用过这三种技术的经验?我发现谋杀是 twitter 的一个代码部署开源项目,它使用 BitTorrent 来达到高速分发文件,但 puppet 和 chef 也用于软件分发。谁能简单介绍一下这三个?