2016-01-26 3 views
0

Я передаю набор значений в незанятую книгу воспроизведения. Используя значение, я пытаюсь создать строку.Как добавить значения в переменную переменную с помощью условных операторов

Например, передаю аргументы: 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

Пробовали ли вы свое решение? Меня устраивает. Нет '-' добавляется. – helloV

ответ

0

Вы также должны проверить, не является ли строка пустой. В вашей установки вы только проверить, если переменная существует, и, поскольку она делает условие принимает значение Истина и дает - + 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 
Смежные вопросы