标签: puppet

傀儡主机名问题

我在网上搜索,我看到其他一些人在其他列表/板上也有这个问题。当我在主服务器上签署证书后第二次运行 sudo puppetd ​​--waitforcert 60 --test 时,我收到此错误-

notice: Got signed certificate
warning: Certificate validation failed; considering using the certname configuration option
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate
Run Code Online (Sandbox Code Playgroud)

我不确定我是否了解问题所在或如何解决。所以这就是我问的原因。

我正在 LAN 上的两台服务器上设置 puppet。puppetmaster 名为“puppet”,另一个服务器名为“puppetclient”。我将 puppet 放入 puppetclient 上的 /etc/hosts 中。

运行 hostname -f 将在各自的服务器上显示 puppet 和 pupperclient。我不知道还有什么可以尝试的。有没有人有任何见解?

networking puppet

10
推荐指数
2
解决办法
9863
查看次数

创建用户时如何让木偶只设置密码?

我希望 Puppet 不管理密码(即在更改时重置密码),而是在 Puppet 创建用户时设置初始密码。

我正在考虑对设置密码notifyExec资源执行 a 操作,但是当 Puppet 管理的任何属性被修改(例如,组成员身份、主目录等)时,就会触发此操作。我不要那个。

有任何想法吗?

linux user-management puppet

9
推荐指数
1
解决办法
7302
查看次数

多次使用同一个类/模块/或任何东西

傀儡一定恨我。我已经连续阅读了几个小时的文档,但仍然无法实现以下目标:

  • 一个类或模块(或它叫什么),其中包含一个变量(参数化类?);
  • 此类将在单个主机中多次包含。

在伪代码中,这将是:

# The class
classorwhatever myclass ($value) {
    notify { "$value world" }
}

# In the node definition
node whatever {
    myclass("Hello")
    myclass("Goodbye")
}
Run Code Online (Sandbox Code Playgroud)

