다음은 간단한 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
공통 속성 과 메서드( 호출 가능 속성)가 많지만 동일하지는 않습니다.mapping
str
list
dict
답변3
사실 이 "variable.stderr"는 메소드가 아니라 변수입니다... Ansible에서는 실제 프로그래밍 언어가 아니기 때문에 "메소드"를 직접 다루지 않습니다. 언제나 그렇듯이 최고의 학습 소스는 모듈에 대한 좋은 소개를 제공하는 공식 Ansible 문서입니다.