【问题标题】:How to set concatenated string variable in Ansible template based on a condition如何根据条件在 Ansible 模板中设置连接的字符串变量
【发布时间】:2017-01-25 12:20:23
【问题描述】:

我需要在模板中创建一个可以在主机之间更改的字符串,并且它需要采用以下形式: “核心”:“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 %}

【问题讨论】:

    标签: ansible jinja2 ansible-template


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 2020-07-16
      • 2017-07-30
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多