如何在不先登录的情况下运行heroku命令?
我已经尝试将.netrc文件放在〜中,但这不起作用。是否有一些环境变量或命令行的东西,我可以用来让我开始运行我的heroku东西而不需要人工干预?
我们有一对一次性的heroku工作人员,我们正在尝试使用nagios来查看他们是否已经启动并接受命令。
如果我在手机上以正确的用户身份登录本机上的heroku后运行此脚本,则可以正常运行。如果我没有,它就没有。由于我们正试图完全实现自动化实例设置和配置的完美世界,因此heroku正成为一个问题。
据我所知(请记住,我不是heroku家伙,我们的heroku家伙并不十分确定自己),设置netrc文件应该可以正常工作,但它仍然被heroku消灭了。我必须相信他们对此有所支持。
脚本是:
# Check for two or more workers up for each of our heroku apps.
HEROKU_APPS=$(heroku apps | grep -v '^=')
exit_status=0
for app in $HEROKU_APPS; do
workers_up=$(heroku ps --app=$app | grep -c 'web\.[12]: up')
if [ 1 -eq $workers_up ]; then
exit_status=1
elif [ 0 -eq $workers_up ]; then
exit_status=2
exit $exit_status
fi
done
exit $exit_status
/此外,我承认我们可能是通过试图破解nagios来检查heroku是否已经成为白痴。对此有更好的(免费,简单)解决方案吗?
答案 0 :(得分:0)
您可以使用符合您需求的expect
,例如:
expect -c 'spawn ssh me@host; expect assword; send "password\n"; interact'
启动ssh
并等待它在控制台中打印assword
,此时它会将字符串password
发送给它。因此,当heroku
要求您提供凭据时,您只需要了解打印的内容。