Chef Knife 不使用编辑器保存更改

Chef Knife not saving changes with editor

我想创建一个带刀的角色。所以我 运行:

> knife role create beautifulprayer
ERROR: RuntimeError: Please set EDITOR environment variable

没问题!只需添加编辑器即可。之后:

> knife role create beautifulprayer

这将打开我设置的编辑器 (subl) 并在编辑器打开后继续执行并将调用传播到 Chef 服务器,导致 Created role[beautifulprayer] 虽然编辑器仍然打开但我还没有保存任何东西。编辑时也会发生这种情况,结果是 Object unchanged, not saving,而编辑器仍处于打开状态并且没有发生保存。

虽然我使用 vim 时不会发生这种情况,因为 knife 等待我关闭 VIM 然后将调用传播到厨师服务器。我想使用 sublime,但这目前不起作用,因为 knife 不会传播或检测到 sublime 的任何更改和保存。

您需要让您的编辑器"block"当前进程并且分叉另一个进程。通常这被描述为 "no fork"、"foreground" 或 "wait" 选项:

示例:

Sublime 文本

export EDITOR="subl -w"

原子:

export EDITOR="atom -f"

MacVim:

export EDITOR="mvim -f"

文本伴侣 2:

export EDITOR="mate -w"

完成更改后,您需要关闭编辑器,knife 会拾取更改。