프로그래밍 방식으로 생성 된 Ansible 플레이 북을 사용하고 있습니다. 일반적으로 플레이 북은 YAML이므로 간단합니다. 그러나 "간단한" key=value
양식을 사용할 때 플레이 북 은 순수한 YAML 이 아니며shlex
구문 분석 가능한 양식이 포함 된 컨텐츠를 포함합니다 .
이 형식의 모호성을 피하기 위해 ( key=value
명령에 대한 인수 또는 ansible에 대한 인수를 결합합니까?) 단일 형식으로 구문 분석 및 생성 해야합니다. -examples 저장소 .
이것은 다음 종류의 구문을 사용합니다.
action: module-name
args:
key1: value1
key2: value2
... 좋아요. 그러나, shell
또는 command
모듈 에이 양식을 사용하려고 할 때 ( 문서에 이름 free_form
이 지정된 인수로 전달 된 실제 명령을 설명하는 )이 기능이 제대로 작동하지 않습니다.
action: shell
args:
free_form: echo hello_world >/tmp/something
creates: /tmp/something
호출되면 다음이 실행됩니다.
/bin/sh -c " free_form='echo hello_world >/tmp/something' "
... 나는 달성하려는 것이 아닙니다.
순수한 YAML 구문을 사용하여 "자유 형식"명령을 수행하는 Ansible 모듈을 사용하는 올바른 방법은 무엇입니까?
- shell: ...
있습니까? 이 구조가 손으로 만 안정적으로 생성 할 수있는 것이라면 문제의 요점을 다소 잃습니다.