我有一个现有的 Chef 服务器设置,其中注册了大约 300 个节点。 现在我想转移到另一个具有更新版本的 Chef 服务器。但是我不确定如何将所有节点和其他数据从较旧的 Chef 服务器迁移到较新的服务器。
最佳答案
此处有多个步骤,需要您提供一些信息才能更好地回答您的问题。
假设
- 您的节点是 Linux 节点,并且您仍在 Chef 11 中工作 版本。
- 您的新 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/