このコマンドがありますが、これを変更したいと思います。特に、環境変数に応じて最新のパラメータが存在したいと思います。
ansible-playbook --inventory inventories/ssg-dev deploy.yml --vault-id dev@~/ansible-password --skip-tags "clear-data"
私の試みは次のとおりです。
ansible-playbook --inventory inventories/ssg-$ENVIRONMENT deploy.yml --vault-id $ENVIRONMENT@~/ansible-password $( [ $DATA_SCHEMAS_MIGRATION == true ] && echo ' --skip-tags "clear-data"')
環境変数を設定し、echo
beforeを使用してコマンドを実行して出力を確認すると、元のコマンドとまったく同じです。しかし、実行してみると引数が渡されないようで、コマンド置換で環境変数が評価されないと信じられます。
私のコードがうまくいかないのはなぜですか、どうすれば解決できますか?
ベストアンサー1
clear-data
一重引用符のため、周囲の二重引用符は評価されません。これは予想されたものとは異なる"clear-data"
主張につながります。clear-data
この試み:
ansible-playbook --inventory "inventories/ssg-$ENVIRONMENT" deploy.yml --vault-id "$ENVIRONMENT@~/ansible-password" $([ "$DATA_SCHEMAS_MIGRATION" = true ] && echo '--skip-tags clear-data')
$ENVIRONMENT
グロービングと単語の分離を防ぐために二重引用符も追加しました$DATA_SCHEMAS_MIGRATION
。