ansible.builtin.sequence 查询模块 – 基于数字序列生成列表

注意

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

概要

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

  • 参数可以指定为键值对字符串,也可以使用参数字符串的简写形式:[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,除非 end 小于 start,则为 -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

返回值

描述

返回值

列表 / 元素=字符串

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

返回:成功

作者

  • Jayson Vantuyl

提示

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