AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1143650
Accepted
Wildcard
Wildcard
Asked: 2023-09-14 01:40:27 +0800 CST2023-09-14 01:40:27 +0800 CST 2023-09-14 01:40:27 +0800 CST

为什么 Puppet 会切换环境然后再切换回来?

  • 772

这是 Puppet 5.5.22 和 Foreman 1.22.0-develop 的情况。我知道这是一个过时的 Foreman 和 Puppet 安装,但在我用新版本替换它们(即将推出的项目)之前,它们是我必须处理的。

# puppet agent -tv
Notice: Local environment: 'production' doesn't match server specified node environment 'development', switching agent to 'development'.
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Loading facts
Notice: Local environment: 'development' doesn't match server specified environment 'test', restarting agent run with environment 'test'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Loading facts
Info: Caching catalog for servername.example.com
Info: Applying configuration version '1694623566'
Notice: Applied catalog in 12.93 seconds

据我了解,原始本地环境“生产”可以来自 /etc/puppet/puppet.conf,或者如果该文件中未指定环境,则为默认环境。在本例中是后者(本地未指定环境)。

节点环境“开发”是在 Foreman 中为此主机设置的(ENC 或此 Puppet 安装的外部节点分类器),并且是所需的正确环境分配。

“测试”环境是 Foreman 目前为我们所有主机广泛设置的环境,也是我通过 Foreman UI 将其更改为“开发”之前该特定主机所在的环境。(换句话说,“测试”实际上是我们的生产环境;名为“生产”的环境此时尚未使用。)

我尝试查阅 Foreman 文档,但没有找到任何有关环境分配工作原理的信息;该文档只是浏览一下 UI,这对故障排除没有帮助。


可能相关的是,这里还有另一个奇怪的地方,即 servername.example.com 在 Foreman 的 UI 中出现两次。

力量 姓名 操作系统 木偶环境 模型 主持人组 上次报告 行动
[旋转的轮子] 服务器名称 Debian [版本] 发展 [刀片服务器名称] 主机组名 [空白的] [编辑按钮]
[电源图标,灰色] 服务器名称 Debian [版本] 测试 标准PC [版本信息] [空白的] 6 分钟前 [编辑按钮]

如果我尝试通过单击“编辑”按钮来编辑任一条目的环境,那么当我单击“提交”时,我会在“名称”字段旁边以红色显示“已被采用”,就像我试图创建一样一个新的主机条目。

但是,如果我从列表视图中选择左侧带有复选框的主机,然后转到顶部并选择“选择操作”->“更改环境”,那么它似乎可以工作。这两个条目都会在 UI 中显示“开发”。但在 servername 上运行的下一个 Puppet 将产生本文顶部所示的输出,然后刷新 Foreman UI 将再次显示一个带有“development”的条目和一个带有“test”的条目。

可能是什么原因造成的?如何将主机分配给环境并使其保留?

puppet-foreman
  • 1 1 个回答
  • 54 Views

1 个回答

  • Voted
  1. Best Answer
    Wildcard
    2023-09-15T01:31:15+08:002023-09-15T01:31:15+08:00

    我解决了这个问题。

    我们的 Puppet 设置有一些特殊之处,因为在某处仍然存在一些挥之不去的 Puppet 3 配置残留 - 不确定具体位置,但列表中的服务器条目将自身恢复为“测试”,也将其 Puppet Master 显示为旧的傀儡服务器。该 puppet 服务器不再存在,但新的 foreman 服务器也具有该名称。有点复杂,我不完全理解两个不同条目的来源,但我通过以下方式修复了抖动环境分配:

    1. 删除 Foreman UI 中的两个主机条目(确保仔细阅读确认消息并确保这不会删除主机或磁盘,并且确认中仅列出两个预期的主机条目)。
    2. 在puppet服务器上(即通过命令行登录到Foreman服务器),运行puppet cert clean servername.example.com
    3. 在 servername.example.com 上,删除目录/var/lib/puppet/ssl/(find /var/lib/puppet/ssl/ -delete尽管我使用过rm -rf /var/lib/puppet/ssl/也可以。)
    4. 在 servername.example.com 上,编辑要在标题下/etc/puppet/puppet.conf设置的文件。environment = development[agent]
    5. 在 servername.example.com 上重新运行 puppet,使用puppet agent -tv.

    这正确地应用了开发环境中的代码,并且没有任何关于不匹配环境的警告,并且 Foreman UI 现在仅显示该服务器的一个条目,并正确地将其环境声明为development.

    • 0

相关问题

  • 从工头那里检索审计和报告

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve