LabHub

Ansible 기초 · 변수와 팩트 · 퀴즈

퀴즈: 변수와 팩트

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 같은 이름의 변수가 롤 defaults, 그룹 변수, 명령줄 `-e` 세 곳에 있습니다. 최종적으로 쓰이는 값은?

    1. 정의가 충돌해 실행이 중단된다
    2. 롤 defaults
    3. 명령줄 -e
    4. 그룹 변수
  2. 롤을 만들 때 사용자가 덮어쓰기를 기대하는 값은 어디에 두어야 하나요?

    1. 롤의 `vars/main.yml`
    2. 플레이북 상단의 `vars:` 블록
    3. 롤의 `defaults/main.yml`
    4. 인벤토리의 `group_vars/all.yml`
  3. `gather_facts: false` 를 쓰는 실용적 이유는?

    1. 대상이 많을 때 수집 비용이 실행 시간의 큰 부분을 차지하기 때문
    2. 팩트에 담긴 호스트 정보가 로그로 새어 나갈 위험이 크기 때문
    3. 컨테이너나 가상 환경에서는 수집된 팩트를 신뢰할 수 없기 때문
    4. 팩트를 끄면 변수 우선순위에서 한 단계가 빠져 계산이 단순해지기 때문
  4. `register` 로 받은 결과를 다룰 때 흔한 실수는?

    1. register 를 플레이의 마지막 태스크에만 붙일 수 있다고 여겨 중간에 쓰지 않는 것
    2. register 변수가 같은 실행의 다음 플레이로는 넘어가지 않는다고 여겨 매번 다시 만드는 것
    3. 결과 객체 전체를 그대로 쓰고 필요한 필드(stdout 등)를 고르지 않는 것
    4. 결과가 통째로 문자열이라 여겨 정규식으로 stdout 을 다시 파싱하려 드는 것
  5. 장애 대응 중 `-e replicas=10` 으로 서비스를 살렸습니다. 그다음 반드시 해야 할 일은?

    1. 그 값을 저장소의 변수 파일에 반영하고 커밋한다
    2. extra vars 는 호스트에 남으므로 따로 할 일이 없다
    3. 인벤토리에서 그 호스트를 빼 다음 배포 대상에서 제외한다
    4. 플레이북에서 그 변수 정의를 지워 덮어쓰기를 막는다
  6. `set_fact` 로 만든 값의 특징은?

    1. 값이 플레이북 파일에 다시 기록돼 다음 실행에도 그대로 남는다
    2. 실행 중 계산되며 우선순위가 높아 대부분의 정의를 덮어쓴다
    3. 한 호스트에서 만든 값이 인벤토리의 모든 호스트에 자동으로 복제된다
    4. `gather_facts` 를 켠 플레이에서만 동작하며 끄면 무시된다