728x90
반복문 (loop)
Playbook 에서 반복되는 작업을 수행하기 위해서 반복문을 사용할 수 있다.
반복문은 loop 로 표기한다. 주의할 점은 반복문은 작업의 하위 옵션이 아니라, 작업을 어떻게 제어할지에 대한 설정이므로 실행할 모듈과 같은 라인에 써주어야 한다 !
또한 다른 프로그래밍 언어와 다르게, Playbook 에서 loop 문을 사용할 때 list 를 참조하는 변수 명은 항상 item 으로 고정해서 사용한다.
반복문을 이용하여 간단하게 리스트를 출력해보는 플레이북 정의 파일이다.
- hosts: ansi-node1
tasks:
- debug:
msg: "{{ item }}"
loop: ["linux", "ubuntu", "window", "mac"]
다음과 같이 반복문에 사용할 리스트를 변수명으로 지정해줄 수도 있다. 동일한 결과가 출력된다.
- hosts: ansi-node1
vars:
computer_list:
- linux
- ubuntu
- window
- mac
tasks:
- debug:
msg: "{{ item }}"
loop: "{{ computer_list }}"
패키지 모듈
패키지 모듈의 경우 loop 문 을 사용하는 것 대신 list를 바로 매개 변수로 참조하여 쓸 수 있다. loop 문으로도 실행가능하지만, 매개변수로 바로 참조하여 작업을 수행하는 것이 더 효율적이다. 단 모든 모듈에서 지원하는 것이 아니라, yum, apt 같은 패키지 설치를 도와주는 모듈에서 지원하고 있다.
- hosts: ansi-node3
vars:
package_list:
- apache2
- firewalld
- python-mysqldb
- mysql-server
tasks:
- apt:
name: "{{ package_list }}"
state: present
update_cache: yes
728x90
'Cloud Engineering > Ansible' 카테고리의 다른 글
[Ansible] handler (핸들러) / block (블록) / delegate (위임) (0) | 2023.03.06 |
---|---|
[Ansible] 조건문 사용하기 - 문자열/버전/팩트변수/경로/파일/마운트 검사하기 (0) | 2023.03.06 |
[Ansible] Fact (팩트 변수) 란? (0) | 2023.03.02 |
[Ansible] Playbook 변수 사용하기 / vars_prompt / filter (필터) / lookup (조회) (0) | 2023.02.28 |
[Ansible] Playbook (플레이북) 이란? (0) | 2023.02.28 |