반응형
1. playbook 반복문이란?
Playbook 반복문은 task를 n번 실행합니다. task 반복횟수는 loop필드에 정의한 리스트 인덱스 개수와 일치합니다.
2. 사용방법
예를 들어 아래 “Echo loop” task는 총 3번 실행됩니다. loop에 정의한 리스트 인덱스가 3개이기 때문입니다.
- name: Loop
hosts: localhost
tasks:
- name: Echo loop
ansible.builtin.debug:
msg: "{{ item }}"
loop:
- 1
- 2
- 3
task가 반복하면서 loop값을 참조하려면 “{{ item }}”을 사용합니다. task 반복횟수에 일치하는 loop 인덱스 값을 참조합니다. 위 예제를 실행하면 아래그림처럼 loop인덱스 순서대로 1,2,3 순서대로 화면에 출력됩니다.
3. 예전 반복문 사용방법
playbook loop은 2.5버전 이상부터 사용가능합니다. 2.5미만에서 반복문은 “with_”로 시작합니다.
4. 변수를 사용하여 반복문 사용
playbook 변수가 리스트 타입이면 반복문에 사용할 수 있습니다.
- name: Loop
hosts: localhost
vars:
pacages:
- 1
- 2
- 3
tasks:
- name: Echo loop
ansible.builtin.debug:
msg: "{{ pacages }}"
딕셔너리 리스트 타입 예제는 아래와 같습니다.
- name: Dictionary loop
hosts: localhost
vars:
file_list:
- filepath: /tmp/a.txt
filecontent: hello_world_a
- filepath: /tmp/b.txt
filecontent: hello_world_b
- filepath: /tmp/c.txt
filecontent: hello_world_c
tasks:
- name: Create file
ansible.builtin.lineinfile:
path: "{{ item.filepath }}"
line: "{{ item.filecontent }}"
create: true
mode: '0644'
loop: "{{ file_list }}"
반응형
'연재 시리즈' 카테고리의 다른 글
Ansible collection (0) | 2024.02.04 |
---|---|
Ansible 멱등성 (0) | 2024.01.20 |
Ansible playbook task 결과를 변수로 저장 (0) | 2024.01.20 |
Ansible playbook 파일을 사용하여 변수 정의 (0) | 2024.01.20 |
Ansible playbook 변수 (0) | 2024.01.20 |