我在我的Windows机器上使用Chef zero来ssh到一个红帽linux机器并执行一个配方内的命令。当我运行下面的代码时,它会尝试SSH 120秒并超时。我不确定为什么会这样。知道为什么会这样吗?
require 'chef/provisioning'
require 'chef/provisioning/ssh_driver'
with_driver 'ssh'
machine "ssh" do
attribute "short_dns", new_resource.short_dns
attribute "long_dns", load_balancer_name
recipe "mycookbook::add_short_dns"
machine_options :transport_options => {
'is_windows' => false,
'ip_address' => '10.16.99.124',
'username' => 'myusername',
'ssh_options' => {
'password' => 'mypassword'
}
}
converge true
end
这是错误
- been waiting 110/120 -- sleeping 10 seconds for ssh (10.16.99.124 on ssh:C:/Users/user/.chef/provisioning/ssh) to be connectable ...[2015-06-23T14:54:33-05:00] INFO: Executing sudo pwd on myusername@10.16.99.124
================================================================================
Error executing action `converge` on resource 'machine[ssh]'
================================================================================
RuntimeError
------------
Machine ssh (10.16.99.124 on ssh:C:/Users/user/.chef/provisioning/ssh) did not become ready within 120 seconds
答案 0 :(得分:0)
我仍在与Chef Provisioning进行斗争,所以这可能没有我想要的那么有用。有一件事是每个都是一个键/值对,所以想要以不同的方式声明你的变量(见下文):
require 'chef/provisioning/ssh_driver'
with_driver 'ssh'
with_machine_options :transport_options => {
:username => 'centos',
:ssh_options => {
:password => 'password'
}
}
答案 1 :(得分:0)
Amir,
您的工作站上是否存在:C / Users / user / .chef / provisioning / ssh目录?如果没有尝试创建并确保权限正确,请尝试
答案 2 :(得分:0)
尝试使用下面的代码段,注意可以帮助您调试问题的额外选项。
1)DEBUG级别允许查看SSH通信。
2)如果你没有覆盖前缀,它将默认使用SUDO
3)有时当您重新创建远程服务器时,您的" known_hosts"文件记住它,下次你在娱乐后尝试SSH到服务器时,你收到了消息"警告:远程主机识别已经改变"。实际上SSH会话挂起,但你在客户端看不到。所以最好忽略它。
:transport_options => {
:is_windows => false,
:username => 'YOURUSER',
:ssh_options => {
:password => 'YOURPASSWRD',
:verbose => Logger::DEBUG,
:user_known_hosts_file => '/dev/null'
},
:options => {
:prefix => ''
}
},