chef-infra - 如何从一台 Chef 服务器迁移到另一台 Chef 服务器

标签 chef-infra knife

我有一个现有的 Chef 服务器设置,其中注册了大约 300 个节点。 现在我想转移到另一个具有更新版本的 Chef 服务器。但是我不确定如何将所有节点和其他数据从较旧的 Chef 服务器迁移到较新的服务器。

最佳答案

此处有多个步骤,需要您提供一些信息才能更好地回答您的问题。

假设

  1. 您的节点是 Linux 节点,并且您仍在 Chef 11 中工作 版本。
  2. 您的新 Chef 服务器拥有所有 Recipe 、角色、数据 袋子和环境从您的旧 Chef 服务器移过来。

步骤

a) 首先确保您已清点当前的 Chef 设置,以便了解所有节点名称以及应用于每个节点的运行列表。

b) 通过 SSH 连接到要移动并删除/etc/chef/client.pem 的节点

c) 现在登录到您的新 Chef 服务器并使用/etc/chef/chef-validator.pem 内容中的私钥在您的客户端计算机上创建/etc/chef/validation.pem。

d) 编辑/etc/client.rb 并将 Chef_server_url 更改为新的 Chef 服务器。

现在在客户端计算机上运行 Chef-client。这将从新服务器创建一个新的客户端身份,您应该会看到客户端的名称出现在您的新 Chef 服务器的 Chef 服务器的/clients 列表中。

但你还没有摆脱困境,因为: i) 您的客户运行列表将为空并且 ii) 该客户端尚未出现在您的新服务器的/nodes 列表中。

d) 所以你需要使用

knife node create NODE_NAME

从工作站发出命令来命名节点并将其记录到新 Chef 服务器的数据库中。

然后使用

knife node run_list add NODE_NAME RUN_LIST_ITEM(s) 

为每个框重新创建运行列表。

然后使用

knife node environment_set NODE_NAME ENVIRONMENT_NAME

为每个节点设置环境。

现在在节点上运行 Chef-client,您应该会在/nodes 中看到该节点以及您分配的运行列表和环境。您还应该在状态选项卡中看到具有最近的上次 checkin 时间的节点。

是的。你必须这样做 300 次。噢。

关于chef-infra - 如何从一台 Chef 服务器迁移到另一台 Chef 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28806585/

相关文章:

ruby - 如何解决权限被拒绝@rb_sysopen

chef-infra - 有什么方法可以从 Chef 服务器生成并获取验证 key 吗?

rubygems - 可以更改 Chef 客户的 gem 来源吗?

ruby - Chef Recipe lwrp,使用 new_resource.updated_by_last_action(true) 的最简单方法

chef-infra - 使用 SSH 搜索或访问节点时出现 "FATAL: No nodes returned from search!"

ruby - 如何在执行时读取文件内容? Chef 在编译时读取

docker - Knife 箱工作流程说明

chef-infra - Knife-vsphere 插件无法正常工作

powershell - 如何设置 Jenkins 在 Powershell 脚本中使用 Knife

chef - 如何查询节点上的菜谱版本?