【Ansible Tower/AWX】becomeディレクティブで権限昇格を行う


この記事はプロモーションを含みます。

ホーム > Ansible Tower・AWX リファレンス

Ansible AWXで「become」ディレクティブを使用し、権限昇格しつつコマンドを実行する方法を解説します。Linuxにおける「sudo」コマンドと同じような機能となります。

Ansible AWX の各種定義

Ansible AWX での各種定義について記載しています。
プロジェクト、インベントリーについては特別な設定を行っていないため割愛します。

認証情報

  • 名前:ansible
  • 説明:ansibleユーザ
  • 認証情報タイプ:マシン
  • ユーザ名:ansible
  • パスワード:ユーザ名に対応したパスワード
  • 権限昇格方法:sudo
  • 権限昇格のユーザ名:root
  • 権限昇格のパスワード:権限昇格のユーザ名に指定したユーザにsudoするためのパスワード

「権限昇格のパスワード」に設定するパスワードは、「権限昇格のユーザ名」で指定したユーザに設定しているパスワードではないので注意が必要です。
「sudo」で使用するパスワードなので、「ユーザ名」(本記事では、[ansible]ユーザ)に設定しているパスワードになります。
よく間違うポイントなので注意しておきましょう。

テンプレート

テンプレートの設定内容になります。
設定していない項目は記載していません。

  • 名前:Module Shell whoami Template
  • 説明:shellモジュール whoamiコマンド
  • ジョブタイプ:実行
  • インベントリー:Test Server Inventory
  • プロジェクト:秋拓プロジェクト
  • PLAYBOOK:shell_whoami.yml
  • 認証情報:ansible
  • 詳細:1(Verbose)

今回は、実行時の出力情報を確認したいので、「詳細」(ログレベル)を「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を使用するうえでは、必須のテクニックになるので、しっかり覚えておきましょう。

ジョブが失敗する場合は、こちらを参考にしてみてください。

コメント

タイトルとURLをコピーしました