gpt4 book ai didi

heroku - 如何与 Vagrant shell 配置脚本交互?

转载 作者:行者123 更新时间:2023-12-03 20:55:09 26 4
gpt4 key购买 nike

我有一个 shell 配置脚本,它调用一个需要用户输入的命令 - 但是当我运行时 vagrant provision ,该进程在脚本中的那个点挂起,因为命令正在等待我的输入,但无处可提供。有没有办法解决这个问题 - 即强制脚本以某种交互模式运行?

具体是我创建了一个干净的 Ubuntu VM,然后调用 Heroku CLI 来下载数据库备份(这是在我的配置脚本中):

curl -o /tmp/db.backup `heroku pgbackups:url -a myapp`

但是,由于这是一个干净的 VM,因此这是我第一次运行 Heroku CLI 命令,系统会提示我输入登录凭据。因为脚本是由 Vagrant 管理的,所以没有附加交互式 shell,所以脚本只是卡在那里。

最佳答案

如果您想将临时输入或变量传递给 Vagrant 脚本,您可以让它们输入凭据作为该命令的临时环境变量,方法是将它们放在同一行中:

username=x password=x vagrant provision

并从 Vagrantfile 中访问它们
$u = ENV['username']
$p = ENV['password']

然后你可以将它们作为参数传递给你的 bash 脚本:
config.vm.provision "shell" do |s|
s.inline: "echo username: $1, password: $2"
s.args: [$u, $p]
end

您可以在 vm 中安装诸如 expect 之类的东西来处理将这些变量传递给 curl 命令。

关于heroku - 如何与 Vagrant shell 配置脚本交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com