我不知道为什么在互联网上找不到任何相关信息。
我想写一个配方,提示用户输入他们的Github用户名/密码,然后通过Github API发布SSH密钥。
我确定我可以使用普通的Ruby方法(例如gets)提示用户,但考虑到Chef提供的所有实用程序,这似乎并不自然。
有人能告诉我一种“Chef”方式来提示用户输入以存储变量供以后使用吗?
我想首先输出一些指示供用户阅读,然后获取用户名和密码,考虑到安全原因,密码不应该在控制台上显示。
我不知道为什么在互联网上找不到任何相关信息。
我想写一个配方,提示用户输入他们的Github用户名/密码,然后通过Github API发布SSH密钥。
我确定我可以使用普通的Ruby方法(例如gets)提示用户,但考虑到Chef提供的所有实用程序,这似乎并不自然。
有人能告诉我一种“Chef”方式来提示用户输入以存储变量供以后使用吗?
我想首先输出一些指示供用户阅读,然后获取用户名和密码,考虑到安全原因,密码不应该在控制台上显示。
虽然感觉很不干净,但这确实起作用。也许可以进行调整,使其感觉更加干净:
file "/tmp/ans" do puts "输入有用的内容!" content ::STDIN.readline end
你可以使用 chef-apply
应用此配方,但请注意,使用 Vagrant 不起作用。
尽管如此,我仍然建议以不同的方式处理。另一种方法是不直接调用 chef,而是通过包装脚本进行调用。这可以从用户读取数据并将其写入 json 文件,然后通过 -j PATH, --json-attributes PATH
参数(参见 chef-solo parameters)传递给 chef。
-j
参数会更简洁。) - StephenKingexpect(1)
,那么请随意使用。如果您还不能做到这一点,并且在使用此方法时遇到问题,并希望提交错误以寻求帮助,则我们可能会告诉您需要使用ENV变量和调用更适合用户输入的包装脚本,我们将无法教您如何修复ruby脚本中所有的错误。您将被困在泥潭中,我们将无法将您拉出来。 - lamont