Ansible 레퍼런스: 모듈 유틸리티

Ansible 레퍼런스: 모듈 유틸리티 (Ansible Reference: Module Utilities)

이 페이지는 Python으로 Ansible 모듈을 작성할 때 유용한 유틸리티를 문서화해요. 모듈을 빠르게 만들 수 있게 해주는 AnsibleModule 클래스부터, 매개변수를 검증하는 Argument Spec, 그리고 관련 예외 클래스까지 정리했어요.

출처: 문서

본문

이 페이지는 Python으로 Ansible 모듈을 작성할 때 도움이 되도록 설계된 유틸리티를 문서화해요.

AnsibleModule

이 기능을 사용하려면 모듈에 from ansible.module_utils.basic import AnsibleModule을 포함하세요.

class ansible.module_utils.basic.AnsibleModule(argument_spec, bypass_checks=False, no_log=False, mutually_exclusive=None, required_together=None, required_one_of=None, add_file_common_args=False, supports_check_mode=False, required_if=None, required_by=None)

Python으로 Ansible 모듈을 빠르게 구축하기 위한 공통 코드예요(JSON을 반환할 수 있으면 어떤 것으로도 모듈을 작성할 수 있지만요).

일반적인 소개는 '모듈 개발하기' 문서를, 더 자세한 설명은 'Ansible 모듈 아키텍처' 문서를 참고하세요.

add_path_info(kwargs)

결과가 파일인 경우, 반환 경로의 파일 정보에 그 파일 경로에 대한 stats를 보완해요.

atomic_move(src, dest, unsafe_writes=False, keep_dest_attrs=True)

src를 dest로 원자적으로 이동하며 dest에서 속성을 복사해요. 성공하면 true를 반환해요. 원자적 연산이 되도록 os.rename을 사용하고, 나머지 함수는 제한·코너 케이스를 우회하고 가능하면 selinux 컨텍스트가 저장되도록 보장하기 위한 것이에요.

backup_local(fn)

지정된 파일의 날짜 표시 백업을 만들고, 성공 또는 실패에 따라 True 또는 False를 반환해요.

boolean(arg)

인자를 불리언으로 변환해요.

*deprecate(msg: str, version: str|None=None, date: str|None=None, collection_name: str|None=None, , deprecator: PluginInfo|None=None, help_text: str|None=None) → None

모듈 결과와 함께 반환될 deprecation 경고를 기록해요. 대부분의 호출자는 collection_name이나 deprecator를 제공할 필요가 없어요. 필요하다면 하나만 제공하세요. version 또는 date 중 하나만 지정하세요(둘 다는 안 됨). date가 문자열이면 YYYY-MM-DD 형식이어야 해요.

digest_from_file(filename, algorithm)

이름으로 지정된 digest_method에 대한 로컬 파일의 16진수 다이제스트를 반환해요. 파일이 없으면 None을 반환해요.

*error_as_warning(msg: str|None, exception: BaseException, , help_text: str|None=None) → None

예외를 경고로 표시해요.

**exit_json(kwargs) → NoReturn

오류 없이 모듈에서 반환해요.

**fail_json(msg: str, *, exception: BaseException|str|None=, kwargs) → NoReturn

오류 메시지와 선택적 예외/traceback 세부 정보로 모듈에서 반환해요. traceback은 오류 traceback 캡처가 활성화된 경우에만 결과에 포함돼요.

exception이 예외 객체일 때, 그 메시지 체인은 최종 오류 메시지를 만들기 위해 msg와 자동으로 결합돼요. 메시지 체인에는 예외의 메시지와 __cause__ 예외들의 메시지가 포함돼요. exception의 traceback이 형식화된 traceback으로 사용돼요.

exception이 문자열이면 형식화된 traceback으로 사용돼요. exception이 None으로 설정되면 현재 호출 스택이 형식화된 traceback으로 사용돼요. exception이 지정되지 않으면 현재 예외에서 형식화된 traceback을 가져와요. 보류 중인 예외가 없으면 현재 호출 스택을 대신 사용해요.

find_mount_point(path)

경로를 받아 해당 마운트 지점을 반환해요.

