我有一个现有的厨师服务器设置,其中注册了大约300个节点.现在我想转移到另一个带有更新版本的厨师服务器.但是我不确定如何将所有节点和其他数据从较旧的chef-server迁移到较新的chef-server.
这里有多个步骤,需要您提供一些信息才能更好地回答您的问题。
假设
脚步
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 次。噢。