【问题标题】:Knife view of nodes not in sync with Automate server与自动化服务器不同步的节点的刀视图
【发布时间】:2018-11-25 13:52:43
【问题描述】:

好的,所以在我们的 AWS 环境中,我们通过 AWS OpsWorks 运行 Chef-Automate。节点通过 AWS 用户数据中的代码自动注册和下载 Chef 客户端。我们有另一个 EC2 实例充当 Chef 工作站。这一切运作良好。然而,在这个特定的非生产环境中,EC2 节点经常来来去去。为了保持清洁,我们在 Automate 服务器上运行以下 cron 作业:

automate-ctl node-summary | grep missing | awk '{print $2}' |  while read var; do automate-ctl delete-node --force -d -u $var; done

一旦显示为“缺失”,这将删除任何节点。这也很好。但是,当我们在工作站上运行 knife node listknife status 时,我们会得到数百个死节点,其中一些已经消失了数千小时。

显然,knife 没有从与 automate-ctl 相同的数据库中获取节点数据。我最希望的是,我可以通过自动化服务器上​​的 cron 运行一些命令以保持这些命令同步,但我在文档中没有看到明显的解决方案。我假设 knife 正在连接到 Automate 服务器以获取其列表,所以我更喜欢在那里运行的解决方案,而不是在工作站上运行。

有什么想法吗???

【问题讨论】:

    标签: chef-infra aws-opsworks knife


    【解决方案1】:

    您可以使用knife node bulk deleteknife client bulk delete 运行类似的东西。还有一些 Lambda 任务将监控实例关闭事件并清理 Chef 服务器。

    Chef Server 和 Automate 进行通信,但每个都有自己的数据库,因为 Automate 通常会保留历史记录,即使在从 Chef Server 删除节点以进行审计或合规跟踪后也是如此。

    【讨论】:

    • 为了方便其他人看到这一点,这里是执行清理以与自动化服务器保持同步的 cron 作业:knife status | awk '{if ($2 == "hours" && $1 >= 24) print substr($4, 1, length($4)-1)}' | while read var; do knife client delete -y $var; knife node delete -y $var; done
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多