
私はビルド サーバーをセットアップするために Atlassian Bamboo を使用しています。これにより、「エラスティック イメージ」を使用でき、使用する AMI を指定できます (私は Amazon Linux/CentOS イメージを使用しています)。また、基本的にサーバーを「プロビジョニング」するためのスクリプトを追加することもできます。sudo
スクリプトを使用してビルドを実行すると、次のようなエラーが発生します。
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
を使用しない場合sudo
、権限が拒否されたエラーが発生します。
の脚本私が実行しようとしているのは、次のように簡単です:
sudo yum install -y php-mysql
sudo yum install -y php-pdo
sudo yum install -y php-pecl-xdebug
sudo yum update
Bamboo はキーでセットアップされるため、実際のパスワードは必要ありません (私の知る限りでは存在しない) なので、tty 入力がなくても問題ないはずですよね?
サーバーが常時起動していれば、SSH で接続して sudo 権限を有効にする方法を見つけることができましたが、そうではありません...サーバーが作成され、ビルドが実行され、その後終了します。
TL;DR;動的にスピンアップされた EBS Backed AMI が許可されない原因は何でしょうかsudo
?
答え1
Bamboo はキーを使用してセットアップされるため、実際のパスワードは必要ありません (私の知る限り、パスワードはありません)。つまり、tty 入力がなくても問題ないということですね?
いいえ。ここが混乱しているところです。ssh への認証方法は sudo とは何の関係もありません。sudo がパスワードを要求するように設定されている場合は、ユーザーのパスワードを入力する必要があります。入力しないと機能しません。ユーザーがパスワードを持っていない場合は、機能しない可能性があります。
sudoを再設定する必要があるようです。
- ttyは必要ありません
- パスワードは必要ありません
たとえば、竹パスワードなしで任意のユーザーとして任意のコマンドを実行できるようにするには、/etc/sudoers私が持っているファイル
bamboo ALL=(ALL) NOPASSWD: ALL
答え2
ドキュメントに書いてある通りもしAtlassianが提供する画像があなたの望むように機能しない場合は、カスタムイメージを作成する。
答え3
/etc/sudoers ファイルが正しく設定されているかどうかを確認してください。昨日、ビルド スクリプトの 1 つが /etc/sudoers ファイルで行った変更を上書きし、権限の問題が発生したときにこのエラー メッセージが表示されました。