https://www.inflearn.com/course/ansible-%EC%8B%AC%ED%99%94
CH2. 플레이북을 동적으로 구성하기
ㅇ FACT(s)
- 앤서블 코어 또는 플레이북을 작성 시에 유용하게 사용할 수 있는 인자들을 미리 정의해 둠
- # ansible 192.168.1.101 -m setup
명령어를 통해 확인 가능
ㅇ WHEN
- 위 FACT를 통해 받은 host의 인자값과 WHEN을 통해 조건을 통해 실행시킬 수 있다.
- CentOS 는 YUM을 사용, Ubuntu는 apt 사용 등
ㅇ Include_tasks
- 조건문을 통해 구분할 경우, 파일내의 코드 길이가 너무 길어짐
- include_tasks 를 통해 yml를 추가하여 사용
=> 구조적으로 작성가능 (목적에 맞게, 조건에 맞게)
ㅇ If
- 운영체제가 여러개일때 최선이 when일까? IF도 있음
- 코드가 더 간결해지며, when의 경우 task가 여러번 실행되고 skip되나, if의 경우 하나의 task로 조절가능
ㅇ 중급과정에서 작성했던 코드를 다시 작성하는 시간
- {{ ansible_env.SSH_CLIENT }} => 192.168.1.10 54360 22 이렇게 나오는데
split()[0] 을 붙여서 IP만 추출
- 이외에는 inclue_tasks를 통해 정리