community.general.random_string lookup – 生成随机字符串

注意

此查找插件是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.random_string

community.general 3.2.0 中的新增功能

概要

  • 根据给定的约束生成随机字符串。

  • 使用 random.SystemRandom,因此应该足够强大,可以用于加密目的。

关键字参数

这描述了查找的关键字参数。这些是以下示例中的值 key1=value1key2=value2 等:lookup('community.general.random_string', key1=value1, key2=value2, ...)query('community.general.random_string', key1=value1, key2=value2, ...)

参数

注释

base64

布尔值

返回 base64 编码的字符串。

选项

  • false ←(默认)

  • true

ignore_similar_chars

布尔值

在 community.general 7.5.0 中添加

忽略相似字符,例如 l1,或 O0

这些字符可以在 similar_chars 中配置。

选项

  • false ←(默认)

  • true

length

整数

字符串的长度。

默认值: 8

lower

布尔值

在字符串中包含小写字母。

选项

  • false

  • true ←(默认)

min_lower

整数

字符串中小写字母的最小数量。

如果设置,则覆盖 lower=false

默认值: 0

min_numeric

整数

字符串中数字字符的最小数量。

如果设置,则覆盖 numbers=false

默认值: 0

min_special

整数

字符串中特殊字符的最小数量。

默认值: 0

min_upper

整数

字符串中大写字母的最小数量。

如果设置,则覆盖 upper=false

默认值: 0

numbers

布尔值

在字符串中包含数字。

选项

  • false

  • true ←(默认)

override_all

字符串

使用给定的字符列表覆盖 numbersupperlowerspecial 的所有值。

override_special

字符串

覆盖要在字符串中使用的特殊字符列表。

如果设置,则 min_special 应设置为非默认值。

similar_chars

字符串

在 community.general 7.5.0 中添加

覆盖不应在字符串中使用的字符列表。

默认值: "il1LoO0"

special

布尔值

在字符串中包含特殊字符。

特殊字符取自 Python 标准库 string。有关将使用哪些字符,请参阅 string.punctuation 的文档

特殊字符的选择可以更改为设置 override_special

选项

  • false

  • true ←(默认)

upper

布尔值

在字符串中包含大写字母。

选项

  • false

  • true ←(默认)

示例

- name: Generate random string
  ansible.builtin.debug:
    var: lookup('community.general.random_string')
  # Example result: 'DeadBeeF'

- name: Generate random string with length 12
  ansible.builtin.debug:
    var: lookup('community.general.random_string', length=12)
  # Example result: 'Uan0hUiX5kVG'

- name: Generate base64 encoded random string
  ansible.builtin.debug:
    var: lookup('community.general.random_string', base64=True)
  # Example result: 'NHZ6eWN5Qk0='

- name: Generate a random string with 1 lower, 1 upper, 1 number and 1 special char (at least)
  ansible.builtin.debug:
    var: lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1)
  # Example result: '&Qw2|E[-'

- name: Generate a random string with all lower case characters
  ansible.builtin.debug:
    var: query('community.general.random_string', upper=false, numbers=false, special=false)
  # Example result: ['exolxzyz']

- name: Generate random hexadecimal string
  ansible.builtin.debug:
    var: query('community.general.random_string', upper=false, lower=false, override_special=hex_chars, numbers=false)
  vars:
    hex_chars: '0123456789ABCDEF'
  # Example result: ['D2A40737']

- name: Generate random hexadecimal string with override_all
  ansible.builtin.debug:
    var: query('community.general.random_string', override_all=hex_chars)
  vars:
    hex_chars: '0123456789ABCDEF'
  # Example result: ['D2A40737']

返回值

描述

返回值

列表 / elements=字符串

包含随机字符串的单元素列表

已返回: 成功

作者

  • Abhijeet Kasurde (@Akasurde)

提示

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