Ansible 기초 · 플레이북 기본 · 퀴즈
퀴즈: 플레이북 기본
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`command` 모듈로 만든 태스크가 매번 changed 로 보고되는 이유는?
- 명령이 항상 0 이 아닌 종료 코드를 내기 때문
- SSH 연결이 매번 새로 열리기 때문
- Ansible 의 버그로 알려져 있다
- 명령의 실행 전후 상태를 모듈이 알 수 없기 때문
`--check` 모드에 대한 설명으로 옳은 것은?
- 모든 모듈이 점검 모드를 구현하고 있어 출력된 변경 목록이 실제 실행 결과와 언제나 일치한다
- 변경을 실제로 적용해 본 뒤 플레이가 끝날 때 자동으로 되돌려 원래 상태로 복구한다
- 모듈이 점검 모드를 지원할 때만 정확하며, 앞 태스크 결과에 의존하는 뒤 태스크는 어긋날 수 있다
- 대상에 접속하지 않고 플레이북의 YAML 문법과 모듈 인자 오류만 미리 검사한다
`lineinfile` 에 `regexp` 를 주지 않으면 생기는 문제는?
- 대상 파일의 소유자와 권한이 모듈 기본값으로 덮어써져 초기화된다
- 필수 인자가 빠졌다는 오류를 내며 태스크가 그 자리에서 중단된다
- 파일 전체가 line 에 적은 한 줄로 덮어써져 기존 내용이 사라진다
- 일치하는 줄을 찾지 못해 실행할 때마다 줄이 새로 추가될 수 있다
태그를 이용한 부분 실행의 위험은?
- 태스크 하나에는 태그를 하나만 붙일 수 있어 분류가 금세 한계에 부딪힌다
- `--tags` 로 실행하면 핸들러는 태그를 받지 못해 통지돼도 발화하지 않는다
- `--syntax-check` 가 태그 붙은 태스크만 검사해 나머지 오류를 놓친다
- 전체를 실행한 적이 없는 플레이북이 생겨 뒤늦게 처음 보는 오류가 난다
여러 호스트에 플레이를 돌릴 때 실행 순서로 옳은 것은?
- 호스트와 태스크 모두 매 실행마다 무작위 순서로 섞여 진행된다
- 태스크 하나를 모든 호스트에서 끝낸 뒤 다음 태스크로 간다
- 가장 빨리 끝난 호스트가 먼저 다음 태스크로 넘어가며 순서를 끌고 간다
- 호스트 하나에서 전체 태스크를 끝까지 마친 뒤 다음 호스트로 넘어간다
모든 태스크에 name 을 다는 가장 실용적인 이유는?
- 사고 시 사람이 읽는 것은 코드가 아니라 실행 로그이기 때문
- name 이 없는 태스크는 파서가 건너뛰어 아예 실행되지 않기 때문
- 태스크가 name 의 사전 순서대로 정렬돼 실행 순서를 정하기 때문
- name 을 붙여야 그 태스크 안에서 변수와 팩트를 참조할 수 있기 때문