knife bootstrap windows 2008 x86 静默失败
knife bootstrap silent fail on windows 2008 x86
我在 windows 2008 x86 服务器上使用 knife bootstrap 静默失败。
它创建了 windows 批处理文件,但批处理文件未执行且 return 代码为 0。
版本信息是
knife-windows version:1.4.1
winrm version:1.8.1
在挖掘之后,我想找到了。 on knife-windows源代码lib/chef/knife/winrm_session.rb"relay_command"方法
remote_id = @winrm_session.open_shell
command_id = @winrm_session.run_command(remote_id, command)
=> 这不是 运行 批处理文件。只是退出代码为 0,运行 其他命令正常
@winrm_session.create_executor do |executor|
executor.run_cmd(cmd) do |stdout, stderr|
Chef::Log.info(cmdstdout)
Chef::Log.error(cmdstderr)
end
end
=> 可以 运行 批处理文件。但这是个坏主意,因为无法获得实时日志
听起来像是 winrm_session run_command 错误。但我不确定。
如何解决这个问题?
谢谢。
已通过 https://github.com/chef/knife-windows/pull/389 修复
所以更新 knife-windows 到最新版本,就可以了。
我在 windows 2008 x86 服务器上使用 knife bootstrap 静默失败。 它创建了 windows 批处理文件,但批处理文件未执行且 return 代码为 0。
版本信息是
knife-windows version:1.4.1 winrm version:1.8.1
在挖掘之后,我想找到了。 on knife-windows源代码lib/chef/knife/winrm_session.rb"relay_command"方法
remote_id = @winrm_session.open_shell
command_id = @winrm_session.run_command(remote_id, command)
=> 这不是 运行 批处理文件。只是退出代码为 0,运行 其他命令正常
@winrm_session.create_executor do |executor|
executor.run_cmd(cmd) do |stdout, stderr|
Chef::Log.info(cmdstdout)
Chef::Log.error(cmdstderr)
end
end
=> 可以 运行 批处理文件。但这是个坏主意,因为无法获得实时日志
听起来像是 winrm_session run_command 错误。但我不确定。 如何解决这个问题?
谢谢。
已通过 https://github.com/chef/knife-windows/pull/389 修复 所以更新 knife-windows 到最新版本,就可以了。