2017-01-25 3 views
1

Мне нужно создать строку в шаблоне, который может меняться между хостами, и она должна быть в форме: «core»: «0,1 , 2,3 "Как установить конкатенированную строковую переменную в шаблоне Ansible на основе условия

И причина, по которой строка" 0,1,2,3 "в этом примере состоит в том, что в хосте есть 4 процессорных ядра.

Так что я застрял с чем-то, что кажется слишком запутанным для меня, и я даже не уверен, как использовать эту переменную core_count в файле шаблона.

{% set core_count = '' %} 
{% for i in range(ansible_processor_cores) %} 
    {% set core_count = core_count ~ i %} 
    {% if not loop.last %} 
    {% set core_count = core_count ~ ',' %} 
    {% endif %} 
{% endfor %} 

ответ

2

Есть много удобных плагинов lookup в Ansible. Take sequence:

- hosts: localhost 
    gather_facts: yes 
    tasks: 
    - debug: 
     msg: '"cores": "{{ lookup("sequence","start=0 count="+(ansible_processor_cores|string)) }}"' 
+0

Спасибо, что работает! – Vadimski

Смежные вопросы