首页 > 解决方案 > 在 Ansible 中为字符串生成数字哈希

问题描述

我需要为给定的字符串生成一个唯一的 TCP 端口号(我需要这个来模拟来自服务器的响应,每个字符串都是唯一的)。

我想使用一个字符串参数作为这个端口号的来源。换句话说,我需要从任意字符串生成给定范围(1000-32767)内的数字哈希。

我可以在 Python 中毫无问题地做到这一点,但我不知道如何在 Ansible 中做到这一点。

有什么方法可以从 Ansible 中的字符串生成范围散列中的稳定数字?

一个戏剧的例子:

 - hosts: localhost
   gather_facts: no
   tasks:
     - debug: msg="Hash for {{ item }} is {{ item |HELP_ME_HERE }}"
       with_items:
        - string1
        - string_two

标签: ansiblejinja2

解决方案


有什么方法可以从 Ansible 中的字符串生成范围散列中的稳定数字?

 - set_fact:
     r: "{{ range(1000, 37272) | random(seed=item) }}"
   run_once: yes
   loop:
     - string

 - debug:
     msg: "{{ r }}"

推荐阅读