Ansible 에서 기본 권한 상승 방법 설정 방법

AnsibleBeginner
지금 연습하기

소개

Ansible 은 원격 시스템 관리를 간소화하는 강력한 자동화 도구입니다. Ansible 을 사용할 때는 플레이북을 안전하고 효율적으로 실행하기 위해 기본 권한 상승 방법을 이해하고 구성하는 것이 중요합니다. 이 자습서에서는 Ansible 에서 기본 권한 상승 방법을 설정하는 방법을 안내합니다.

권한 상승 이해

권한 상승은 Ansible 에서 중요한 개념으로, 대상 호스트에서 높은 권한으로 작업을 실행할 수 있도록 합니다. 특정 작업 (예: 소프트웨어 설치, 시스템 구성 변경, 서비스 관리) 을 수행하기 위해 관리자 또는 루트 레벨의 액세스 권한이 필요한 시스템을 관리할 때 특히 중요합니다.

Ansible 에서 기본 권한 상승 방법은 sudo입니다. 이를 통해 Ansible 플레이북은 대상 호스트에서 sudo 사용자의 권한으로 명령을 실행할 수 있습니다. 그러나 Ansible 은 대상 시스템의 요구 사항에 따라 su, pbrun, pfexec, doas, runas와 같은 다른 권한 상승 방법도 지원합니다.

Ansible 에서 권한 상승의 중요성을 이해하기 위해 다음 시나리오를 고려해 보겠습니다.

- hosts: webservers
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present

이 예제에서 Apache 웹 서버 설치 작업은 대상 호스트에서 관리자 권한이 필요합니다. 적절한 권한 상승 방법 없이 Ansible 플레이북을 실행하면 작업이 실패하고 웹 서버가 설치되지 않습니다.

Ansible 에서 기본 권한 상승 방법을 구성하면 각 개별 작업에 대해 권한 상승 방법을 지정할 필요 없이 높은 권한이 필요한 모든 작업이 성공적으로 실행되도록 보장할 수 있습니다.

기본 권한 상승 방법 구성

Ansible 에서 기본 권한 상승 방법을 구성하려면 Ansible 구성 파일 (일반적으로 ansible.cfg) 또는 플레이북에서 becomebecome_method 옵션을 사용할 수 있습니다.

ansible.cfg에서 구성

ansible.cfg 파일에 다음 구성을 사용하여 기본 권한 상승 방법을 설정할 수 있습니다.

[privilege_escalation]
become=yes
become_method=sudo

이 구성은 기본 권한 상승 방법을 sudo로 설정합니다. 대상 시스템의 요구 사항에 따라 become_method 값을 su, pbrun, pfexec, doas 또는 runas와 같은 다른 지원되는 방법으로 변경할 수 있습니다.

플레이북에서 구성

또는 Ansible 플레이북에서 플레이 또는 작업 수준에서 becomebecome_method 옵션을 사용하여 기본 권한 상승 방법을 직접 구성할 수 있습니다. 예를 들어:

- hosts: webservers
  become: yes
  become_method: sudo
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present

이 예제에서 becomebecome_method 옵션은 플레이 수준에서 설정됩니다. 즉, 플레이북의 모든 작업은 기본적으로 sudo 권한 상승 방법을 사용합니다.

특정 작업에 대해 다른 권한 상승 방법을 사용해야 하는 경우 작업 수준에서 becomebecome_method 옵션을 설정할 수도 있습니다.

- hosts: webservers
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present
      become: yes
      become_method: sudo

기본 권한 상승 방법을 구성하면 각 개별 작업에 대해 권한 상승 방법을 지정할 필요 없이 Ansible 플레이북이 적절한 권한으로 작업을 실행하도록 보장할 수 있습니다.

플레이북에서 권한 상승 적용

이제 Ansible 에서 기본 권한 상승 방법을 구성하는 방법을 이해했으므로, 플레이북에서 이를 어떻게 적용하는지 살펴보겠습니다.

플레이 수준의 권한 상승

앞서 언급했듯이, 플레이 수준에서 becomebecome_method 옵션을 설정하여 해당 플레이 내의 모든 작업에 기본 권한 상승 방법을 적용할 수 있습니다. 이는 높은 권한이 필요한 모든 작업이 성공적으로 실행되도록 보장하는 편리한 방법입니다.

- hosts: webservers
  become: yes
  become_method: sudo
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present
    - name: Start Apache service
      service:
        name: apache2
        state: started

이 예제에서 becomebecome_method 옵션은 플레이 수준에서 설정됩니다. 따라서 "Apache 웹 서버 설치" 및 "Apache 서비스 시작" 작업 모두 sudo 권한 상승 방법으로 실행됩니다.

작업 수준의 권한 상승

특정 작업에 대해 다른 권한 상승 방법을 사용해야 하는 경우 작업 수준에서 becomebecome_method 옵션을 설정할 수 있습니다. 이는 서로 다른 권한 수준이 필요한 작업이 혼합되어 있는 경우 유용합니다.

- hosts: webservers
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present
      become: yes
      become_method: sudo
    - name: Start Apache service
      service:
        name: apache2
        state: started
      become: yes
      become_method: su

이 예제에서 "Apache 웹 서버 설치" 작업은 sudo 권한 상승 방법을 사용하는 반면, "Apache 서비스 시작" 작업은 su 방법을 사용합니다.

Ansible 플레이북에서 적절한 수준에서 권한 상승을 적용함으로써 작업이 필요한 권한으로 실행되도록 보장하여 인프라 관리의 안정성과 보안성을 높일 수 있습니다.

요약

이 Ansible 튜토리얼에서는 원격 시스템의 원활하고 안전한 자동화에 필수적인 기본 권한 상승 방법을 구성하는 방법을 배웠습니다. 적절한 상승 방법을 이해하고 적용함으로써 Ansible 플레이북이 필요한 권한으로 실행되도록 보장하여 인프라를 더 효과적으로 관리하고 유지할 수 있습니다.