最近、私はAnsibleを掘り下げ、自分のプレイブックを書き始めました。ただし、become
とbecome_user
の違いを理解するのに問題があります。私が理解するように、become_user
はsu <username>
に似たものであり、become
はSudo su
または「すべてのコマンドをSudoユーザーとして実行」のようなものを意味します。ただし、これら2つのディレクティブが混在する場合があります。
それらの正しい意味を説明してもらえますか?
become_user
は、 特権エスカレーション に使用されているユーザーを定義します。
become
は、単に同じものを有効または無効にするためのフラグです。
明確にする必要がある3つの例を次に示します。
root
は特権昇格のデフォルトのユーザーであるため、このタスクはroot
として実行されます。
- do: something
become: yes
ユーザーが明示的に設定されているため、このタスクはユーザーsomeone
として実行されます。
- do: something
become: yes
become_user: someone
become
は設定されておらず、デフォルトでfalse
/no
に設定されているため、このタスクはbecome_user
で何もしません。
- do: something
become_user: someone
... bebeがtrue
に設定されていない限り、より高いレベルで、たとえばブロック、プレイブック、グループ、またはホスト変数など.
block の例を次に示します。
- become: yes
block:
- do: something
become_user: someone
- do: something
最初の1番目はユーザーsomeone
として実行され、2番目はroot
として実行されます。
私が理解しているように、become_userはsuに似たものであり、sudo suや「すべてのコマンドをSudoユーザーとして実行する」といった意味になります。
デフォルトのbecome_method
はSudo
であるため、Sudo do something
またはSudo -u <become_user> do something
Fineprint:もちろん「do:something」は擬似コードです。実際のAnsibleモジュールをそこに置きます。