IaC/Ansible 이론

Ansible 구성 파일 | 우선 순위, 설정 확인, ansible-config

Greta Lee 2021. 7. 28. 07:25
SMALL

Ansible 구성 파일

Ansible 구성 파일은 Ansible의 작동 방식을 구성하는 파일입니다. Ansible 구성 파일에는 인벤토리 파일의 위치, 관리 노드에 연결하는 방법, 연결한 후의 작동 방법 등 무수히 많은 구성을 지정할 수 있습니다. 기본 Ansible 구성 파일의 위치는 /etc/ansible/ansible.cfg 이며, 변형된 INI 형식을 사용합니다.

 

변형된 INI 형식

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

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


1. Ansible 구성 파일 우선 순위

우선 순위가 높은 파일에 정의된 값이 이전에 정의된 값보다 우선합니다. 즉, 이미 정의된 값이 있더라도 그보다 우선 순위가 높은 파일에 정의된 값으로 적용됩니다.

 

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

 

① ANSIBLE_CONFIG 환경 변수

② 현재 디렉토리의 ansible.cfg

③ 홈 디렉토리의 ~/.ansible.cfg

④ /etc/ansible/ansible.cfg

 

현재 적용되는 구성 파일 확인

ansible --version

2. Ansible 작동 방식 제어 우선 순위

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

 

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

 

① -e 옵션에 지정한 변수

② 변수

③ 플레이북 키워드

명령의 옵션

Ansible 구성 파일


3. 일반적인 구성 파일 설정

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

- [defaults] 섹션

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

 

- [privilege_escalation] 섹션

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

4. 구성 파일 및 설정 확인

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

 

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

ansible-config view

 

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

ansible-config dump

◆ 출력컬러

- 기본 값 : 초록색

- 변경된 값 : 노란색

 

3) 설정 가능한 모든 설정 항목

ansible-config list

 

◆ 설정 가능한 모든 설정 항목

[Ansible Configuration Settings - Ansible Documentation]

https://docs.ansible.com/ansible/latest/reference_appendices/config.html

SMALL