【发布时间】:2013-12-04 15:26:32
【问题描述】:
我的一个主厨服务器出现故障。 我有它的 .pem 文件,并且已经设置了一个具有相同 IP 和主机名的新厨师服务器。
我尝试替换 /etc/chef-server 下的相同 .pem 文件,但它不起作用。
为了让另一个厨师服务器使用来自不同厨师服务器的 .pem 文件,我需要更改任何部分吗?
【问题讨论】:
标签: chef-infra
我的一个主厨服务器出现故障。 我有它的 .pem 文件,并且已经设置了一个具有相同 IP 和主机名的新厨师服务器。
我尝试替换 /etc/chef-server 下的相同 .pem 文件,但它不起作用。
为了让另一个厨师服务器使用来自不同厨师服务器的 .pem 文件,我需要更改任何部分吗?
【问题讨论】:
标签: chef-infra
我的建议是简单地下载新厨师服务器的密钥并丢弃旧的:
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 生成密钥对并返回并丢弃私有部分。
【讨论】:
/etc/chef-server/ 下的这些密钥文件是两个 Chef 客户端和一个 Chef 用户的只读私钥文件:
chef-webui.pem - chef-webui
chef-validator.pem - chef-validator
admin.pem - 管理员用户您只需要更新 2) 和 3),因为 1) 永远不会共享出厨师服务器。
除了@StephenKing 的第一个答案,我建议使用另一个管理员用户来更新 2) 和 3),因为用管理员用户本身更新管理员的公钥是有风险的(一个错误会导致您失去管理权)。所以步骤是:
knife configure -i 创建另一个管理员用户openssl rsa -in chef-validator.pem -pubout从旧厨师服务器的现有密钥文件中提取公钥
chef-validator 生成的公钥替换为 knife client edit chef-validator。knife user edit admin 为管理员用户重复步骤 3) 和 4),无需担心任何错误,因为您可以随时重做。【讨论】:
admin.pem 和 chef-validator.pem?
是的,您必须更新这两个客户端。使用admin.pem 访问新的Chef-Server 并编辑chef-validator 和admin 客户端(knife client edit admin,然后设置public_key 条目,同时用\n 替换换行符)。
【讨论】: