DevOps/Ansible

[Ansible] Playbook Keyword (v 2.9)

`작은거인` 2020. 3. 4. 10:19

Playbook Keywords

ㅁ 앤서블 플레이북에서 사용할 수 있는 키워드입니다.

ㅁ 키워드는 앤서블 동작 구성을 위한 여러 소스 중 하나입니다.

ㅁ 각 소스의 상대적 우선순위에 대한 내용은 아래 사이트에서 확인하세요.

 

Controlling how Ansible behaves: precedence rules — Ansible Documentation

Controlling how Ansible behaves: precedence rules To give you maximum flexibility in managing your environments, Ansible offers many ways to control how Ansible behaves: how it connects to managed nodes, how it works once it has connected. If you use Ansib

docs.ansible.com

Note :
* 지시문의 별명은 여기에 반영되지 않으며 변경할 수 없습니다.
현재 키워드에 version_added 정보는 없다

* 일부 키워드는 객체 자체가 아닌 내부 객체에 대한 기본값을 설정한다.

 

Index

  • Play
  • Role
  • Block
  • Task

 

Play

any_errors_fatal

ㅁ 일부의 노드에서 에러가 발생한다면, 전체 태스크의 수행을 중단함

become

ㅁ 특권을 제공할지 말지를 결정함

become_exe

ㅁ 문서화되지 않음

become_flags

ㅁ 특권 제공 시에 전달하고 싶은 인자를 함께 제공함

become_method 

ㅁ 특권을 제공할 때 어떤 방법을 사용할지를 결정함 (예: sudo, su)

become_user

ㅁ 특권을 제공받을 특정 유저를 지정함
ㅁ 지정하지 않으면 root로 지정됨 

check_mode

ㅁ 정상적으로 동작하는지를 점검하고, 실제로 동작되지는 않음 
ㅁ 플레이에서 실행되는 check_mode를 'Dry Run'이라고 별칭 하여 부름

collections

ㅁ 문서화되지 않았다.

connection

ㅁ 노드에 접속하는 방법을 여러 가지의 방법을 제공함

debugger

ㅁ 여러 가지의 상황이 발생했을 때 디버그 할 수 있는 기능을 제공
ㅁ 상황별 옵션은 always, never, on_failed, on_unreachable, on_skipped이 존재
ㅁ 기존 strategy: debug에서 좀 더 옵션이 세분화됨

diff

ㅁ copy와 같은 모듈 실행 시에 전후를 비교하여 변경된 것을 화면에 표시해줌
ㅁ 보안적인 관점에서 'diff: no'를 선언하여 내부 내용을 보지 못하게 할 수 있음

environment

ㅁ 앤서블의 환경 설정을 추가
ㅁ 현재 설정되어 있는 환경 설정은 ansible_env를 통해서 확인이 가능함

fact_path

ㅁ 사용자의 지정 fact를 생성하는 파일이 위치한 디렉터리
ㅁ 실행 가능한 파일이거나 json 또는 ini 형식의 파일로 내용이 입력되어 있어야 함
ㅁ 해당 파일은 fact라는 확장자를 가지고 있어야 함

force_handlers

ㅁ 실행 중에 실패하더라도 통보된 핸들러 실행을 강제 종료 
ㅁ 플레이 자체가 실패하면 트리거 되지 않음

gather_facts

ㅁ 호스트에 대한 facts 수집하기 위해 자동으로 'setup' 작업을 실행할지 여부를 제어

gather_subset 

ㅁ 수집되는 facts 값 중에 일부를 필터 하여 수집하도록 함

gather_timeout

ㅁ facts를 수집하는 최소 응답 시간을 설정함

handlers 

ㅁ 문자 그대로 해석하면, 처리를 도와주는 사람
ㅁ 핸들러를 사용하지 않은 코드는 순차적으로 수행
ㅁ 핸들러를 사용하여 코드를 작성하면 특정 조건이 일치해야 동작 (변경 사항 발생, 전 단계가 정상인 경우)

hosts

ㅁ 호스트, 그룹, 호스트 패턴 목록 정의

ignore_errors

ㅁ 일부 태스크 작업이 실패하더라도, 해당 작업 실패를 무시하고 계속 태스크를 진행함

ignore_unreachable

ㅁ 일부 태스크의 연결이 실패하더라도, 해당 연결 실패를 무시하고 계속 태스크를 진행함 

max_fail_percentage

ㅁ 플레이가 실행되는 중에, 실패되는 비율에 따라 작업의 종류 여부를 결정
ㅁ 배포 작업 시에 일부만 배포되는 경우는 'max_fail_percentage: 0'으로 설정하여 1개 노드라도 실패하는 경우 진행하지 않도록 함

module_defaults

ㅁ 모듈의 사용할 때 기본 값을 설정함

