Quiz: When the inventory is more than one file
한국어 원문으로 표시합니다.
-i a.ini -i b.ini 로 돌렸고 두 파일 모두 [web:vars] 에 app_port 를 다르게 적어 두었습니다. 결과는?
- 나중에 읽힌 b.ini 의 값이 이기고 a.ini 의 값은 아무 경고 없이 사라진다
- 같은 변수가 두 소스에 있으므로 인벤토리 해석 단계에서 충돌 오류가 난다
- 두 값이 목록으로 합쳐져 플레이북에서는 두 값을 모두 볼 수 있게 된다
- 먼저 읽힌 a.ini 의 값이 자리를 잡고 b.ini 의 값은 무시된다
inventory/ 디렉터리 안에 hosts.ini 를 넣고 -i inventory/ 로 돌렸는데 그 파일의 호스트가 하나도 보이지 않습니다. 가장 그럴듯한 원인은?
- 디렉터리 인벤토리는 YAML 만 읽으므로 INI 형식은 형식 자체가 지원되지 않는다
- 기본 무시 확장자 목록에 그 확장자가 들어 있어 디렉터리를 훑을 때 건너뛰어진다
- 디렉터리 안의 파일은 이름이 숫자로 시작해야 하며 그렇지 않으면 읽히지 않는다
- 같은 디렉터리에 group_vars 가 없으면 인벤토리 파일이 유효하지 않은 것으로 처리된다
인벤토리 파일의 [web:vars] 와 인벤토리 옆 group_vars/web.yml 이 같은 변수를 정의했습니다. 어느 쪽이 이기나요?
- 인벤토리 파일 안의 값이 더 가까운 자리이므로 언제나 그쪽이 이긴다
- 먼저 읽힌 쪽이 이기므로 파일 이름의 사전순에 따라 매번 달라진다
- group_vars 디렉터리의 값이 이기고 인벤토리 파일 안의 값은 나타나지 않는다
- 두 값이 딕셔너리로 병합되어 키 단위로 각각 살아남는다
한 호스트가 alpha 와 zulu 두 그룹에 속하고 둘 다 같은 변수를 정의합니다. 아무 설정도 하지 않았다면?
- 먼저 정의된 그룹이 이기므로 인벤토리 파일에 적힌 순서가 결과를 정한다
- 구성원 수가 더 적은 그룹이 더 좁은 것으로 보아 그쪽 값이 이긴다
- 어느 쪽이 이길지 정해져 있지 않아 실행할 때마다 값이 달라질 수 있다
- 사전순으로 병합해 뒤인 zulu 가 이기며, 그룹 이름을 바꾸면 승자도 바뀐다
ansible_group_priority 에 대한 설명으로 옳은 것은?
- 값이 작을수록 먼저 병합되어 이기며 group_vars 파일에 적는 것이 권장된다
- 값이 클수록 나중에 병합되어 이기고, 인벤토리 소스 안에 적어야 듣는다
- 부모와 자식 그룹 사이의 승패도 이 값으로 뒤집을 수 있어 깊이 규칙보다 세다
- 호스트 변수와 그룹 변수 사이의 우선순위를 바꾸는 데도 그대로 쓸 수 있다
web:&prod:!staging 패턴을 실행 전에 --list-hosts 로 확인하라고 권하는 가장 큰 이유는?
- 패턴에 없는 그룹 이름이 섞이면 플레이북이 시작할 때 오류로 멈추기 때문
- 교집합과 차집합은 적은 순서에 따라 결과가 달라져 매번 계산이 필요하기 때문
- 차집합에 든 호스트에는 팩트 수집이 먼저 돌아 실행 시간이 크게 늘기 때문
- 패턴에 맞는 호스트가 하나도 없어도 오류가 아니라 초록불로 끝나 버리기 때문