매개변수: path – 파일시스템 경로가 있는 문자열 타입 반환: 텍스트 타입의 마운트 지점 경로

get_bin_path(arg, required=False, opt_dirs=None)

PATH에서 시스템 실행 파일을 찾아요.

매개변수:

  • arg – 찾을 실행 파일.
  • required – 실행 파일을 찾지 못했고 required가 True면 fail_json.
  • opt_dirs – PATH 외에 추가로 검색할 선택적 디렉토리 목록.

반환: 찾으면 전체 경로를 반환하고, 그렇지 않으면 원래 arg를 반환해요. 다만 'warning'이면 None을 반환해요.

발생(Raises): Sysexit: arg를 찾지 못했고 required=True일 때(fail_json 통해).

is_executable(path)

주어진 경로가 실행 가능한가요?

매개변수: path – 확인할 파일의 경로.

제한 사항:

  • FSACL을 고려하지 않아요.
  • 대부분의 경우 우리는 '현재 사용자가 이 파일을 실행할 수 있는가'를 알고 싶어요. 이 함수는 실행 비트가 설정되어 있는지만 알려줄 뿐 그걸 알려주지 않아요.

is_special_selinux_path(path)

주어진 경로가 NFS 또는 다른 '특수' fs 마운트 지점에 있으면 (True, selinux_context)를 포함한 튜플을 반환하고, 그렇지 않으면 (False, None)을 반환해요.

load_file_common_arguments(params, path=None)

많은 모듈이 파일을 다뤄요. 이 함수는 file 모듈이 받는 공통 옵션을 캡슐화해서 모든 모듈이 직접 사용할 수 있고 코드를 공유할 수 있게 해줘요. path를 제공하면 path/dest 모듈 인자를 덮어쓸 수 있어요.

md5(filename)

digest_from_file()을 사용해 로컬 파일의 MD5 16진수 다이제스트를 반환해요.

다음 경우가 아니면 이 함수를 사용하지 마세요:

  • 선택적 하위 호환성
  • 타사 프로토콜과의 호환성

이 함수는 FIPS-140-2를 준수하는 시스템에서는 동작하지 않아요. 이 함수의 대부분의 용도는 module.sha1 함수로 대신할 수 있어요.

preserved_copy(src, dest)

소유권, 권한, 컨텍스트를 보존하며 파일을 복사해요.

run_command(args, check_rc=False, close_fds=True, executable=None, data=None, binary_data=False, path_prefix=None, cwd=None, use_unsafe_shell=False, prompt_regex=None, environ_update=None, umask=None, encoding='utf-8', errors='surrogate_or_strict', expand_user_and_vars=True, pass_fds=None, before_communicate_callback=None, ignore_invalid_cwd=True, handle_exceptions=True)

명령을 실행하고 rc, stdout, stderr를 반환해요.

이 메서드가 stdout과 stderr를 읽는 메커니즘은 CPython subprocess.Popen.communicate와 다르다는 점이 있어요. 이 메서드는 stdout/stderr가 닫힐 때까지 기다리는 대신, 생성된 명령이 종료되고 stdout과 stderr가 소비되면 읽기를 중지해요. 포크되거나 백그라운드된 프로세스가 생성된 명령보다 오래 stdout 또는 stderr를 열어두고 있을 수 있다는 점을 고려하면 이것은 중요한 차이예요.

매개변수:

  • args – 실행할 명령
    • args가 목록이면 shell=False로 명령이 실행돼요.
    • args가 문자열이고 use_unsafe_shell=False이면 args를 목록으로 나눠 shell=False로 실행해요.
    • args가 문자열이고 use_unsafe_shell=True이면 shell=True로 실행해요.

Kw check_rc: 0이 아닌 RC의 경우 fail_json을 호출할지 여부. 기본값 False.

Kw close_fds: subprocess.Popen() 문서를 참고. 기본값 True.

Kw executable: subprocess.Popen() 문서를 참고. 기본값 None.

Kw data: 주어진 경우, 명령의 stdin에 쓸 정보.

Kw binary_data: False이면 데이터에 줄바꿈을 추가. 기본값 False.

