8/2

반복문

여러 파일을 생성하고 관리해야하는 경우, 여러 사용자를 생성해야하는 경우 반복을 통해 효과적으로 작업을 제어할 수 있다.

Ansible 2.4 까지는 with_* 사용

Ansible 2.5 부터는 loop 추가됨

지금 당장 with_* 키워드의 기능을 loop가 완전히 대체하는 것은 아니지만, 거의 대부분 loop에서도 유효

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b195866a-b330-43b8-a790-b9fd3b587f7b/Screenshot_from_2021-08-02_10-00-01.png

반복문에서 제공되는 목록을 참조하는 변수명은 항상 item이다.

loop는 모듈의 옵션이 아니라, 작업의 속성을 지정한 것으로 들여쓰기에 주의해야함

일부 모듈의 경우 매개 변수에 목록을 직접 전달할 수 있는 모듈이 있다. ex) apt, yum 같은 패키지 모듈

apt 모듈은 설치 패키지 이름을 리스트로 받을 수 있기 때문에 굳이 반복문을 사용할 필요 x

오히려 반복문을 사용하면 작업을 완료하는 시간이 오래걸린다.

사전이 목록으로 있는 변수의 경우, 변수를 참조하는 방법은 item.<dict_key> 형식으로 참조할 수 있다.

사전이 목록으로 있는 변수의 경우, 변수를 참조하는 방법은 item.<dict_key> 형식으로 참조할 수 있다.

여러개의 목록을 결합(데카르트 곱)하는것도 가능

여러개의 목록을 결합(데카르트 곱)하는것도 가능

인벤토리의 호스트 목록을 반복문을 이용해 가져오는것도 가능

인벤토리의 호스트 목록을 반복문을 이용해 가져오는것도 가능

조건문

플레이에서 변수의 값을 이용해 작업을 실행할 것인지 실행하지 않을 것인지 조건을 설정할 수 있다.

Ansible의 조건에 대한 표현식은 테스트 또는 필터를 사용할 수 있다.

조건문에서 변수를 참조 하더라도 변수명에 {{ }} 이중 중괄호를 사용하지 않는다.