Как запустить команды heroku из сценария без ввода учетных данных вручную

Как запустить команды heroku без входа в систему первым?

Я уже пытался помещать файл.netrc в ~, но это не сработало. Есть ли какая-то переменная окружения или командная строка, которую я могу использовать, чтобы позволить мне запускать свои героические вещи без ручного вмешательства?

У нас есть пара одноразовых героев, где мы пытаемся использовать nagios, чтобы узнать, готовы ли они и принимают команды.

Если я запустил этот скрипт после того, как я вошел в герою на этом компьютере, как правильный пользователь вручную, он работает. Если я этого не сделаю, это не так. И поскольку мы пытаемся вытащить идеальный мир полностью автоматической настройки и конфигурации экземпляра, герою становится проблемой.

Насколько я могу судить (имея в виду, что я НЕ парень геройки, а наш геройский парень не очень уверен в себе), установка файла netrc должна работать, но он просто продолжает стираться от героку. Я должен полагать, что они поддерживают это.

Скрипт:

# 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 в проверке, если героику. Есть ли лучшее (бесплатное, простое) решение для этого?

1 ответ

Вы можете использовать expect которое соответствует вашим потребностям, например, следующее:

expect -c 'spawn ssh me@host; expect assword; send "password\n"; interact'

запускает ssh и ждет, чтобы он распечатал assword в консоли, после чего он отправит ему строковый password. Поэтому вам просто нужно понять, что печатается, когда heroku просит вас получить учетные данные.

licensed under cc by-sa 3.0 with attribution.