본문 바로가기

리눅스

ansible 팩트 변수와 매직 변수

반응형

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에 의해 자동으로 수집되는 변수

  1. hostvars
    • hostvars는 현재 실행 중인 플레이북에서 사용 가능한 모든 호스트의 변수를 포함하는 딕셔너리입니다.
    • 각 호스트의 변수는 호스트의 이름을 키로 사용하여 접근할 수 있습니다.
    • 예를 들어, hostvars['hostname']['ansible_distribution']와 같이 사용하여 특정 호스트의 팩트 변수에 접근할 수 있습니다.
  2. group_names
    • group_names는 현재 호스트가 속한 그룹의 이름을 나타내는 리스트입니다.
    • 한 호스트는 여러 그룹에 속할 수 있으므로 group_names는 여러 개의 요소를 가질 수 있습니다.
    • 플레이북에서 특정 그룹에 속한 호스트를 선택하거나 그룹별로 작업을 수행하는 데 유용하게 사용됩니다.
  3. groups
    • groups는 모든 그룹과 해당 그룹에 속한 호스트의 정보를 포함하는 딕셔너리입니다.
    • 각 그룹은 그룹의 이름을 키로 사용하여 접근할 수 있고, 그룹에 속한 호스트의 리스트를 값으로 가지게 됩니다.
    • 예를 들어, groups['webservers']는 'webservers' 그룹에 속한 호스트들의 리스트를 제공합니다.
  4. inventory_hostname
    • inventory_hostname은 현재 호스트의 인벤토리에서 정의된 이름을 나타냅니다.
    • 인벤토리 파일에서 호스트의 이름을 지정할 때 사용되는 이름입니다.
    • 이 변수는 플레이북 실행 중에 현재 호스트의 실제 이름을 참조하는 데 사용됩니다.

매직변수 확인

ansible localhost -m debug -a "var=hostvars['localhost']"

 

728x90
반응형