Kw path_prefix: 주어진 경우, 명령을 찾을 추가 경로. PATH 환경 변수에 추가되므로 같은 디렉토리의 도우미 명령도 찾을 수 있어요.

Kw cwd: 주어진 경우, 명령을 실행할 작업 디렉토리.

Kw use_unsafe_shell: args 매개변수를 참고. 기본값 False.

Kw prompt_regex: 실행이 멈추게 할 stdout의 프롬프트를 감지하는 데 쓸 수 있는 정규식 문자열(컴파일된 정규식이 아님). 특히 입력 데이터가 지정되지 않은 경우에 유용해요.

Kw environ_update: 환경 변수를 갱신할 딕셔너리.

Kw umask: 명령을 실행할 때 사용할 umask. 기본값 None.

Kw encoding: 문자열을 반환하므로 바이트를 텍스트로 변환하는 데 쓸 인코딩을 알아야 해요. 항상 바이트로 받고 싶으면 encoding=None을 사용해요. 기본값은 "utf-8"이에요. 이것은 args로 주어진 문자열의 변환에는 영향을 주지 않아요.

Kw errors: 문자열을 반환하므로 stdout과 stderr를 바이트에서 텍스트로 변환해야 해요. 지정된 encoding으로 바이트를 디코딩할 수 없으면 이 오류 핸들러를 사용해서 처리해요. 기본값은 surrogate_or_strict로, 사용 가능하면 surrogateescape 오류 핸들러로 바이트를 디코딩하고(우리가 지원하는 모든 Python 버전에서 사용 가능), 그렇지 않으면 UnicodeError traceback을 발생시킨다는 뜻이에요. 이것은 args로 주어진 문자열의 변환에는 영향을 주지 않아요.

Kw expand_user_and_vars: use_unsafe_shell=False일 때 이 인자는 명령을 실행하기 전에 경로에서 ~를 확장하고 환경 변수를 확장할지 여부를 결정해요. True이면 escaping에 관계없이 $SHELL 같은 문자열이 확장돼요. False이고 use_unsafe_shell=False이면 경로나 변수 확장이 이뤄지지 않아요.

Kw pass_fds: 기본 Popen 생성자에 전달할 파일 디스크립터를 결정하는 인자.

Kw before_communicate_callback: Popen 객체가 생성된 후, 프로세스와 통신하기 전에 호출되는 함수예요. (Popen 객체가 콜백에 첫 인자로 전달돼요.)

Kw ignore_invalid_cwd: 유효하지 않은 cwd(존재하지 않거나 디렉토리가 아님)를 무시할지 예외를 발생시킬지를 나타내는 플래그.

Kw handle_exceptions: 예외를 인라인으로 처리해 failed_json을 발생시킬지, 아니면 호출자가 처리해야 하는지를 나타내는 플래그.

반환: 반환 코드(int), stdout(str), stderr(str)의 3-튜플. stdout과 stderr는 encoding과 errors 매개변수에 따라 변환된 텍스트 문자열이에요. 바이트 문자열을 원하면 encoding=None을 사용해 텍스트로의 디코딩을 끄세요.

sha1(filename)

digest_from_file()을 사용해 로컬 파일의 SHA1 16진수 다이제스트를 반환해요.

sha256(filename)

digest_from_file()을 사용해 로컬 파일의 SHA-256 16진수 다이제스트를 반환해요.

Basic

이 기능을 사용하려면 모듈에 import ansible.module_utils.basic을 포함하세요.

ansible.module_utils.basic.get_platform()

반환: 모듈이 실행 중인 플랫폼의 이름(네이티브 문자열).

플랫폼("Linux", "Solaris" 등)을 표시하는 네이티브 문자열을 반환해요. 현재는 platform.system() 호출 결과예요.

ansible.module_utils.basic.heuristic_log_sanitize(data, no_log_values=None)

로그 메시지에서 비밀번호처럼 보이는 문자열을 제거해요.

Argument Spec

매개변수를 argument spec에 대해 검증하는 클래스와 함수예요.

ArgumentSpecValidator

