首页 > 解决方案 > 将空字符串作为变量值从ansible playbook传递到powershell?

问题描述

我想将一个空字符串作为变量值从 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 文件发送一个空字符串!我怎样才能做到这一点?

标签: powershellansible

解决方案


可能您需要将结果包装| quote{{ name | default("") | quote }}shell 引用变量中。没有它,jinja2 不知道您希望空字符串呈现为""而不是空白;您也可以避开它,{{ name | default('""') }}但这不太可能是您想要的,因为 if nameis "hello world"then{{ name | default("") }}将在您的命令中呈现,因为-database_name hello world它几乎肯定会失败


推荐阅读