Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef infra 如何从一个chef服务器迁移到另一个chef服务器_Chef Infra_Knife - Fatal编程技术网

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

Chef infra 如何从一个chef服务器迁移到另一个chef服务器,chef-infra,knife,Chef Infra,Knife,我有一个现有的chef服务器设置,注册了大约300个节点。 现在我想转到另一个具有更新版本的chef服务器。但是,我不确定如何将所有节点和其他数据从较旧的chef服务器迁移到较新的chef服务器。这里有多个步骤,需要您提供一些信息,以便更好地回答您的问题 假设 您的节点是Linux节点,您仍在Chef 11中工作 版本 您的新厨师服务器拥有所有的食谱、角色和数据 行李和环境从您的旧厨师服务器转移过来 台阶 a) 首先,确保您已经清点了当前的chef设置,以便了解所有节点的名称以及应用于每个节点的

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

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

假设

  • 您的节点是Linux节点,您仍在Chef 11中工作 版本
  • 您的新厨师服务器拥有所有的食谱、角色和数据 行李和环境从您的旧厨师服务器转移过来
  • 台阶

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

    b) SSH到要移动和删除的节点/etc/chef/client.pem

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

    d) 编辑/etc/client.rb并将chef_服务器url更改为新的chef服务器

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

    但你还没有摆脱杂草,因为: i) 您的客户端运行列表将为空,并且 ii)此客户端尚未出现在新服务器的/节点列表中

    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次。现在。

    对于我来说,使用Chef server 12.1,
    client.rb
    位于
    /etc/Chef/client.rb
    ,而不仅仅是在/etc中。当它建议手动登录到300个实例以执行客户端迁移时,这是如何被接受的答案?