ansible setup 모듈로 facts 수집하기
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
$ 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" },
setup 모듈
ansible 은 playbook 실행시 자동으로 fact 를 수집하고 저장합니다.
만약 playbook 을 작성하지 않고 간단하게 fact 만 출력하려면 builtin 모듈인 setup 을 사용하면 됩니다.
$ ansible -m setup localhost
특정 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",