我将一组值传递给ansible play book。使用值我尝试创建一个字符串。
例如,我通过first_nm
将参数last_nm
,nick_nm
和--extra-vars
传递给我的剧本。在我的role/
:
<task-name>/
vars/main.yml
我尝试执行以下操作:
full_name: {{first_nm}} {{last_nm}}{{'-'+nick_nm if nick_nm is defined else ''}}
我的问题:
由于nick_nm
是可选的,因此如果其为空或未定义,则获取全名,例如:david john-
并附加-
。
那么我怎么能避免这种追加。还有更好的方法吗?
答案 0 :(得分:1)
您还应该检查字符串是否为空。在您的设置中,您只检查变量是否存在,并且因为它确实条件的计算结果为True并且为您提供- + nick_nm
你可以这样做:
---
- hosts: localhost
gather_facts: no
connection: local
vars:
- first_nm: John
- last_nm: Smith
- nick_nm:
tasks:
- set_fact: full_name="{{first_nm}} {{last_nm}}{% if nick_nm is defined and nick_nm %}-{{nick_nm}}{%endif%}"
- debug: var=full_name