我觉得自己太蠢了,一点都不好笑。我知道这一定是可行的。但是如何?:(

puppet

9
推荐指数
1
解决办法
4399
查看次数

Puppet:管理(大量)Apache VirtualHosts

我正在通过一般的配置管理学习我的方法,特别是使用puppet来实现它。我已经做了一些通用研究(也在 SF 上),现在我正在考虑 Apache VirtualHosts。

我们在两个系统上托管了许多LAMP网站(目前在数百个范围内):一个Apache2 / mod_php一个和一个MySQL一个 - 基本上与SF已经存在的另一个问题相反,他管理许多服务器,每个服务器都有很少的虚拟主机(如果实际上不是一个,我不知道)。我还没有在 puppet 中组合一个工作配置,但这应该不是问题,那里有很多 例子和食谱。

除了明显的 apache 配置文件(我猜这里没问题)每个 vhost 都需要创建一些目录并检查权限(例如,每个 vhost 的根目录包含一个 documentroot、一个专用的 tmp 目录、一个专用的php 会话文件目录,可能是 SSL 证书等)在网络服务器上,以及一个用户 + 一个或多个 MySQL 服务器上的数据库。

添加一个新的虚拟主机需要 puppet 来创建它们,删除一个需要 puppet 运行一些脚本来备份用户数据,然后从两台服务器中删除实时数据,而且每个 puppet 代理运行都会检查是否存在目录、数据库、权限等。

在每次运行 puppet 时都会运行所有这些检查,尤其是文件系统的检查(在网络服务器上),尤其是在将来系统会加载更多时,我是否会在增加数百个虚拟主机时遇到麻烦?(假设我们将 1000 到 2000 个网站范围作为每个服务器的合理最大值)。

有没有在网上这样做的经验?我用谷歌搜索但什么也没找到,也是因为在搜索“puppet”和“apache”时信噪比很低......

configuration-management virtualhost puppet apache-2.2

9
推荐指数
1
解决办法
4844
查看次数

Puppet 或 Chef 是否适合在多租户环境中管理非常基本的服务器配置?

这与多租户环境有关,例如小型托管公司。

Puppet(或类似)是否适合处理基本但关键的质量变化?例如:

  • 更新 DNS 解析器 (resolv.conf)
  • 设置 SSH 密钥
  • 更新 NTP 配置
  • 配置 snmpd
  • 部署监控脚本,例如 SNMP Perl 扩展或 Nagios 脚本

我担心的是安全性和侵入性:

  1. 我不希望任何服务器能够看到它不应该看到的任何配置
  2. 我担心 Puppet master 可能容易受到受感染服务器的攻击
  3. 我不希望 Puppet 进行任何它不应该进行的更改,或者恢复在服务器上所做的任何手动更改。

我应该说明一下,我从未在生产中使用过 Puppet,只是在测试实验室中快速玩过,所以我可能会以错误的方式思考这个问题!

puppet

9
推荐指数
2
解决办法
1415
查看次数

Mesos 部署的最佳基础

我们目前正在设计我们新的 Apache Mesos 云设置的架构。目标是通过将不同的堆栈移动到同一架构上来统一我们的系统。主要工作负载是使用 Apache Spark 和我们的企业基础设施(包括 Web 服务器、邮件服务器等)进行大数据分析。

这个想法是在 Docker 容器中运行我们的 Web 服务,该容器运行在 Mesos 的可用调度程序之一(Marathon/Chronos、Aurora 或 Singularity)之上。因此,这将是第一个 Mesos 框架组。在它旁边,我们会有 Apache Spark 框架和几个用于数据存储的数据库框架。这将是第二组 Mesos 框架。我们将在并行运行它们进行测试后选择细节。

然而,我们很难决定在哪个基础上运行 Mesos 本身。理想情况下,我们希望尽可能靠近金属运行它。我们还希望使用编排解决方案来确保 Mesos 和框架守护进程在失败时始终运行/重新启动。我们正在考虑的选项如下:

1) 在最小的操作系统中将 Mesos 和框架作为 docker 容器运行。在这方面,我们目前倾向于 CoreOS 和 Fleet。

2) 直接在 Ubuntu/Debian 服务器上运行 Mesos 和框架。对于这个选项,我们倾向于 Foreman 和 Puppet。

至于这个问题,我们正在寻找解决方案,按重要性排序:

  • 配置最简单
  • 是最容易维护和保持更新的
  • 有最少的开销

我们之前没有使用过 CoreOS,但它似乎是我们正在走向的选项。我对此的一个大(主观)问题是我们在 Docker 容器上运行 Mesos,然后在 Mesos 上运行 Docker 容器。这对我来说似乎是“不洁”和错误的。这种考虑是没有道理的?

类似的想法涉及层之间的冗余。为了解释我从哪里来,我更希望 Mesos 是一个真正的操作系统,它只是在金属之上运行。似乎无论您使用什么基础,最终都会在架构的不止一层(即 CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos)上获得相同的预期功能。这是不可避免的吗?

有没有其他好的选择来运行我们没有考虑的 Mesos 下的层,记住我们的标准?

cloud puppet foreman coreos apache-mesos

9
推荐指数
1
解决办法
351
查看次数

服务器上的错误 400:环境必须是纯字母数字,而不是“puppet-ca”

我想分享这个错误,因为我已经浪费了一天。所以我想我可能对其他人有用

我在基础设施团队的同事设置了一个 puppet 服务器。他们为我提供了另一个窗口 2008 r2 来让我自己安装 puppet 代理。

我尝试运行 puppet 代理,它总是显示消息

服务器上的错误 400:环境必须是纯字母数字,而不是“puppet-ca”

puppet puppetmaster

9
推荐指数
1
解决办法
2万
查看次数

在 Puppet 中,“include”和“class”有什么区别?

我可以写

include '::ntp'
Run Code Online (Sandbox Code Playgroud)

