설명
become_user만 지정해도 사용자 전환이 자동으로 켜지지는 않습니다. 다만 become은 상위 설정이나 변수에서 적용될 수 있으므로 작업에 보이는 한 줄만으로 실행 계정을 판단해서는 안 됩니다.
잠재적 영향
실행 계정을 오해하면 작업이 실패하거나 잘못된 계정 권한으로 변경을 수행할 수 있습니다.
해결 방법
전환이 필요한 플레이나 작업에는 대상 become_user와 become: true를 함께 명시하세요. 필요하지 않은 작업까지 권한을 확대하지 말고, 실제 적용 설정을 확인하세요.
예시
예시는 사용자 전환을 명시하는 방식을 보여 줍니다. 대상 계정과 전환 권한이 준비되어 있어야 하며, 실제 명령 실행 계정은 whoami로 확인할 수 있습니다.
변경 전
yaml
- hosts: localhost
name: become_user without become
become_user: bar
tasks:
- name: Simple hello
ansible.builtin.debug:
msg: hello
- hosts: localhost
tasks:
- name: become_user without become
ansible.builtin.command: whoami
become_user: mysql
changed_when: false
변경 후
yaml
- hosts: localhost
become_user: postgres
become: true
tasks:
- name: some task
ansible.builtin.command: whoami
changed_when: false