class ansible.module_utils.common.arg_spec.ArgumentSpecValidator(argument_spec, mutually_exclusive=None, required_together=None, required_one_of=None, required_if=None, required_by=None)

Argument spec 검증 클래스예요.

validate() 메서드를 사용해 여러 매개변수를 검증하는 데 쓸 수 있는 argument_spec 기반의 검증기를 만들어요.

매개변수:

  • argument_spec (dict[str, dict]) – 유효한 매개변수와 그 타입의 명세. 중첩된 argument spec을 포함할 수 있어요.
  • mutually_exclusive (list[str] 또는 list[list[str]]) – 함께 제공하면 안 되는 용어의 목록 또는 목록의 목록.
  • required_together (list[list[str]]) – 함께 필요로 하는 용어의 목록의 목록.
  • required_one_of (list[list[str]]) – 각 목록에서 하나는 필요한 용어의 목록의 목록.
  • required_if (list) – [parameter,value,[parameters]]의 목록의 목록으로, parameter==value일 때 [parameters] 중 하나가 필요해요.
  • required_by (dict[str, list[str]]) – 딕셔너리의 각 키가 필요로 하는 매개변수 목록을 포함하는 매개변수 이름의 딕셔너리.

**validate(parameters, *args, kwargs)

parameters를 argument spec에 대해 검증해요.

ValidationResult의 오류 메시지는 no_log 값을 포함할 수 있으므로, 로깅하거나 표시하기 전에 sanitize_keys()로 정화해야 해요.

매개변수: parameters (dict[str, dict]) – argument spec에 대해 검증할 매개변수.

반환: 검증된 매개변수를 담은 ValidationResult.

간단한 예시:

argument_spec = {
    'name': {'type': 'str'},
    'age': {'type': 'int'},
}

parameters = {
    'name': 'bo',
    'age': '42',
}

validator = ArgumentSpecValidator(argument_spec)
result = validator.validate(parameters)

