ansible facts 란
ansible facts 는 remote host 에 대한 정보를 의미하며 배포판 종류, 버전, IP Address, file system 정보등을 포함합니다.
ansible 을 실행하면 자동으로 remote host 에 대한 정보를 수집하며 수집한 정보는 ansible_ 이라는 접두사를 붙여서 저장합니다.
다음 playbook 을 실행하면 원격 시스템에 대한 정보를 ansible_facts 변수에 저장한 후에 터미널에 출력합니다.
---
- name: gather facts
hosts: localhost
tasks:
- name: Print all available facts
ansible.builtin.debug:
var: ansible_facts
YML
$ ansible-playbook gather_facts.yml
PLAY [gather facts] ************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Print all available facts] ***********************************************
ok: [localhost] => {
"ansible_facts": {
"all_ipv4_addresses": [
p192.168.187.200"
],
"all_ipv6_addresses": [
"fe80::b76f:65c7:7205:dcc2"
],
"ansible_local": {},
"apparmor": {
"status": "disabled"
},
BASH
setup 모듈
ansible 은 playbook 실행시 자동으로 fact 를 수집하고 저장합니다.
만약 playbook 을 작성하지 않고 간단하게 fact 만 출력하려면 builtin 모듈인 setup 을 사용하면 됩니다.
$ ansible -m setup localhost
BASH
특정 fact 만 알고 싶을 경우 pipe 로 연결해서 grep 을 실행하면 됩니다.
$ ansible -m setup localhost | grep distribution
"ansible_distribution": "CentOS",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "8",
"ansible_distribution_release": "Core",
"ansible_distribution_version": "8.0",
BASH
같이 보기
Ref