2016-10-12 2 views
3

여기에서 Anabilities/YAML 구문에 어려움을 겪고 있습니다. 파일에 여러 줄을 추가 모드로 반향하려면 어떻게합니까? 또한 추가해야하기 때문에 복사 모듈 (content arg 포함)을 사용할 수 없습니다.파일에 에코가 가능합니다.

이 코드 : 무의미와

- name: Write backup script for each app 
    shell: echo | ' 
     line one 
     line two 
     line three 
     ' >> /manager/backup.sh 

오류 아웃 :

"stderr": "/bin/sh: line one line two line three : command not found" 

난 당신이 (보존 서식) 여러 줄을 원하는 Ansible에게 어떻게 생각 때문에 나는 파이프를 사용하고, 하지만 아마도 쉘 파이프로 사용 중일 것입니다.

+1

필자는 이후 linebook을 실행할 때이 줄을 추가하지 못하도록'lineinfile' 모듈을 제안합니다. –

답변

9

당신이 뭔가 싶어 : printf에 명시 적으로

- name: Write backup script for each app 
    shell: | 
    echo 'line one 
    line two 
    line three' >> /manager/backup.sh 

또는 지정 줄 바꿈 : 당신이 얻을 오류 메시지가 완벽한 의미가

- name: Write backup script for each app 
    shell: printf 'line one\n 
    line two\n 
    line three\n' >> /manager/backup.sh 

: 당신이 파이프 시도 (|를) line one line two line three 명령에 대한 echo 명령의 출력. 쉘은 후자를 찾지 못하기 때문에 존재하지 않는 명령을보고합니다. 하지 어디서나 값 필드에 키 후 직접 사용하는 경우

echo | "line one line two line three" >> /manager/backup.sh 

YAML은 여러 줄의 값을 나타 내기 위해 |를 사용하지만 : 당신은 쉘에서 직접 다음 실행 경우는 동일합니다.

관련 문제