연재 시리즈

playbook 반복문

악분 2024. 1. 20. 16:04
반응형

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