Ansible Facts
Facts는 Ansible이 관리 대상 호스트(Managed Node)에서 자동으로 수집하는 시스템 정보입니다.
Facts 수집 방식 개요
Ansible에서 Facts를 수집하는 방법은 크게 두 가지입니다.
- gather_facts : 플레이북 실행 시 자동 수집
- setup 모듈 : 필요할 때 수동 수집 (Ad-hoc / 태스크)
gather_facts 사용 (플레이북 방식)
플레이북 편집
vim gather_facts_playbook.yml
---
- name: Gather Facts
hosts: all
gather_facts: true # 기본값이지만 명확성을 위해 여기에 지정합니다.
tasks:
- name: Display gathered facts
debug:
var: ansible_facts
이 플레이북은 모든 호스트에서 Facts를 수집하고, 수집된 Facts를 출력하는 역할을 합니다.
ansible_facts 변수에는 각 호스트에서 수집된 모든 Facts가 포함되어 있습니다.
Facts는 기본적으로 Ansible에 의해 수집되므로 별도로 설정하지 않아도 됩니다.
gather_facts: true는 플레이북에서 Facts 수집을 활성화하는 옵션입니다. 따라서 대부분의 플레이북은 이 옵션을 설정하지 않아도 됩니다.
플레이북 실행
ansible-playbook -i inventory/hosts.ini gather_facts_playbook.yml --limit centos7
PLAY [Gather Facts] ************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************
ok: [centos7]
TASK [Display gathered facts] **************************************************************************************
ok: [centos7] => {
"ansible_facts": {
"all_ipv4_addresses": [
"192.168.10.62",
"192.168.56.62"
],
...
"virtualization_tech_host": [],
"virtualization_type": "virtualbox"
}
}
PLAY RECAP *********************************************************************************************************
centos7 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Ad-hoc 명령어로 Facts 수집
gather_facts 모듈 사용
ansible -i inventory/hosts.ini centos7 -m gather_facts
centos7 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.10.62",
"192.168.56.62"
],
...
"changed": false,
"deprecations": [],
"warnings": []
}
내부적으로는 setup 모듈을 호출합니다.
setup 모듈 사용 (가장 명확한 방식)
ansible -i inventory/hosts.ini centos7 -m setup
centos7 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.10.62",
"192.168.56.62"
],
...
"module_setup": true
},
"changed": false
}
setup 모듈 특징
- Facts 수집 전용 모듈
- 필요한 시점에 명시적으로 호출 가능
- gather_facts: false 환경에서도 사용 가능
gather_facts와 setup의 역할과 몇 가지 차이점
gather_facts
- gather_facts는 플레이북 수행 시 Ansible이 자동으로 호스트에서 정보를 수집하도록 하는 옵션입니다.
- 기본적으로 gather_facts가 활성화되어 있으면 플레이북이 실행되기 전에 각 호스트에서 Ansible이 Facts를 수집합니다.
- 수집된 정보는 ansible_facts라는 변수에 저장되어 플레이북에서 참조할 수 있습니다.
setup 모듈
- setup 모듈은 플레이북 내에서 명시적으로 호스트의 정보를 수집하도록 하는 모듈입니다.
- setup 모듈은 gather_facts와 별도로 사용될 수 있으며 필요한 경우에 수동으로 호출하여 정보를 갱신할 수 있습니다.
따라서 기본적으로 gather_facts가 활성화되어 있으면 자동으로 Facts가 수집되며, 필요한 경우에는 명시적으로 setup 모듈을 사용하여 수동으로 수집할 수 있습니다. gather_facts가 비활성화된 경우에는 setup 모듈을 사용하여 정보를 수집해야 합니다.
참고URL
- Ansible Documentation : Ansible facts
- Ansible Documentation : Special Variables - Magic variables
'리눅스' 카테고리의 다른 글
| [draft] Ansible에서 사용자 정의 Facts 정의하고 사용하는 방법 (0) | 2026.03.02 |
|---|---|
| [draft] Ansible 팩트 변수와 매직 변수 (0) | 2026.03.01 |
| [draft] Ansible을 초기 구성하는 방법 (0) | 2026.03.01 |
| [draft] Ansible 인벤토리를 YAML 파일로 설정하는 방법 (0) | 2026.03.01 |
| [draft] MySQL General Log를 삭제하는 방법 (0) | 2026.03.01 |