如何从一个厨师服务器迁移到另一个厨师服务器

How to migrate from one chef-server to another chef-server

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

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

假设

  1. 您的节点是 Linux 个节点,您仍在 Chef 11 中工作 版本。
  2. 你的新厨师服务器有所有的食谱、角色、数据 袋子和环境从您的旧 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-client。这将从新服务器创建一个新的客户端身份,您应该会看到您的客户端名称出现在您的 Chef 服务器的 /clients 列表中。

但是您还没有摆脱杂草,因为: i) 您的客户 运行-list 将为空并且 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 中看到该节点以及您分配的 运行 列表和环境。您还应该在状态选项卡中看到该节点具有最近的上次签到时间。

是的。你将不得不这样做 300 次。哎哟.