반응형
ansible 팩트 변수와 매직 변수
Ansible에서는 두 가지 유형의 변수를 사용할 수 있습니다.
팩트 변수(Fact Variables)
- 팩트 변수는 호스트 시스템, 네트워크, 운영 체제 등과 같은 호스트의 상태와 속성에 대한 정보를 저장합니다.
- 팩트 변수는 Ansible이 호스트에 연결하여 수집한 정보로 자동으로 설정됩니다.
- 예를 들어, ansible_distribution은 호스트의 배포판 이름을 나타내는 팩트 변수입니다.
- 팩트 변수는 ansible_facts 딕셔너리 안에 저장되어 있습니다.
- setup 모듈을 자동으로 실행, 시스템에서 발견된 정보를 가지고 변수처럼 사용할 수 있는 것이 바로 fact
팩트변수 확인
ansible localhost -m setup -a "filter=*내용*"
매직 변수(Magic Variables)
- 매직 변수는 특정 상황이나 작업에 대한 정보를 제공하기 위해 Ansible에서 제공하는 변수입니다.
- 매직 변수는 사용자가 직접 설정하지 않고 Ansible이 자동으로 설정합니다.
- 매직 변수는 특정 작업이나 플레이북 실행 중에 유용한 정보를 제공합니다.
- 예를 들어, ansible_play_hosts는 현재 플레이에서 실행되는 모든 호스트의 목록을 나타내는 매직 변수입니다.
- 매직 변수는 주로 제어 흐름, 반복, 조건 등을 구현하는 데 사용됩니다.
- ansible에 의해 자동으로 수집되는 변수
- hostvars
- hostvars는 현재 실행 중인 플레이북에서 사용 가능한 모든 호스트의 변수를 포함하는 딕셔너리입니다.
- 각 호스트의 변수는 호스트의 이름을 키로 사용하여 접근할 수 있습니다.
- 예를 들어, hostvars['hostname']['ansible_distribution']와 같이 사용하여 특정 호스트의 팩트 변수에 접근할 수 있습니다.
- group_names
- group_names는 현재 호스트가 속한 그룹의 이름을 나타내는 리스트입니다.
- 한 호스트는 여러 그룹에 속할 수 있으므로 group_names는 여러 개의 요소를 가질 수 있습니다.
- 플레이북에서 특정 그룹에 속한 호스트를 선택하거나 그룹별로 작업을 수행하는 데 유용하게 사용됩니다.
- groups
- groups는 모든 그룹과 해당 그룹에 속한 호스트의 정보를 포함하는 딕셔너리입니다.
- 각 그룹은 그룹의 이름을 키로 사용하여 접근할 수 있고, 그룹에 속한 호스트의 리스트를 값으로 가지게 됩니다.
- 예를 들어, groups['webservers']는 'webservers' 그룹에 속한 호스트들의 리스트를 제공합니다.
- inventory_hostname
- inventory_hostname은 현재 호스트의 인벤토리에서 정의된 이름을 나타냅니다.
- 인벤토리 파일에서 호스트의 이름을 지정할 때 사용되는 이름입니다.
- 이 변수는 플레이북 실행 중에 현재 호스트의 실제 이름을 참조하는 데 사용됩니다.
매직변수 확인
ansible localhost -m debug -a "var=hostvars['localhost']"
728x90
반응형
'리눅스' 카테고리의 다른 글
Ansible을 위한 기본 Bash 완성을 설치하는 방법 (0) | 2022.11.07 |
---|---|
docker build(Dockerfile) 경고 구문 (0) | 2022.11.03 |
파이썬 가상 환경을 구성하고 설정하는 방법(python virtual environment) (0) | 2022.11.03 |
CentOS 7에 Python 3와 pip3를 설치하기 (0) | 2022.11.03 |
[Ansible] ansible-playbook-openssl 정보 조회 (0) | 2022.11.03 |