
Bash 스크립트에서는 날짜를 추가 변수로 전달해야 하는데 몇 가지 single quotes
문제가 있습니다.
...
$DT="03-04-17"
ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "$DT" }}'
수동 ansible-playbook은 다음과 같이 작동합니다.
$ ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "03-04-17" }}'
여기서는 ansible 플레이북의 날짜를 동적으로 전달하고 있습니다.
답변1
ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "$DT" }}'
ansible-playbook 명령(위에서 복제됨)은 어쨌든 작은따옴표를 표시하지 않습니다. 다음이 표시됩니다.
- 매개변수 #1
copyy2s3.yml
- 매개변수 #2
--extra-vars
- 매개변수 #3
cdate={{ "$DT" }}
$DT는 쉘 변수가 아닌 리터럴 문자열이 되며 이러한 공백도 매개변수의 일부가 됩니다. 이를 수행하는 방법에는 여러 가지가 있으며 Cuonglm은 이를 보여주었습니다.
'cdate={{ "'"$DT"'" }}'
'cdate={{ '\""$DT"\"' }}'
"cdate={{ \"$DT\" }}"
cdate=\{\{\ \""$DT"\"\ \}\}