将空字符串作为变量值从ansible playbook传递到PowerShell?

问题描述 投票:0回答:1

我想从ansible-playbook中传递一个空字符串作为变量值到PowerShell文件。

Ansible代码。

vars:
 name: {{file_name}}

tasks:
  - name: run ps1 
    win_shell: "script.ps1 -database_name {{ name }}"
    no_log: false

Powershell code 

param(

[Parameter(Mandatory = $true)][AllowEmptyString()][string]$database_name 

)

所以如果没有名字 file_name 然后,我想发送一个空字符串到PowerShell文件中。我如何才能做到这一点?

powershell ansible ps1
1个回答
0
投票

你很可能需要 | quote 如同 {{ name | default("") | quote }} 以便将结果包在shell引号变量中。如果不这样做,jinja2就不会知道你想让空字符串呈现为 "" 而不是空白;你还可以用 {{ name | default('""') }} 但这不太可能是你想要的,因为如果 name"hello world" 然后 {{ name | default("") }} 在您的命令中会显示为 -database_name hello world 屡试不爽

© www.soinside.com 2019 - 2024. All rights reserved.