name

ㅁ 플레이의 이름을 지정

no_log

ㅁ 주요한 정보가 표시되지 않도록 함

order

ㅁ 플레이가 실행되는 순서를 지정함

ㅁ 기본 값은 inventory이며 sorted, reverse_sorted, reverse_inventory, shuffle  옵션이 있음

port

ㅁ 접속 시에 사용하는 포트를 지정

post_tasks

ㅁ tasks 섹션 다음에 실행할 작업 정의

pre_tasks

ㅁ roles 섹션 이전에 실행할 작업 정의

remote_user

ㅁ 접속할 사용자를 지정함

roles

ㅁrole 목록을 정의

run_once

ㅁ 한 번만 실행되게 함

serial

ㅁ 한 번에 실행할 노드들의 수를 지정

strategy

ㅁ 실행하는 전략을 지정함
ㅁ 기본 값은 linear이며, 성능을 높이기 위해 free를 선택하기도 함

tags

ㅁ 플레이북을 실행할 때, '--tags'의 옵션을 이용하여 선택적으로 실행하도록 함

tasks

ㅁ roles 이후에 그리고 post_tasks 이전에 실행되는 메인 tasks 구문
ㅁ pre_tasks > roles > tasks > post_tasks 순서로 실행

throttle

ㅁ task, block, playbook 수준에서 실행되는 동시 작업 수를 제한

ㅁ fork, serial 설정과 무관하지만 해당 한계보다 높게 설정할 수 없음

ㅁ EX> fork 10, throttle 15로 설정된 경우 최대 10개의 호스트가 병렬로 작동

vars

ㅁ 플레이에서 사용할 변수를 선언함

vars_files

ㅁ 플레이에서 사용할 변수가 있는 파일의 위치를 지정함

vars_prompt

ㅁ 플레이에서 사용할 변수를 사용자에게 입력받아서 생성함

 

Role

any_errors_fatal

ㅁ 일부의 노드에서 에러가 발생한다면, 전체 태스크의 수행을 중단함

become

ㅁ 특권을 제공할지 말지를 결정함

become_exe

ㅁ 문서화되지 않음

become_flags

ㅁ 특권 제공 시에 전달하고 싶은 인자를 함께 제공함

become_method

ㅁ 특권을 제공할 때 어떤 방법을 사용할지를 결정함 (예: sudo, su)

become_user

ㅁ 특권을 제공받을 특정 유저를 지정함
ㅁ 지정하지 않으면 root로 지정됨 

check_mode

ㅁ 정상적으로 동작하는지를 점검하고, 실제로 동작되지는 않음 
ㅁ 플레이에서 실행되는 check_mode를 'Dry Run'이라고 별칭 하여 부름

collections

ㅁ 문서화되지 않았다.

connection ☆

ㅁ 노드에 접속하는 방법을 여러 가지의 방법을 제공함

debugger

ㅁ 여러 가지의 상황이 발생했을 때 디버그 할 수 있는 기능을 제공
ㅁ 상황별 옵션은 always, never, on_failed, on_unreachable, on_skipped이 존재
ㅁ 기존 strategy: debug에서 좀 더 옵션이 세분화됨

delegate_facts 

ㅁ 'delegate_to'를 사용할 때, facts를 함께 보내줄 것인지를 결정

delegate_to

ㅁ delegate의 의미처럼 작업을 다른 노드로 위임하기 위해 사용

diff

ㅁ copy와 같은 모듈 실행 시에 전후를 비교하여 변경된 것을 화면에 표시해줌
ㅁ 보안적인 관점에서 'diff: no'를 선언하여 내부 내용을 보지 못하게 할 수 있음

environment

ㅁ 앤서블의 환경 설정을 추가
ㅁ 현재 설정되어 있는 환경 설정은 ansible_env를 통해서 확인이 가능함

ignore_errors

ㅁ 일부 태스크 작업이 실패하더라도, 해당 작업 실패를 무시하고 계속 태스크를 진행함

ignore_unreachable

ㅁ 일부 태스크의 연결이 실패하더라도, 해당 연결 실패를 무시하고 계속 태스크를 진행함 

module_defaults

ㅁ 모듈의 사용할 때 기본 값을 설정함

name

ㅁ 롤의 이름을 지정

no_log 

ㅁ 플레이의 이름을 지정

port

ㅁ 플레이의 이름을 지정

remote_user

ㅁ 접속할 사용자를 지정함

run_once

ㅁ 한 번만 실행되게 함

tags

ㅁ 플레이북을 실행할 때, '--tags'의 옵션을 이용하여 선택적으로 실행하도록 함

throttle

ㅁ task, block, playbook 수준에서 실행되는 동시 작업 수를 제한
ㅁ fork, serial 설정과 무관하지만 해당 한계보다 높게 설정할 수 없음
ㅁ EX> fork 10, throttle 15로 설정된 경우 최대 10개의 호스트가 병렬로 작동

