Ansible:如何生成带有种子的随机字符串



我知道在Ansible中,我们可以用唯一的种子生成随机数

- name: generate random suffix
set_fact:
rand_num: "{{ 1000000 | random(seed=variable_name) | hash('md5') }}"

所以,如果我想用种子生成一个随机字符串,我该如何生成它?

我们有可用于随机字符串生成的Ansible集合-随机字符串

示例:

- name: Generate a random string with all lower case characters
debug:
var: query('community.general.random_string', upper=false, numbers=false, special=false)

但在这里,我找不到播种的选择。

感谢

根据文档random_string查找–生成随机字符串和示例

upper=false, numbers=false, special=false

我知道你喜欢生成一个长度为8的随机字符串(因为这是模块random_string的参数长度的默认值(,没有数字和特殊字符,只使用小写。换句话说,就是一个具有特定属性的短随机字符串。

如何生成一个长度为8、没有数字和特殊字符且只有小写的幂等随机字符串

为此,可以使用password查找——检索或生成随机。。。也只需要定义结果集(chars=ascii_letters,digit length=8' | lower(的属性。

---
- hosts: localhost
become: false
gather_facts: false
tasks:
- name: Show string with 8 lowercase characters
debug:
msg: "{{ lookup('password', '/dev/null chars=ascii_letters,digit length=8') | lower }}"

截至Ansible v2.12 a参数:种子可用

- name: Generate password
set_fact:
PASSWORD: "{{ lookup('password', '/dev/null chars=ascii_letters,digit length=8', seed=inventory_hostname) | lower }}"

使结果幂等。

通过这种方法,可以获得具有所需属性的字符串。random_string模块支持定义更多或其他属性,这些属性不是您正在使用的,而是根据您的初始描述而依赖的。

相关内容

  • 没有找到相关文章

最新更新