最近、リモート展開用のファブリックを検討し始めました。(ログインしたユーザーから)diffユーザーに切り替える必要があり、それを理解できません。もしそうなら、それも可能ですか?現在のユーザーにはsudo
権限がありません。
以下の環境変数を変更してみました
env.sudo_prefix = "su newUser -c "
env.sudo_prompt = "Password:"
ただし、ファブリックは「newUser」のパスワード入力を待機せず、失敗します。
out: Password:
[oldUser@ec2-111-11-111-111.compute-1.amazonaws.com] out: su: incorrect password
Fatal error: sudo() received nonzero return code 1 while executing!
Requested: touch x
Executed: su newUser -c -u "root" /bin/bash -l -c "cd /home/oldUser/upgrade && touch x"
Aborting.
Disconnecting from oldUser@ec2-111-11-111-111.compute-1.amazonaws.com... done.
アップデート:
JFセバスティアンが提案したように、su newUser -c
機能しますが、すべてのサーバーのすべてのコマンドに対してパスワードを要求するため、自動化の目的が損なわれます。プロンプトに基づいて同じ値を渡す方法はFabricにありますか(この場合、常にPassword:
)