Chef Solo获得用户输入

时间:2013-11-03 14:42:33

标签: chef chef-solo

我不知道为什么我在这个互联网上找不到任何关于此事的内容。

我基本上想写一个提示用户输入github用户名/密码的配方,然后发帖到github API添加一个ssh密钥。

我确信我可以使用正常的ruby方法(即获取)提示用户,但鉴于所有实用程序主厨提供的内容,这似乎并不自然。

有人可以告诉我'厨师'方式提示用户输入以存储在vars中供以后使用吗?

我想首先输出一些说明供用户阅读,然后获取用户名,然后输入密码,我想出于安全原因,密码不应该在控制台上显示,因为他们输入

2 个答案:

答案 0 :(得分:3)

我认为厨师不是为了这样的用户输入而做的。

您可以使用在Chef run的编译阶段执行的ruby代码,但我建议如下:

如何从environment variable阅读

答案 1 :(得分:1)

感觉超级脏,但这确实有效。也许有些东西可以调整,以便感觉更干净:

file "/tmp/ans" do
  puts "Enter something useful!"
  content ::STDIN.readline
end

您可以使用chef-apply来应用此类食谱,请注意使用Vagrant将不起作用。

不过,我建议不同地做。另一种方法是不直接调用chef,而是通过包装脚本。这可以从用户读取数据并将其写入json文件,然后通过-j PATH, --json-attributes PATH参数将其提供给厨师(参见chef-solo parameters)。