Ansible/02. Ansible 기본

[Ansible] 구성 파일 ansible.cfg

Jaden Park 2021. 7. 21. 18:43

구성파일 이란?

구성파일 우선 순위

작동 방식 제어 우선 순위

일반적인 구성 파일 설정

구성 파일 설정 확인


구성파일 이란?

구성 파일은 Ansible의 작동 방식을 구성하는 파일 입니다.

Ansible 구성 파일에는 인벤토리 파일의 위치, 관리 노드에 연결하는 방법, 연결 한 후 작동 방법 등 무수히 많은 구성을 지정할 수 있습니다.

기본 Ansible 구성 파일의 위치는 /etc/ansible/ansible.cfg 파일이며, 변형된 INI 형식을 사용합니다.

 

주석이 줄 처음부터 시작할 때           -> # or ; 모두 주석 표시에 사용 가능

일반 값과 함께 주석을 사용할 경우   -> ; 만 사용 가능

ex)

# This points to the file that lists your hosts

inventory = /etc/ansible/hosts ; This point to the file that lists your hosts

 


구성파일 우선 순위

구성 파일을 적용하는데는 순위가 있습니다.

우선 순위가 높은 파일에 정의된 값이 우선시된다.

 

구성 파일의 우선순위는 다음과 같다.

  1. ANSIBLE_CONFIG 환경 변수
  2. 현재 디렉토리의 ansible.cfg
  3. 홈 디렉토리의 ~/.ansible.cfg
  4. /etc/ansible/ansible.cfg

 

현재 적용되는 구성 파일의 확인은 아래와 같습니다.

$ ansible --version

 


작동 방식 제어 우선 순위

Ansible 작동 방식을 제어하기 위해 Ansible 구성 파일 외에도 ansible 명령의 옵션, 플레이북 키워드, 변수를 이용해 동작을 제어할 수 있습니다.

 

우선 순위가 높은 파일에 정의된 값이 이전 정의된 값보다 우선시됩니다.

다음은 작동 방식 제어를 위한 카테고리의 우선 순위입니다.

  1. -e 옵션에 지정된 변수
  2. 변수
  3. 플레이북 키워드
  4. 명령의 옵션
  5. Ansible 구성 파일

일반적인 구성 파일 설정

Ansible 구성 파일은 [section] 대괄호로 묶여진 여러 섹션(분류)가 있습니다.

각 섹션에는 키 = 값 으로 설정된 설정이 포함됩니다.

 

[defaults]
inventory = ./inventory.ini
remote_user = vagrant
ask_pass = false
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false

[default] 섹션

  • inventory: 인벤토리 파일의 위치 (기본: /etc/ansible/ansible.cfg)
  • remote_user: SSH 인증하기 위한 사용자 (기본: 현재 사용자)
  • ask_pass: SSH 인증하기 위한 패스워드 요청/입력 여부 (기본: false)

 

[privilege_escalation] 섹션

  • become: 권한 상승 여부 (기본: false)
  • become_method: 권한 상승 방법 (기본: sudo)
  • become_user: 권한 상승할 사용자 (기본: root)
  • become_ask_pass: 권한 상승 방법의 패스워드 요청/입력 여부 (기본: false)

 


구성 파일 설정 확인

 

구성 파일은 직접 확인하는 방법도 있지만 ansible-config 명령을 이용해 구성 파일 및 설정에 대해 확인할 수 있습니다.

 

 

현재 적용된 구성 파일의 내용 확인

ansible-config view

 

 

 

 

현재 적용된 모든 구성 정보 확인

ansible-config dump

 

 

 

설정 가능한 모든 설정 항목

ansible-config list

 

자세한 내용은 Ansible doc 참고

'Ansible > 02. Ansible 기본' 카테고리의 다른 글

[Ansible] 인벤토리(Inventory) 란?  (0) 2021.07.20