vars

ㅁ 플레이에서 사용할 변수를 선언함

when

ㅁ 조건이 맞는 경우에 실행

 

Block

always

ㅁ 에러가 발생하더라도 항상 실행되어야 하는 구문 
ㅁ 파이썬에서 'finally'와 유사한 기능

any_errors_fatal

ㅁ 일부의 노드에서 에러가 발생한다면, 전체 태스크의 수행을 중단함

become

ㅁ 일부의 노드에서 에러가 발생한다면, 전체 태스크의 수행을 중단함

become_exe

ㅁ 문서화되지 않음
become_flags

ㅁ 특권 제공 시에 전달하고 싶은 인자를 함께 제공함

become_method

ㅁ 특권을 제공할 때 어떤 방법을 사용할지를 결정함 (예: sudo, su)

become_user

ㅁ 특권을 제공받을 특정 유저를 지정함 
ㅁ 지정하지 않으면 root로 지정됨  

block

ㅁ 블록 구성 시에 가장 처음에 선언
ㅁ 파이썬에서 'try'와 유사한 기능을 제공

check_mode

ㅁ 정상적으로 동작하는지를 점검하고, 실제로 동작되지는 않음 
ㅁ 플레이에서 실행되는 check_mode를 'Dry Run'이라고 별칭 하여 부름

collections

ㅁ 문서화되지 않았다.

connection

ㅁ 노드에 접속하는 방법을 여러 가지의 방법을 제공함

debugger

ㅁ 여러 가지의 상황이 발생했을 때 디버그 할 수 있는 기능을 제공
ㅁ 상황별 옵션은 always, never, on_failed, on_unreachable, on_skipped이 존재
ㅁ 기존 strategy: debug에서 좀 더 옵션이 세분화됨

delegate_facts

'delegate_to'를 사용할 때, facts를 함께 보내줄 것인지를 결정

delegate_to

delegate의 의미처럼 작업을 다른 노드로 위임하기 위해 사용

diff

ㅁ copy와 같은 모듈 실행 시에 전후를 비교하여 변경된 것을 화면에 표시해줌
ㅁ 보안적인 관점에서 'diff: no'를 선언하여 내부 내용을 보지 못하게 할 수 있음

environment

ㅁ 앤서블의 환경 설정을 추가
ㅁ 현재 설정되어 있는 환경 설정은 ansible_env를 통해서 확인이 가능함

ignore_errors

ㅁ 일부 태스크 작업이 실패하더라도, 해당 작업 실패를 무시하고 계속 태스크를 진행함

ignore_unreachable

ㅁ 일부 태스크의 연결이 실패하더라도, 해당 연결 실패를 무시하고 계속 태스크를 진행함

module_defaults

ㅁ 모듈의 사용할 때 기본 값을 설정함

name

ㅁ 블록의 이름을 지정

no_log

ㅁ 주요한 정보가 표시되지 않도록 함

port

ㅁ 접속 시에 사용하는 포트를 지정

remote_user

ㅁ 접속할 사용자를 지정함

rescue

ㅁ 블록 구문의 실행 도중에 에러가 발생하는 경우에 실행되는 부분
ㅁ 파이썬에서 'except'와 유사한 기능을 제공

run_once

ㅁ 한 번만 실행되게 함

tags

ㅁ 플레이북을 실행할 때, '--tags'의 옵션을 이용하여 선택적으로 실행하도록 함

throttle

ㅁ task, block, playbook 수준에서 실행되는 동시 작업 수를 제한
ㅁ fork, serial 설정과 무관하지만 해당 한계보다 높게 설정할 수 없음
ㅁ EX> fork 10, throttle 15로 설정된 경우 최대 10개의 호스트가 병렬로 작동

vars

ㅁ 플레이에서 사용할 변수를 선언함

when

조건이 맞는 경우에 실행

 

Task

action

ㅁ 모듈을 호출하는 오래된 방법으로, 지금은 모듈 이름을 그대로 사용하는 것을 권장함

any_errors_fatal

Force any un-handled task errors on any host to propagate to all hosts and end the play.

args

ㅁ 인자를 태스크상에 추가하는 또 다른 방법이나, 더 이상 사용을 권고하지 않음

async 

ㅁ 실행해야 하는 다수의 태스크들을 비동기적으로 실행

become

ㅁ 특권을 제공할지 말지를 결정함

become_exe

ㅁ 문서화되지 않음

become_flags

ㅁ 특권 제공 시에 전달하고 싶은 인자를 함께 제공함

become_method

ㅁ 특권을 제공할 때 어떤 방법을 사용할지를 결정함 (예: sudo, su)

become_user

