Ansible 실전 · 조건과 반복 · 퀴즈
퀴즈: 조건과 반복
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`loop` 와 `when` 을 함께 쓰면 조건은 언제 평가되나요?
- 반복이 모두 끝난 뒤
- 첫 항목에서만
- 반복 시작 전 한 번
- 반복의 각 항목마다
`loop_control.label` 을 지정하지 않으면 생기는 실질적 문제는?
- label 이 없으면 반복이 첫 항목에서 끝나 한 번만 돌고 만다
- 태스크 본문에서 `item` 변수를 참조할 수 없어 값을 못 쓴다
- 항목 딕셔너리 전체가 로그에 찍혀 그 안의 민감한 값까지 노출된다
- 항목마다 붙인 `when` 조건이 무시되고 전부 실행된다
`until`/`retries`/`delay` 를 쓸 때 함께 해야 할 판단은?
- until 은 loop 와 함께 쓸 때만 동작하므로 반복 목록을 먼저 만든다
- 재시도 횟수는 넉넉할수록 안전하므로 상한을 최대한 크게 잡아 둔다
- delay 는 기본값인 1초를 유지해야 재시도가 정상 동작한다
- '이 시간 안에 안 되면 진짜 문제'라는 기준을 정해 횟수와 간격에 반영한다
환경 3개 × 컴포넌트 2개 × 리전 5개를 조합 반복하면 몇 번 도나요? 그리고 그 함의는?
- 5회, 가장 긴 리스트의 길이에 맞춰 나머지가 잘린다
- 호스트 수에 따라 달라지므로 횟수가 미리 정해지지 않는다
- 10회, 리스트 길이의 합이므로 부담이 크지 않다
- 30회, 실행 시간과 로그가 곱으로 늘어나므로 계산에 넣어야 한다
파일 패턴 조회(fileglob)의 결과를 다룰 때 주의할 점은?
- 결과가 항상 파일 이름 알파벳 순으로 정렬돼 오므로 그대로 써도 된다
- 결과 순서가 보장되지 않으므로 순서에 의존하지 말고 필요하면 정렬한다
- 제어 노드가 아니라 원격 호스트의 파일만 조회하므로 경로를 맞춘다
- 패턴에는 와일드카드를 쓸 수 없어 파일 이름을 전부 적어야 한다
반복 태스크가 멱등하지 않을 때 나타나는 증상은?
- 첫 실행에서 중간 항목부터 오류가 나며 반복 태스크가 통째로 실패한다
- loop 변수가 앞 항목의 값을 그대로 물고 있어 초기화되지 않는다
- 두 번째 실행에서 반복 횟수만큼 changed 가 나 재실행이 안전하지 않게 된다
- 통지를 받은 핸들러가 반복 항목 수만큼 되풀이해 발화하며 서비스를 흔든다