Skip to Content
Ansible: 시작부터 끝까지, 3판
book

Ansible: 시작부터 끝까지, 3판

by Bas Meijer, Lorin Hochstein, René Moser
May 2025
Beginner to intermediate
472 pages
7h 11m
Korean
O'Reilly Media, Inc.
Book available
Content preview from Ansible: 시작부터 끝까지, 3판

10장. 복잡한 플레이북

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

이전 장에서는 메자닌 CMS를 배포하기 위한 모든 기능을 갖춘 Ansible 플레이북을 살펴봤습니다. 그 예에서는 몇 가지 일반적인 Ansible 기능을 사용했지만 모든 기능을 다루지는 않았습니다. 이 장에서는 이러한 다른 기능에 대해 다루기 때문에 다소 포괄적입니다.

잘못된 동작 명령 처리하기

7장에서 예제 10-1에 표시된 사용자 지정 createdb manage.py 명령을 호출하지 않은 이유는 호출이 무력화되지 않았기 때문입니다.

예 10-1. 전화 걸기 django manage.py createdb
- name: Initialize the database
  django_manage:
    command: createdb --noinput --nodata
    app_path: "{{ proj_path }}"
    virtualenv: "{{ venv_path }}"

우리는 이 문제를 해결하기 위해 createdb 과 동등한 기능을 하는 django manage.py 명령을 여러 개 호출하여 이 문제를 해결했습니다. 하지만 동등한 명령을 호출할 수 있는 모듈이 없다면 어떻게 해야 할까요? 정답은 changed_whenfailed_when 절을 사용하여 작업의 상태가 변경되었거나 실패했음을 Ansible이 감지하는 방법을 변경하는 것입니다.

이 명령이 처음과 두 번째로 실행될 때 이 명령의 출력을 이해했는지 확인해 보겠습니다.

5장에서 실패한 작업의 출력을 캡처하려면 register 절을 추가하여 출력을 변수에 저장하고 failed_when: false 절을 추가하여 모듈이 실패를 반환하더라도 실행이 중지되지 않도록 합니다. 그런 다음 예제 10-2와 같이 변수를 출력하는 debug 태스크를 추가하고 마지막으로 플레이북 실행이 중지되도록 fail 절을 추가합니다.

예 10-2. 작업의 출력 보기
- name: Initialize the database
  django_manage:
    command: createdb --noinput --nodata
    app_path: "{{ proj_path }}"
    virtualenv: "{{ venv_path }}"
  failed_when: false
  register: result

- debug: var=result

- fail:

을 한 번 더 호출했을 때 플레이북의 출력은 예제 10-3에 나와 있습니다.

예제 10-3. 데이터베이스가 이미 생성된 경우 반환되는 값
 TASK [debug] ******************************************************************* ok: [web] ==> { "result": { "changed": false, "cmd": "./manage.py createdb --noinput --nodata", "failed": false, "failed_when_result": ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Kubernetes 오퍼레이터

Kubernetes 오퍼레이터

Jason Dobies, Joshua Wood

Publisher Resources

ISBN: 9798341653900Supplemental Content