ㅁ 특권을 제공받을 특정 유저를 지정함 
ㅁ 지정하지 않으면 root로 지정됨  

changed_when

ㅁ 반복적인 태스크의 실행에도 결과를 변화 changed로 설정 가능
ㅁ shell, command의 커맨드 모듈 실행 결과에서 변화가 없음으로도 설정 가능
ㅁ 항상 핸들러가 동작하도록 작성 가능

check_mode

ㅁ 정상적으로 동작하는지를 점검하고, 실제로 동작되지는 않음 
ㅁ 플레이에서 실행되는 check_mode를 'Dry Run'이라고 별칭 하여 부름

collections

ㅁ 문서화되지 않았다.

connection

ㅁ 노드에 접속하는 방법을 여러 가지의 방법을 제공함

debugger

ㅁ 여러 가지의 상황이 발생했을 때 디버그 할 수 있는 기능을 제공
ㅁ 상황별 옵션은 always, never, on_failed, on_unreachable, on_skipped이 존재
ㅁ 기존 strategy: debug에서 좀 더 옵션이 세분화됨

delay

ㅁ 태스크의 실행을 지연시켜줌
ㅁ 일반적으로 until, retries와 함께 사용함

delegate_facts

ㅁ 'delegate_to'를 사용할 때, facts를 함께 보내줄 것인지를 결정

delegate_to

ㅁ delegate의 의미처럼 작업을 다른 노드로 위임하기 위해 사용

diffㅁ copy와 같은 모듈 실행 시에 전후를 비교하여 변경된 것을 화면에 표시해줌
ㅁ 보안적인 관점에서 'diff: no'를 선언하여 내부 내용을 보지 못하게 할 수 있음

environment

ㅁ 앤서블의 환경 설정을 추가
ㅁ 현재 설정되어 있는 환경 설정은 ansible_env를 통해서 확인이 가능함

failed_when

ㅁ 태스크가 성공적으로 수행되었음에도 실패 failed로 나타나게 함

ㅁ 실패라고 정의해야 할 필요가 있을 때 사용

ignore_errors

ㅁ 일부 태스크 작업이 실패하더라도, 해당 작업 실패를 무시하고 계속 태스크를 진행함

ignore_unreachable

ㅁ 일부 태스크의 연결이 실패하더라도, 해당 연결 실패를 무시하고 계속 태스크를 진행함

local_action

ㅁ 현재 실행되고 있는 localhost에서 작업이 수행되도록 함
ㅁ 'delegate_to: localhost'와 동일한 기능을 함

loop

ㅁ item 변수에 반복적으로 수행이 필요한 것을 치환하여 수행되도록 함

loop_control

ㅁ 다양한 조건의 루프 loop 수행을 위한 여러 가지 제어 조건을 제공함

module_defaults

ㅁ 모듈의 사용할 때 기본 값을 설정함

name

ㅁ 태스크의 이름

no_log

ㅁ 주요한 정보가 표시되지 않도록 함

notify

ㅁ 핸들러가 변화되었을 때 수행되는 구문

poll

ㅁ async의 동작 주기를 설정

port

ㅁ 접속 시에 사용하는 포트를 지정

register

ㅁ 태스크의 상태 및 모듈에서 생성된 반환 값을 저장하는 변수를 지정

remote_user

ㅁ 접속할 사용자를 지정함

retries

ㅁ until을 사용하여 여러 번 시도가 필요할 때 사용
ㅁ 일반적으로 until, delay가 함께 사용

run_once

ㅁ 한 번만 실행되게 함

tags

ㅁ 플레이북을 실행할 때, '--tags'의 옵션을 이용하여 선택적으로 실행하도록 함

throttle

ㅁ task, block, playbook 수준에서 실행되는 동시 작업 수를 제한
ㅁ fork, serial 설정과 무관하지만 해당 한계보다 높게 설정할 수 없음
ㅁ EX> fork 10, throttle 15로 설정된 경우 최대 10개의 호스트가 병렬로 작동

until

ㅁ 조건이 참이 될 때까지 수행됨
ㅁ 조건의 비교를 위해 retries를 사용하고, 비교 지연을 위해 delay와 함께 사용

vars

ㅁ 플레이에서 사용할 변수를 선언함

when

조건이 맞는 경우에 실행

with_<lookup_plugin>

ㅁ with 뒤에 나오는 이름을 자동으로 'lookup_plugin'에서 찾아서 loop처럼 반복적으로 수행해줌

 

출처:
http://www.yes24.com/Product/Goods/65306887
https://docs.ansible.com/ansible/latest/reference_appendices/playbooks_keywords.html#id2
 

Playbook Keywords — Ansible Documentation

© Copyright 2019 Red Hat, Inc. Last updated on Feb 17, 2020.

docs.ansible.com