ホーム > Ansible Tower・AWX リファレンス
Ansible AWXで「become」ディレクティブを使用し、権限昇格しつつコマンドを実行する方法を解説します。Linuxにおける「sudo」コマンドと同じような機能となります。
Ansible AWX の各種定義
Ansible AWX での各種定義について記載しています。
プロジェクト、インベントリーについては特別な設定を行っていないため割愛します。
認証情報
テンプレート
テンプレートの設定内容になります。
設定していない項目は記載していません。
今回は、実行時の出力情報を確認したいので、「詳細」(ログレベル)を「1(Verbose)」としました。
プレイブック
今回実行するプレイブックの内容になります。
[shell]モジュールで、[whoami]コマンドを実行しています。
[become]ディレクティブの有無で2度実行しています。
---
- hosts: all
gather_facts: False
tasks:
- name: whoamiコマンドの実行
shell: whoami
- name: whoamiコマンドの実行
shell: whoami
become: yes
実行結果
実行時の出力結果になります。
Using /etc/ansible/ansible.cfg as config file
SSH password:
BECOME password[defaults to SSH password]:
PLAY [all] *********************************************************************
TASK [whoamiコマンドの実行] ***********************************************************
changed: [192.168.56.105] => {"changed": true, "cmd": "whoami", "delta": "0:00:00.003664", "end": "2022-02-11 17:47:49.550701", "rc": 0, "start": "2022-02-11 17:47:49.547037", "stderr": "", "stderr_lines": [], "stdout": "ansible", "stdout_lines": ["ansible"]}
TASK [whoamiコマンドの実行] ***********************************************************
changed: [192.168.56.105] => {"changed": true, "cmd": "whoami", "delta": "0:00:00.003954", "end": "2022-02-11 17:47:50.037194", "rc": 0, "start": "2022-02-11 17:47:50.033240", "stderr": "", "stderr_lines": [], "stdout": "root", "stdout_lines": ["root"]}
PLAY RECAP *********************************************************************
192.168.56.105 : ok=2 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
以下のように、「sudo」を付与していない「whoami」コマンドの実行結果は「ansible」で、付与しているほうは「root」と表示されており、権限昇格されていることが確認できます。
記事は以上です。
「become」ディレクティブを使用することで、簡単に権限昇格を行えました。
Linuxのコマンド以外に、Ansibleモジュールも権限昇格することが可能で、Ansibleを使用するうえでは、必須のテクニックになるので、しっかり覚えておきましょう。
ジョブが失敗する場合は、こちらを参考にしてみてください。
コメント