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"\"\ \}\}