如何与Vagrant shell配置脚本进行交互?

Hug*_*own 15 heroku vagrant

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

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

curl -o /tmp/db.backup `heroku pgbackups:url -a myapp`
Run Code Online (Sandbox Code Playgroud)

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

Jai*_*ago 2

我假设您不想以纯文本形式对您的凭据进行硬编码,从而尝试强制采用交互模式。事情就像你一样,我在 vagrant 配置文档(http://docs.vagrantup.com/v1/docs/provisioners/shell.html)中没有看到这样的选项,所以不管怎样,你需要将身份验证嵌入到你的脚本。您是否考虑过使用获取令牌之类的方法并使用 heroku REST Api 而不是 CLI? https://devcenter.heroku.com/articles/authentication

  • 你是对的 - 我正在为一组开发人员构建一个通用盒子,所有开发人员都需要提供自己的凭据。我现在已经解决了这个问题。 (2认同)