或者我可以写

class { '::ntp':}
Run Code Online (Sandbox Code Playgroud)

它们之间有什么区别,还是我都需要?

puppet

9
推荐指数
1
解决办法
2万
查看次数

使用 Docker/Ansible 的不可变服务器模型 vs. AWS 中的 Ansible、Puppet 和 Foreman?

我们遇到了一个有趣的争论,并陷入了两个阵营。我对我们可能遗漏的想法或陷阱的任何特定问题感兴趣。真的,任何可以帮助我们做出决定或指出我们没有考虑的事情的东西。我知道这有点接近“无意见”规则,但我希望这仍然是一个可以接受的问题。长度也很抱歉,有一些细微差别。

1)一方面(我的 - 我并非没有偏见)发现不可变服务器模型对于云系统非常有趣。为此,我们设计了将基础架构的所有组件迁移到 Docker 中的原型。我们的自定义应用程序通过 Jenkins 直接构建到部署到本地 Docker Registry 的 Docker 镜像中。然后我们创建了大量 Ansible 角色和一个剧本,它能够接触到一个空服务器,安装 Docker,然后告诉 Docker 根据需要安装所有容器。几分钟后,整个应用程序及其所有支持基础设施都已连接好并开始工作 - 日志记录、监控、数据库创建/填充等。完成的机器是一个独立的 QA 或开发环境,具有精确的副本应用。我们的扩展计划是制作新的 Playbooks 以从基本可信 AMI(可能是一个非常裸的镜像)构建新的 AWS 服务器,滚动部署生产应用程序以处理配置管理和发布,并且通常不再编辑服务器 -只是让他们重新。我并不担心在实践中得到我所描述的东西——只要它是一个合理的模型。

2) 另一个阵营想用 Puppet 来处理配置管理,Ansible 来部署我们的自定义应用程序,这些应用程序是从我们的构建过程中生成的 tarball,Foreman 来处理整个过程的触发和管理,而 Katello 来做一些基础形象管理。发布将涉及 Puppet 根据需要更改配置,以及 Ansible 通过一定数量的 Foreman 协调部署更新的组件。如果我们需要新的服务器,服务器的构建速度会相当快,但目的不是让它们成为标准流程的一部分。虽然寿命很长,但它更接近凤凰服务器模型。

所以我的问题真的归结为这个:带有我上面描述的工具的不可变服务器模型实际上和它看起来一样真实吗?我喜欢这样的想法,即我们的暂存过程实际上可以实时构建应用程序的完整克隆,让 QA 对其进行锤击,然后只需翻转数据库存储和一些 DNS 设置即可使其生效。

还是不可变服务器模型在实践中失败了?我们在 AWS 和云环境方面拥有丰富的经验,因此这并不是真正的问题 - 更重要的是如何可靠地部署合理复杂的应用程序。这是特别有趣的,因为我们经常发布。

除了实际为我们创建 EC2 服务器之外,我们让 Ansible 做大多数需要的事情,这并不难。我无法理解为什么您实际上需要在此模型中使用 Puppet/Foreman/Katello。Docker 比我能说的任何工具中的自定义部署脚本都要干净和简单得多。当您不再担心必须就地配置它们而只需使用新配置重新构建它们时,Ansible 似乎比 Puppet 更易于使用。我是 KISS 原则的粉丝——尤其是在墨菲定律猖獗的自动化领域。机器越少越好 IMO。

对这种方法的任何想法/意见或建议将不胜感激!

puppet amazon-ec2 ansible foreman docker

9
推荐指数
1
解决办法
868
查看次数

为什么 r10k 被称为 r10k?

我现在使用 r10k 有一段时间了。我想知道 r10k 是什么意思。

问题

为什么这个工具叫做 r10k?它代表什么?

尝试回答问题

puppet 文档和互联网都没有指明 r10k 代表什么地方

puppet r10k

9
推荐指数
1
解决办法
2467
查看次数