Ssoon
[ Part-2 ] 앤서블 기본 사용법 - 팩트 본문
CloudNet@ 가시다님이 진행하는 Ansible 101 Study
"앤서블로 시작하는 인프라 자동화" (한빛미디어) 로 진행
✅ 자동 변수 예약
- Facts
- 앤서블이 관리 호스트에서 자동으로 검색한 변수
- 호스트이름, 커널 버전, 네트워크 인터페이스 이름, 운영체제 버전, CPU 개수 ...
- 팩트에 의해 수집된 변수 값을 이용 ▶ 서비스 상태 확인
💠 팩트 사용하기
- 플레이북을 실행할 때 자동으로 팩트가 수집
- ansible_facts 변수를 통해 사용
- facts.yam 파일 생성 ▶ ansible.builtin.debug 모듈을 이용 ansible_facts 변수의 모든 내용 출력
- hosts: db
tasks:
- name: print all facts
ansible.builtin.debug:
var: ansible_facts
- ansible-playbook 실행
- tnode3-rocky.exp.com 에서 수집한 시스템 정보 확인
- 팩트를 통해 수집된 변수는 특정 값만 추출하여 사용 가능
- cp facts.yml facts1.yml
- hosts: db
tasks:
- name: print all facts
ansible.builtin.debug:
msg: >
the default ip4 address of {{ ansible_facts.fqdn }}
is {{ ansible_facts.default_ipv4.address }}
- ansible-playbook 실행
💠 변수로 사용할 수 있는 앤서블 팩트
팩트 | ansible_facts.*표기법 |
호스트명 | ansible_facts.hostname |
도메인 기반 호스트명 | ansible_facts.fqdn |
기본 ipv4 주소 | ansible_facts.default_ipv4.address |
네트워크 인터페이스 이름 목록 | ansible_facts.interface |
/dev/vda1 디스크 파티션 크기 | ansible_facts.device.vda.partitions.vda1.size |
dns 서버 목록 | ansible_facts.dns.nameservers |
현재 실행중인 커널 버전 | ansible_facts.kernel |
운영체제 종류 | ansible_facts.distribution |
- ansible_* 표기법 및 비활성화 설정
- cp facts1.yml facts2.yml
- hosts: db
tasks:
- name: print facts
ansible.builtin.debug:
msg: >
this node's host name is {{ ansible_hostname }}
and the ip is {{ ansible_default_ipv4.address }}
- ansible-playbook 실행
- ansible.cfg [default] 에 추가
inject_facts_as_vars = false
- ansible-playbook 실행 ▶ 에러 발생
💠 팩트 수집 끄기
- cp facts1.yml facts3.yml
- hosts: db
gather_facts: no
tasks:
- name: print all facts
ansible.builtin.debug:
msg: >
the default ip4 address of {{ ansible_facts.fqdn }}
is {{ ansible_facts.default_ipv4.address }}
- ansible-playbook 실행 ▶ 에러 발생
- 팩트를 수집하지 않았기 떄문에 팩트에서 수집한 변수 사용하려고 하면 에러 발생
- 매뉴얼한 방법으로 플레이북 팩트 수집 설정
- cp facts3.yml facts4.yml
- hosts: db
gather_facts: no
tasks:
- name: manually gather facts
ansible.builtin.setup:
- name: print all facts
ansible.builtin.debug:
msg: >
the default ip4 address of {{ ansible_facts.fqdn }}
is {{ ansible_facts.default_ipv4.address }}
- ansible-playbook 실행
💠 사용자 지정 팩트 만들기
- 관리 호스트의 로컬에 있는 /etc/ansible/facts.d 디렉터리 내에 '*.fact' 로 저장 ▶ 앤서블이 플레이북을 실행할 때 자동으로 팩트 수집
- /etc/ansible/facts.d/my-custom.fact 파일 생성
[packages]
web_package = httpd
ab_package =mariadb-server
[users]
user1 = ansible
user2 = ssoon
- cp facts4.yml facts5.yml
- facts5.yml 수정
- hosts: localhost
tasks:
- name: print local facts
ansible.builtin.debug:
var: ansible_local
- ansible-playbook 실행
'Ansible 101 Study' 카테고리의 다른 글
[ Part-2 ] 앤서블 기본 사용법 - 조건문 (0) | 2024.01.20 |
---|---|
[ Part-2 ] 앤서블 기본 사용법 - 반복문 (0) | 2024.01.15 |
[ Part-2 ] 앤서블 기본 사용법 - Ansible Vault (0) | 2024.01.13 |
[ Part-2 ] 앤서블 기본 사용법 - 변수 (0) | 2024.01.08 |
[ Part-2 ] 앤서블 기본 사용법 - 첫 번째 플레이북 작성하기 (0) | 2024.01.08 |
Comments