반응형
    
    
    
  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 |