如何在 chef-recipe 中为 ssh 命令提供密码
How to give password for ssh commands in chef-recipe
我是 运行 厨师服务器上的菜谱,它要求我提供远程计算机上的 ssh 密码。
运行 菜谱主厨客户端要求输入机器密码,即使我提供了菜谱也无法正常工作。谁能帮我解决这个问题。
这是我的食谱
execute "run ssh" do
command "rsync -avz --progress /opt/tomcat7/webapps/ROOT/static root@X.X.X.X:/opt/chef/rsyncEx"
end
我们应该尝试使用 ssh 密钥,而不是使用这种石器时代的技术,
为此,首先在我们要运行我们的食谱的远程机器上生成ssh密钥。
[root@node01 ~]# ssh-keygen
记住不要为密钥文件提供任何密码
[root@node01 ~]# chmod 700 ~/.ssh
[root@node01 ~]# chmod 600 ~/.ssh/*
[root@node01 ~]# ssh root@node02 'mkdir -p /root/.ssh'
[root@node01 ~]# scp /root/.ssh/id_rsa.pub root@node02:/root/.ssh/authorized_keys
[root@node01 ~]# ssh root@node02 'chmod 700 /root/.ssh'
[root@node01 ~]# ssh root@node02 'chmod 600 /root/.ssh/*'
现在我们可以不用密码登录了
[root@node01 ~]# ssh root@node02
现在 运行 我们配方中的任何 sh 命令都使用 ssh 密钥,对于我的场景,当 运行ning rsync 我使用这个
execute "static_backup" do
command "rsync -avz --progress -e 'ssh -i /root/.ssh/id_rsa -C -c blowfish' /opt/tomcat7/webapps/static root@node2:/opt/chef/rsyncEx"
only_if {node.name=='node2'}
end
我是 运行 厨师服务器上的菜谱,它要求我提供远程计算机上的 ssh 密码。 运行 菜谱主厨客户端要求输入机器密码,即使我提供了菜谱也无法正常工作。谁能帮我解决这个问题。 这是我的食谱
execute "run ssh" do
command "rsync -avz --progress /opt/tomcat7/webapps/ROOT/static root@X.X.X.X:/opt/chef/rsyncEx"
end
我们应该尝试使用 ssh 密钥,而不是使用这种石器时代的技术, 为此,首先在我们要运行我们的食谱的远程机器上生成ssh密钥。
[root@node01 ~]# ssh-keygen
记住不要为密钥文件提供任何密码
[root@node01 ~]# chmod 700 ~/.ssh
[root@node01 ~]# chmod 600 ~/.ssh/*
[root@node01 ~]# ssh root@node02 'mkdir -p /root/.ssh'
[root@node01 ~]# scp /root/.ssh/id_rsa.pub root@node02:/root/.ssh/authorized_keys
[root@node01 ~]# ssh root@node02 'chmod 700 /root/.ssh'
[root@node01 ~]# ssh root@node02 'chmod 600 /root/.ssh/*'
现在我们可以不用密码登录了
[root@node01 ~]# ssh root@node02
现在 运行 我们配方中的任何 sh 命令都使用 ssh 密钥,对于我的场景,当 运行ning rsync 我使用这个
execute "static_backup" do
command "rsync -avz --progress -e 'ssh -i /root/.ssh/id_rsa -C -c blowfish' /opt/tomcat7/webapps/static root@node2:/opt/chef/rsyncEx"
only_if {node.name=='node2'}
end