if result.error_messages:
    sys.exit("Validation failed: {0}".format(", ".join(result.error_messages))

valid_params = result.validated_parameters

ValidationResult

class ansible.module_utils.common.arg_spec.ValidationResult(parameters)

Argument spec 검증 결과예요.

ArgumentSpecValidator.validate()가 반환하는 객체로, 검증된 매개변수와 오류를 담아요.

매개변수: parameters (dict) – 검증되고 올바른 타입으로 강제 변환될 용어들.

errors

검증 중 실패가 있었다면 모든 AnsibleValidationError 객체를 담는 AnsibleValidationErrorMultiple.

property validated_parameters

검증되고 강제 변환된 매개변수.

property unsupported_parameters

지원되지 않는 매개변수 이름의 set.

property error_messages

errors의 각 예외에서 온 모든 오류 메시지의 list.

Parameters

ansible.module_utils.common.parameters.DEFAULT_TYPE_VALIDATORS

'str' 같은 타입 이름과 그 타입을 검사하는 데 쓰는 기본 함수(이 경우 check_type_str())의 dict.

**ansible.module_utils.common.parameters.env_fallback(*args, kwargs)

환경 변수에서 값을 로드해요.

ansible.module_utils.common.parameters.remove_values(value, no_log_strings)

value에서 no_log_strings의 문자열을 제거해요.

value가 컨테이너 타입이면 훨씬 더 많이 제거해요. 많은 데이터를 다룰 때 최대 재귀 깊이에 도달할 위험이 있기 때문에, 순수 재귀 해결책보다는 deferred_removals를 사용해요(issue #24560 참고).

ansible.module_utils.common.parameters.sanitize_keys(obj, no_log_strings, ignore_keys=frozenset({}))

키 이름에서 no_log 값을 제거해 컨테이너 객체의 키를 정화해요.

이것은 remove_values() 함수의 동반 함수예요. 그 함수와 유사하게, 큰 데이터 구조의 경우 최대 재귀 깊이에 도달하지 않도록 deferred_removals를 사용해요.

매개변수:

  • obj – 정화할 컨테이너 객체. 컨테이너가 아닌 객체는 수정 없이 반환돼요.
  • no_log_strings – 로깅하고 싶지 않은 문자열 값의 집합.
  • ignore_keys – 정화하지 않을 키의 문자열 값 집합.

반환: 정화된 키를 가진 객체.

Validation

다양한 매개변수 타입을 검증하는 독립 함수예요.

ansible.module_utils.common.validation.check_missing_parameters(parameters, required_parameters=None)

argspec이 주는 정보보다 더 많은 정보가 필요해서 argspec으로는 확인할 수 없을 때 필수 매개변수를 확인하는 함수예요. 필수 매개변수가 없으면 TypeError를 발생시켜요.

매개변수:

  • parameters – 매개변수 딕셔너리.
  • required_parameters – 주어진 매개변수에서 찾을 매개변수 목록.

반환: 빈 목록 또는 검사 실패 시 TypeError 발생.

ansible.module_utils.common.validation.check_mutually_exclusive(terms, parameters, options_context=None)

argument 매개변수에 대해 상호 배타적 용어를 확인해요. 서로 상호 배타적이어야 하는 용어 그룹인 단일 목록 또는 목록의 목록을 받아요.

매개변수:

  • terms – 상호 배타적 매개변수 목록.
  • parameters – 매개변수 딕셔너리.
  • options_context – terms가 하위 spec에 있으면 부모 키 이름의 문자열 목록.

반환: 빈 목록 또는 검사 실패 시 TypeError 발생.

ansible.module_utils.common.validation.check_required_arguments(argument_spec, parameters, options_context=None)

argument_spec의 모든 매개변수를 확인하고, 필수지만 parameters에 없는 매개변수 목록을 반환해요. 검사 실패 시 TypeError를 발생시켜요.

매개변수:

  • argument_spec – 모든 매개변수와 그 명세를 담은 Argument spec 딕셔너리.
  • parameters – 매개변수 딕셔너리.
  • options_context – argument_spec이 하위 spec에 있으면 부모 키 이름의 문자열 목록.

반환: 빈 목록 또는 검사 실패 시 TypeError 발생.

ansible.module_utils.common.validation.check_required_by(requirements, parameters, options_context=None)

requirements의 각 키에 대해 해당 목록이 parameters에 존재하는지 확인해요. 각 키에 대해 단일 문자열 또는 값 목록을 받아요.

매개변수:

  • requirements – 요구 사항의 딕셔너리.
  • parameters – 매개변수 딕셔너리.
  • options_context – requirements가 하위 spec에 있으면 부모 키 이름의 문자열 목록.

반환: 빈 딕셔너리 또는 검사 실패 시 TypeError 발생.

ansible.module_utils.common.validation.check_required_if(requirements, parameters, options_context=None)

조건부로 필요한 매개변수를 확인해요. 검사 실패 시 TypeError를 발생시켜요.

매개변수: requirements – 주어진 매개변수가 지정된 값일 때 필요한 매개변수, 그리고 선택적으로 일부 또는 모든 매개변수가 필요한지 나타내는 불리언을 지정하는 목록의 목록.

예시:

required_if=[
    ['state', 'present', ('path',), True],
    ['someint', 99, ('bool_param', 'string_param')],
]

매개변수:

  • parameters – 매개변수 딕셔너리.
  • options_context – requirements가 하위 spec에 있으면 부모 키 이름의 문자열 목록.

반환: 빈 목록 또는 검사 실패 시 TypeError 발생. 예외의 results 속성에는 딕셔너리 목록이 있어요. 각 딕셔너리는 requirements의 각 항목을 평가한 결과예요. 각 반환 딕셔너리는 다음 키를 포함해요:

  • key missing: 필수지만 빠진 매개변수 목록.
  • key requires: 'any' 또는 'all'.
  • key parameter: 요구 사항이 있는 매개변수 이름.
  • key value: 매개변수의 원래 값.
  • key requirements: 원래 필수 매개변수.

예시:

[
    {
        'parameter': 'someint',
        'value': 99
        'requirements': ('bool_param', 'string_param'),
        'missing': ['string_param'],
        'requires': 'all',
    }
]

ansible.module_utils.common.validation.check_required_one_of(terms, parameters, options_context=None)

각 용어 목록을 확인해 주어진 모듈 매개변수에 최소한 하나가 존재하는지 확인해요. 목록의 목록 또는 튜플을 받아요.

매개변수:

  • terms – 확인할 용어 목록의 목록. 각 용어 목록에서 최소한 하나가 필요해요.
  • parameters – 매개변수 딕셔너리.
  • options_context – terms가 하위 spec에 있으면 부모 키 이름의 문자열 목록.

반환: 빈 목록 또는 검사 실패 시 TypeError 발생.

ansible.module_utils.common.validation.check_required_together(terms, parameters, options_context=None)

각 용어 목록을 확인해 각 목록의 모든 매개변수가 주어진 parameters에 존재하는지 확인해요. 목록의 목록 또는 튜플을 받아요.

매개변수:

  • terms – 확인할 용어 목록의 목록. 각 목록에는 매개변수에서 최소한 하나가 지정될 때 모두 필요한 매개변수가 포함되어야 해요.
  • parameters – 매개변수 딕셔너리.
  • options_context – terms가 하위 spec에 있으면 부모 키 이름의 문자열 목록.

반환: 빈 목록 또는 검사 실패 시 TypeError 발생.

ansible.module_utils.common.validation.check_type_bits(value)

사람이 읽을 수 있는 문자열 bits 값을 정수 bits로 변환해요. 예: check_type_bits('1Mb')는 정수 1048576을 반환해요. 값을 변환할 수 없으면 TypeError를 발생시켜요.

ansible.module_utils.common.validation.check_type_bool(value)

값이 bool인지 확인하거나 bool로 변환해 반환해요. bool로 변환할 수 없으면 TypeError를 발생시켜요.

매개변수: value – bool로 변환할 문자열, 정수 또는 부동소수점. 유효한 불리언에는 '1', 'on', 1, '0', 0, 'n', 'f', 'false', 'true', 'y', 't', 'yes', 'no', 'off'가 있어요.

반환: 불리언 True 또는 False.

ansible.module_utils.common.validation.check_type_bytes(value)

사람이 읽을 수 있는 문자열 값을 바이트로 변환해요. 값을 변환할 수 없으면 TypeError를 발생시켜요.

ansible.module_utils.common.validation.check_type_dict(value)

값이 dict인지 확인하거나 dict로 변환해 반환해요. dict로 변환할 수 없으면 TypeError를 발생시켜요.

매개변수: value – dict로 변환할 dict 또는 문자열. k1=v2,k2=v2 또는 k1=v2 k2=v2를 받아요.

반환: 딕셔너리로 변환된 값.

ansible.module_utils.common.validation.check_type_float(value)

값이 float인지 확인하거나 float로 변환해 반환해요. float로 변환할 수 없으면 TypeError를 발생시켜요.

매개변수: value – 확인하거나 변환해 반환할 float, int, str 또는 bytes.

반환: 주어진 값의 float.

ansible.module_utils.common.validation.check_type_int(value)

값이 정수인지 확인해 반환하거나, 정수로 변환해 반환해요. int로 변환할 수 없으면 TypeError를 발생시켜요.

매개변수: value – 변환하거나 확인할 String 또는 int.

반환: 주어진 값의 int.

ansible.module_utils.common.validation.check_type_jsonarg(value)

dict/list/tuple을 JSON 직렬화하고, str과 bytes는 그대로 둬요. 이전에는 Ansible/Jinja 클래식 모드 리터럴 eval 패스가 객체를 실수로 역직렬화할 수 있는 경우에 필요했어요.

ansible.module_utils.common.validation.check_type_list(value)

값이 목록인지 확인하거나 목록으로 변환해요. 쉼표로 구분된 문자열은 목록으로 분리돼요. 목록으로 변환할 수 없으면 TypeError를 발생시켜요.

매개변수: value – 검증하거나 목록으로 변환할 값.

반환: 이미 목록이면 원래 값, 쉼표가 없는 float/int/string이면 단일 항목 목록, 쉼표로 구분된 문자열이면 다중 항목 목록.

ansible.module_utils.common.validation.check_type_path(value)

제공된 값이 문자열인지 확인하거나 문자열로 변환한 다음 확장된 경로를 반환해요.

ansible.module_utils.common.validation.check_type_raw(value)

원래 값을 반환해요.

ansible.module_utils.common.validation.check_type_str(value, allow_conversion=True, param=None, prefix='')

값이 문자열인지 확인하거나 문자열로 변환해요. 문자열로 변환할 때 예상치 못한 변화가 생길 수 있으므로, allow_conversion이 값을 변환할지 아니면 값이 문자열이 아니고 변환될 경우 TypeError를 발생시킬지 제어해요.

매개변수:

  • value – 검증하거나 문자열로 변환할 값.
  • allow_conversion – 문자열을 변환해 반환할지 아니면 TypeError를 발생시킬지.

반환: 문자열이면 원래 값, allow_conversion=True이면 문자열로 변환된 값, allow_conversion=False이면 TypeError 발생.

ansible.module_utils.common.validation.count_terms(terms, parameters)

주어진 딕셔너리에서 키의 발생 횟수를 세요.

매개변수:

  • terms – 확인할 문자열 또는 값의 반복 가능 항목.
  • parameters – 매개변수 딕셔너리.

반환: 제공된 딕셔너리에서 terms 값의 발생 횟수인 정수.

Errors

exception ansible.module_utils.errors.AnsibleFallbackNotFound

폴백 검증기를 찾지 못했어요.

exception ansible.module_utils.errors.AnsibleValidationError(message)

단일 argument spec 검증 오류.

error_message

예외가 발생했을 때 전달된 오류 메시지.

property msg

예외가 발생했을 때 전달된 오류 메시지.

exception ansible.module_utils.errors.AnsibleValidationErrorMultiple(errors=None)

여러 argument spec 검증 오류.

errors

AnsibleValidationError 객체의 list.

property msg

errors의 첫 번째 오류의 첫 메시지.

property messages

errors의 각 오류 메시지의 list.

append(error)

self.errors에 새 오류를 추가해요. AnsibleValidationError만 추가해야 해요.

extend(errors)

errors의 각 항목을 self.errors에 추가해요. AnsibleValidationError만 추가해야 해요.

exception ansible.module_utils.errors.AliasError(message)

별칭 처리 오류.

exception ansible.module_utils.errors.ArgumentTypeError(message)

매개변수 타입 오류.

exception ansible.module_utils.errors.ArgumentValueError(message)

매개변수 값 오류.

exception ansible.module_utils.errors.DeprecationError(message)

매개변수 deprecation 처리 오류.

exception ansible.module_utils.errors.ElementError(message)

요소 검증 시 오류.

exception ansible.module_utils.errors.MutuallyExclusiveError(message)

상호 배타적 매개변수가 제공됐어요.

exception ansible.module_utils.errors.NoLogError(message)

no_log 값 변환 오류.

exception ansible.module_utils.errors.RequiredByError(message)

다른 매개변수가 필요로 하는 매개변수 관련 오류.

exception ansible.module_utils.errors.RequiredDefaultError(message)

필수 매개변수에 기본값이 할당됐어요.

exception ansible.module_utils.errors.RequiredError(message)

필수 매개변수가 빠졌어요.

exception ansible.module_utils.errors.RequiredIfError(message)

조건부 필수 매개변수 관련 오류.

exception ansible.module_utils.errors.RequiredOneOfError(message)

최소한 하나가 필요한 매개변수 관련 오류.

exception ansible.module_utils.errors.RequiredTogetherError(message)

함께 필요로 하는 매개변수 관련 오류.

exception ansible.module_utils.errors.SubParameterTypeError(message)

하위 매개변수의 잘못된 타입.

exception ansible.module_utils.errors.UnsupportedError(message)

지원되지 않는 매개변수가 제공됐어요.

더 알아보기 (Learn more)

  • 모듈 개발에 대한 일반 소개는 '모듈 개발하기' 문서를 참고해요.
  • AnsibleModule의 자세한 동작 원리는 'Ansible 모듈 아키텍처' 문서를 참고해요.