ansible.builtin.sequence – generate a list based on a number sequence

Note

This lookup plugin is part of ansible-core and included in all Ansible installations. In most cases, you can use the short plugin name sequence even without specifying the collections: keyword. However, we recommend you use the FQCN for easy linking to the plugin documentation and to avoid conflicting with other collections that may have the same lookup plugin name.

New in version 1.0: of ansible.builtin

Synopsis

  • generates a sequence of items. You can specify a start value, an end value, an optional “stride” value that specifies the number of steps to increment the sequence, and an optional printf-style format string.
  • Arguments can be specified as key=value pair strings or as a shortcut form of the arguments string is also accepted: [start-]end[/stride][:format].
  • Numerical values can be specified in decimal, hexadecimal (0x3f8) or octal (0600).
  • Starting at version 1.9.2, negative strides are allowed.
  • Generated items are strings. Use Jinja2 filters to convert items to preferred type, e.g. {{ 1 + item|int }}.
  • See also Jinja2 range filter as an alternative.

Parameters

Parameter Choices/Defaults Configuration Comments
count
integer
Default:
0
number of elements in the sequence, this is not to be used with end
end
integer
Default:
0
number at which to end the sequence, dont use this with count
format
string
return a string with the generated number formatted in
start
integer
Default:
0
number at which to start the sequence
stride
integer
increments between sequence numbers, the default is 1 unless the end is less than the start, then it is -1.

Examples

- name: create some test users
  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
  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
  group:
    name: "group{{ item }}"
    state: present
  with_sequence: count=4

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

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

Return Values

Common return values are documented here, the following are the fields unique to this lookup:

Key Returned Description
_list
list / elements=string
success
A list containing generated sequence of items



Authors

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/sequence_lookup.html