[Ansible] Playbook Keyword (v 2.9)
Playbook Keywords
ㅁ 앤서블 플레이북에서 사용할 수 있는 키워드입니다.
ㅁ 키워드는 앤서블 동작 구성을 위한 여러 소스 중 하나입니다.
ㅁ 각 소스의 상대적 우선순위에 대한 내용은 아래 사이트에서 확인하세요.
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