如何根据条件在Ansible模板中设置连接字符串变量

时间:2017-01-25 12:20:24

标签: ansible jinja2 ansible-template

我需要在模板中创建一个可以在主机之间切换的字符串,它需要采用以下形式: “核心”:“0,1,2,3”

此示例中字符串为“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 %}

1 个答案:

答案 0 :(得分:3)

Ansible中有许多方便的lookup插件。拿sequence

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