我希望能使用Chef在一台机器上添加私有SSH密钥。
我是Chef新手,不是Ruby程序员,下面的代码可能不太优秀。
我的配方包括以下内容:
在目标机器上运行
我是Chef新手,不是Ruby程序员,下面的代码可能不太优秀。
我的配方包括以下内容:
execute "add private ssh key" do
command 'ssh-add ' + ::File.join('/home', node['user'], '.ssh/keys/id_rsa')
user node['user']
end
在目标机器上运行
sudo chef-client
时,我们会得到“无法打开连接到您的身份验证代理”的提示,这表明SSH客户端没有运行。因此我更改了食谱,以使用eval $(ssh-agent) &&
启动客户端。在这之后,在shell中运行sudo chef-client
命令时,我们可以看到该命令变成了绿色,表明该命令已成功执行。然而,登录用户没有添加id_rsa
密钥,并且我发现SSH客户端没有运行。这可能意味着密钥是为不同的用户添加的 - 或许是使用sudo运行Chef的副作用(如果不使用sudo,Chef将无法工作)。有没有人遇到解决这个问题的经验,或者用Chef向机器添加SSH密钥的方法?