【问题标题】:Chef - Powershell OutputChef - Powershell 输出
【发布时间】:2017-12-13 12:19:31
【问题描述】:

我最近升级到 Windows 10,在运行刀命令时我注意到一个非常奇怪/烦人的问题。

当我在 powershell 控制台中运行它时:

$nodes = knife node list

$nodes 的值是$null,我的所有节点都列在控制台窗口中,而不是被捕获并存储在$nodes 变量中。当我从 Powershell ISE 运行相同的命令时,它会按预期运行,其中 $nodes 的值包含我的节点列表。

我尝试了几种变体,结果都一样......

$nodes = & knife node list
$nodes = Invoke-Expression -Command 'knife node list'
$nodes = $(Invoke-Expression -Command 'knife node list')
$nodes = & knife node list 2>&1
$nodes = & knife node list 3>&1
$nodes = & knife node list 4>&1

我的 powershell 控制台会话无法捕获 ruby​​ 解释器的输出但 powershell ise 会话可以捕获的输出,这是怎么回事!?

Name                           Value
----                           -----
PSVersion                      5.0.10586.122
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.122
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

尝试使用和不使用 chef powershell 模块:Import-Module Chef 相同的结果。

PS C:\Users\nhudacin> chef -v
Chef Development Kit Version: 0.12.0
chef-client version: 12.8.1
berks version: 4.3.0
kitchen version: 1.6.0

现在这里是关键...我会使用 ISE 来完成它,但是这个命令:

$nodes = knife exec -E 'b = Time.now.to_i;a = (b - (336*60*60)).to_i;printf "%-40s %-23s\n", "Name", "Last Check-In";search(:node, "ohai_time:[0 TO #{a}]") { |n| checkIn = Time.at(n["ohai_time"]).strftime("%F %R"); printf "%-40s %-23s\n", n.name, checkIn;}'

在 powershell 控制台中完美运行,返回过去 14 天内未签入的节点列表。当我在 ISE 中运行它时,它不会返回单个节点(尽管我知道至少有 10 个节点符合此条件)。

【问题讨论】:

  • 有没有人为此提出解决方案?这种刺激严重影响了我的刀夫。
  • 尚无解决方案。问题似乎来来去去。我可以再次在 Powershell ISE & Console 中执行上述刀命令。不知道发生了什么变化。
  • 如果您在没有变量knife node list 的情况下运行该命令,它会按预期工作吗?您是否也可以尝试以下gist 并查看$p.StandardOutput.ReadToEnd() 部分是否也包含预期的输出?
  • 我刚刚在我的 PowerShell 控制台窗口中尝试了$nodes = knife node list,一切都按我的预期运行,$nodes 包含我的节点列表。与以前相同版本的 chef/chefdk。也许 Windows 更新解决了这个问题?

标签: windows powershell chef-infra


【解决方案1】:

尝试删除作为 ChefDK 的一部分安装的 chef 模块。这就是为我解决这个问题的原因。

Remove-Module chef

https://github.com/chef/chef/issues/4045

【讨论】:

  • 你太棒了! :)
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 2014-07-28
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
相关资源
最近更新 更多