1. 반복문
  2. 조건문
  3. handler
  4. 작업 오류 제어

1. 반복문

반복문이란?

loop 키워드를 사용해서 동일한 모듈을 사용하는 작업을 구현할 수 있어. 예시를 보면서 천천히 알아보자.

- name: mail server check
  service:
    name: postfix
    state: started
- name: mail server check2
  service:
    name: dovecot
    state: started

위 처럼 service 모듈을 두 번 사용하는 play 를 아래처럼 바꿔줄 수 있어

- name: mail server check
  service:
    name: "{{ item }}"
    state: started
  loop:
    - postfix
    - dovecot

loop 자체에도 변수를 넣을 수 있어

vars:
  mail_services:
    - postfix
    - dovecot
tasks:
  - name: mail server check
    service:
      name: "{{ item }}"
      state: started
    loop: "{{ mail_services }}"

또 각 항목을 Dictionary 형태로 구성할 수도 있어

- user:
    name: "{{ item['name'] }}"
    state: present
    groups: "{{ item['groups'] }}"
  loop:
    - name: user01
      groups: wheel
    - name: user02
      groups: root

반복문에서 Register 변수 사용하기

반복 실행되는 작업의 출력을 register 키워드를 사용해서 캡쳐할 수 있어.

- hosts: server1
  tasks:
   - name: user create
     yum:
       name: httpd
       state: present
     register: user_result
   - name: output
     debug:
       var: user_result

위 playbook 파일을 실행시키면 아래 출력을 볼 수 있어