10.4. RHEL システムロールを使用したカスタム sudoers 設定の適用
sudo
RHEL システムロールを使用して、管理対象ノードにカスタムの sudoers
設定を適用できます。これにより、どのユーザーがどのホストでどのコマンドを実行できるかを定義することで、設定の効率が向上し、よりきめ細かい制御が可能になります。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: "Configure sudo" hosts: managed-node-01.example.com tasks: - name: "Apply custom /etc/sudoers configuration" ansible.builtin.include_role: name: rhel-system-roles.sudo vars: sudo_sudoers_files: - path: "/etc/sudoers" user_specifications: - users: - <user_name> hosts: - <host_name> commands: - <path_to_command_binary>
Playbook で指定する設定は次のとおりです。
users
- ルールを適用するユーザーのリスト。
hosts
-
ルールを適用するホストのリスト。すべてのホストの場合は
ALL
を使用できます。 commands
ルールを適用するコマンドのリスト。すべてのコマンドの場合は
ALL
を使用できます。Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.sudo/README.md
ファイルを参照してください。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
管理対象ノードで、Playbook によって新しいルールが適用されたことを確認します。
# cat /etc/sudoers | tail -n1 <user_name> <host_name>= <path_to_command_binary>
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.sudo/README.md
ファイル -
/usr/share/doc/rhel-system-roles.sudo/sudo/
ディレクトリー