becomeによる権限昇格
sudoを使ってrootとしてタスクを実行します
「becomeによる権限昇格」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。
root が必要なタスクもある
パッケージのインストールやサービスの再起動には、通常root権限が必要です。Ansibleでは、別途rootでログインするのではなく、権限昇格で対応します。🔐
become で有効にする
--becomeフラグ(通常は-bと短縮します)を追加すると、リモートホスト上で権限を昇格してアドホックコマンドを実行できます。
ansible all -b -m package -a "name=git state=present"デフォルトの方式はsudo
デフォルトではbecomeはsudoを使って権限を昇格します。ほとんどのLinuxシステムで、追加設定なしに動作します。
ansible web -b -m service -a "name=nginx state=restarted"デフォルトでrootになる
権限を昇格すると、別途指定しない限りAnsibleはrootユーザーになります。ほとんどの管理タスクでは、これが適切な対象です。
become_user でユーザーを切り替える
--become-userを使うと、root以外のユーザーになれます。たとえば、postgresアカウントやdeployアカウントとしてファイルを配置できます。
ansible db -b --become-user postgres -m command -a "psql -c '\\l'"方式を選ぶ
--become-methodフラグで、sudo、su、doasなど、権限を昇格する方法を選びます。使用できる方式はホストの設定によって異なります。
ansible all -b --become-method su -m pingsudo パスワードを求める
sudoがパスワードを要求する場合は--ask-become-pass(通常は-K)を追加します。Ansibleが実行前に1回だけ入力を求めます。
ansible all -b -K -m package -a "name=vim state=present"覚えておく3つの要素
権限昇格には3つの設定があります。becomeで有効化し、become_userでユーザーを、become_methodで方式を指定します。これらを組み合わせれば、あらゆるホストに対応できます。
プレイブックでも同じキーを使う
これらのフラグは、become: true、become_user、become_methodというディレクティブに対応します。後でプレイブック内でも再利用します。
become: true接続してから権限を昇格する
AnsibleはまずSSHユーザーとしてログインし、その後ホスト上で権限を昇格します。2つのユーザーは別々の段階で使われるため、混同しないでください。
ansible web -u deploy -b -m ping必要な場合だけ権限を昇格する
pingやファクト収集のような読み取り専用のタスクではbecomeを省略してください。本当に高い権限が必要な処理にだけ使用します。
クイックチェック
becomeを使った場合のデフォルトの権限昇格方式は何ですか。
まとめ
これで安全にrootへ切り替えられるようになりました。becomeで権限昇格を有効にし、become_userで対象を設定し、-Kでパスワードの入力を求めます。🔐
AI チューターと学ぶ YAML — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「becomeによる権限昇格」レッスンは無料ですか?
はい。「becomeによる権限昇格」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。
「becomeによる権限昇格」で何を学びますか?
sudoを使ってrootとしてタスクを実行します ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ansible Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「becomeによる権限昇格」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAnsible Academyレッスンでコードを書いて実行できますか?
はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。