10.4. RHEL 시스템 역할을 사용하여 사용자 지정 sudoers 구성 적용
sudo
RHEL 시스템 역할을 사용하여 관리 노드에 사용자 지정 sudoers
구성을 적용할 수 있습니다. 이렇게 하면 구성 효율성을 개선하고 보다 세분화된 제어를 통해 어떤 호스트에서 어떤 명령을 실행할 수 있는지 정의할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/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>
플레이북에 지정된 설정은 다음과 같습니다.
사용자
- 규칙이 적용되는 사용자 목록입니다.
호스트
-
규칙이 적용되는 호스트 목록입니다. 모든 호스트에 대해
모두
사용할 수 있습니다. 명령
규칙이 적용되는 명령 목록입니다. 모든 명령에는
모두
사용할 수 있습니다.플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.sudo/README.md
파일을 참조하십시오.
플레이북 구문을 확인합니다.
$ ansible-playbook --syntax-check ~/playbook.yml
이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
$ ansible-playbook ~/playbook.yml
검증
관리 노드에서 플레이북이 새 규칙을 적용했는지 확인합니다.
# cat /etc/sudoers | tail -n1 <user_name> <host_name>= <path_to_command_binary>
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.sudo/README.md
file -
/usr/share/doc/rhel-system-roles.sudo/sudo/
directory