ansible.builtin.sequence 查找 – 基于数字序列生成列表

注意

此查找插件是 ansible-core 的一部分,并包含在所有 Ansible 安装中。在大多数情况下,您可以使用短插件名称 sequence。但是,我们建议您使用完全限定集合名称 (FQCN) ansible.builtin.sequence,以便轻松链接到插件文档并避免与其他可能具有相同查找插件名称的集合冲突。

概要

  • 生成一系列项目。您可以指定一个起始值、一个结束值、一个可选的“步长”值(指定序列的增量步数)以及一个可选的 printf 样式格式字符串。

  • 参数可以指定为 key=value 对字符串,或者也可以接受参数字符串的快捷形式:[start-]end[/stride][:format]。

  • 数值可以指定为十进制、十六进制 (0x3f8) 或八进制 (0600)。

  • 从 1.9.2 版本开始,允许使用负步长。

  • 生成的项是字符串。使用 Jinja2 过滤器将项转换为首选类型,例如 {{ 1 + item|int }}

  • 另请参阅 Jinja2 range 过滤器作为替代方案。

关键字参数

这描述了查找的关键字参数。这些值是 key1=value1key2=value2 等,如以下示例所示:lookup('ansible.builtin.sequence', key1=value1, key2=value2, ...)query('ansible.builtin.sequence', key1=value1, key2=value2, ...)

参数

注释

count

整数

序列中的元素数量,不与 end 一起使用

end

整数

结束序列的数字,不要与 count 一起使用

format

字符串

返回一个字符串,其中包含格式化的生成数字

默认值: "%d"

start

整数

开始序列的数字

默认值: 1

stride

整数

序列号之间的增量,默认值为 1,除非结束小于开始,则为 -1。

默认值: 1

示例

- name: create some test users
  ansible.builtin.user:
    name: "{{ item }}"
    state: present
    groups: "evens"
  with_sequence: start=0 end=32 format=testuser%02x

- name: create a series of directories with even numbers for some reason
  ansible.builtin.file:
    dest: "/var/stuff/{{ item }}"
    state: directory
  with_sequence: start=4 end=16 stride=2

- name: a simpler way to use the sequence plugin create 4 groups
  ansible.builtin.group:
    name: "group{{ item }}"
    state: present
  with_sequence: count=4

- name: the final countdown
  ansible.builtin.debug:
    msg: "{{item}} seconds to detonation"
  with_sequence: start=10 end=0 stride=-1

- name: Use of variable
  ansible.builtin.debug:
    msg: "{{ item }}"
  with_sequence: start=1 end="{{ end_at }}"
  vars:
    - end_at: 10

返回值

描述

返回值

列表 / elements=string

包含生成的项目序列的列表

返回:成功

作者

  • Jayson Vantuyl

提示

每个条目类型的配置条目都有一个低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。