私はpackerを使用して自動化されたLinuxゴールデンイメージを作成しています。
Sudoを必要とするスクリプトを実行しようとすると、次のエラーが発生します
_Sudo: no tty present and no askpass program specified
_
このエラーはインターネット上で詳細に議論されています。推奨されるアドバイスは、次のいずれかを使用することです。
-t
_を使用したsshDefaults:username !requiretty
_%admin ALL=(ALL) NOPASSWD:ALL
Ubuntu16.04に同梱されている/ etc/sudoersファイルにrequiretty
が含まれていないことを確認しました。なぜubuntuはまだエラーを出すのですか_Sudo: no tty present and no askpass program specified
_
https://github.com/mitchellh/vagrant/issues/1482
https://askubuntu.com/questions/281742/Sudo-no-tty-present-and-no-askpass-program-specified
スクリプトの順序に問題があったことが判明しました。
Sudoersファイル内でvagrantユーザーのSudo権限を許可すると、問題は解決しました。
https://github.com/chef/bento/blob/master/scripts/ubuntu/sudoers.sh
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=Sudo' /etc/sudoers
sed -i -e 's/%Sudo ALL=(ALL:ALL) ALL/%Sudo ALL=NOPASSWD:ALL/g' /etc/sudoers