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

use*_*835 6 chef-infra knife

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

Rob*_*Ray 2

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

假设

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

脚步

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
Run Code Online (Sandbox Code Playgroud)

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

然后使用

knife node run_list add NODE_NAME RUN_LIST_ITEM(s) 
Run Code Online (Sandbox Code Playgroud)

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

然后使用

knife node environment_set NODE_NAME ENVIRONMENT_NAME
Run Code Online (Sandbox Code Playgroud)

设置每个节点的环境。

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

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

  • 当它建议手动登录到 300 个实例以执行客户端迁移时,这个答案如何被接受? (11认同)