我们可以用另一个厨师服务器.pem替换一个厨师服务器.pem吗?

时间:2013-11-20 14:58:07

标签: chef

我的一个主厨服务器服务器坏了。 我有.pem文件,并且已经设置了一个具有相同IP和主机名的新主厨服务器。

我尝试在/ etc / chef-server下替换相同的.pem文件,但它不起作用。

为了让其他主厨服务器使用来自不同主厨服务器的.pem文件,我是否需要更改任何部分?

3 个答案:

答案 0 :(得分:3)

admin.pemchef-validator.pem

是的,您必须更新这两个客户端。使用admin.pem访问新的Chef-Server并编辑chef-validatoradmin个客户端knife client edit admin,然后在替换行时设置public_key条目打破\n)。

答案 1 :(得分:3)

/etc/chef-server/下的这些关键文件是两个主厨客户以及一位厨师用户的只读私钥文件:

  1. chef-webui.pem - chef-webui
  2. chef-validator.pem - chef-validator
  3. admin.pem - 管理员用户
  4. 你只需要更新2)和3)因为1)永远不会共享厨师服务器。

    除了@StephenKing的第一个答案,我建议使用另一个管理员用户来更新2)和3)因为用管理员用户自己更新管理员的公钥是有风险的(一个错误会导致你失去管理)。所以步骤是:

    1. 安装新的厨师服务器
    2. 运行命令knife configure -i,创建另一个管理员用户
    3. 通过openssl rsa -in chef-validator.pem -pubout
    4. 从旧厨师服务器中提取现有密钥文件中的公钥
    5. 在vi。
    6. 中将chef-validator生成的客户knife client edit chef-validator生成的公钥替换为
    7. 通过命令knife user edit admin为管理员用户重复步骤3)和4),无需担心任何错误,因为您可以随时重做。

答案 2 :(得分:1)

我建议只需下载新的厨师服务器密钥并丢弃旧密钥:

ssh myusername@chefserver sudo cat /etc/chef-server/admin.pem          > ~/.chef/admin.pem
ssh myusername@chefserver sudo cat /etc/chef-server/chef-validator.pem > ~/.chef/chef-validator.pem
knife configure --server-url https://chefserver \
                --user admin \
                --key ~/.chef/admin.pem \
                --validation-client-name chef-validator \
                --validation-key ~/.chef/chef-validator.pem

将密钥放入“/ etc / chef-server”目录将无法正常工作。和你一样,我也发现无法将现有私钥上传到新的厨师服务器。

如果您查看与密钥维护相关的各种API:

您会注意到他们都返回了私钥。当想要创建或重新生成用户时,这会镜像UI中的行为。显示私钥时会显示一个警告,厨师不会保存它。

因此,Chef生成密钥对并返回并丢弃私有部分。