Ansible become 설정의 실행 의도 확인

사용자 전환의 대상과 활성화 범위를 함께 명확히 하세요.

설명

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

참조