Ansible 변수에 대해 호출할 수 있는 모든 메서드는 어디에서 찾을 수 있나요?

Ansible 변수에 대해 호출할 수 있는 모든 메서드는 어디에서 찾을 수 있나요?

다음은 간단한 Ansible스크립트입니다:

- name: this command prints FAILED when it fails
  command: /usr/bin/example-command -x -y -z
  register: command_result
  failed_when: "'FAILED' in command_result.stderr"

이제 변수 command_result에 라는 메서드가 있다는 것을 알았습니다 stderr. 그런데 모든 메서드 목록을 어떻게 얻을 수 있습니까?

답변1

debug덤프 변수를 사용할 수 있습니다 .

- name: this command prints FAILED when it fails
  command: /usr/bin/example-command -x -y -z
  register: command_result
  failed_when: "'FAILED' in command_result.stderr"
- name: dump command_result
  debug: var=command_result

그러면 다음과 같이 출력됩니다.

TASK: [dump command_result] **************************************************************
ok: [hostname] => {
    "command_result": {
        "changed": false,
        "cmd": "/usr/bin/example-command -x -y -z",
        "delta": "0:00:00.018233",
        "end": "2015-05-07 09:33:08.444674",
        "invocation": {
            "module_args": "/usr/bin/example-command -x -y -z",
            "module_name": "command"
        },
        "rc": 0,
        "start": "2015-05-07 09:33:08.426441",
        "stderr": "",
        "stdout": "whatever",
        "stdout_lines": [
            "whatever"
        ],
        "warnings": []
    }
}

답변2

Ansible의 변수는 기본적으로 다음으로 해석되는 문자열입니다.Jinja2 템플릿 엔진. 읽다언어 참조템플릿 변수에 대한 추가 정보 Jinja2의 내장 유형( string, 등)은 Python의 해당 유형( , 등)과 유사하며 sequence공통 속성 과 메서드( 호출 가능 속성)가 많지만 동일하지는 않습니다.mappingstrlistdict

답변3

사실 이 "variable.stderr"는 메소드가 아니라 변수입니다... Ansible에서는 실제 프로그래밍 언어가 아니기 때문에 "메소드"를 직접 다루지 않습니다. 언제나 그렇듯이 최고의 학습 소스는 모듈에 대한 좋은 소개를 제공하는 공식 Ansible 문서입니다.

관련 정보