ansible - 使用 ansible 打乱 dns 服务器列表
问题描述
我继承了这段模板代码:
supersede domain-name-servers
{% set comma = joiner(", ") -%}
{%- for host in groups['consul_server_true'] -%}
{%- if host in groups[dc_grp] -%}
{{ comma() }}{{ hostvars[host]['private_ip_address'] }}
{%- endif -%}
{%- endfor -%};
它做它应该做的,生成一条supersede domain-name-servers ip,ip,ip;
线。
我们想要做的是把 a| shuffle(seed=inventory_ansible_hostname)
放在那里,这样顺序就变得可以预见地随机了。我的模板 foo 不太适合,因为我设法做的是自己打乱 ip 地址的数字:(。
谁能告诉我如何正确地对事物进行分组并将它们喂给洗牌,以便元素的顺序被洗牌,而不是元素本身?
解决方案
我不知道您将过滤器放在模板中的哪个位置,但如果您在循环中随机播放服务器的输入列表,它应该按预期随机化:
supersede domain-name-servers
{% set comma = joiner(", ") -%}
{%- for host in groups['consul_server_true'] | shuffle(seed=inventory_hostname) -%}
{%- if host in groups[dc_grp] -%}
{{ comma() }}{{ hostvars[host]['private_ip_address'] }}
{%- endif -%}
{%- endfor -%};
推荐阅读
- python - 在 Jupyter 笔记本上使用 pyspark.sql.function 时出错
- servicestack - AutoPopulate 属性不适用于 AutoQuery DTO
- powershell - 使用 powershell 脚本使用多个附件发送电子邮件
- java - Spring Boot Rest JPA 数据未在数据库中发布
- authentication - 使用微服务实现公共 API 密钥
- javascript - 当元素通过 JS 可见时,Alpine.js x-show 停止工作
- python - 如何计算大于等于 c 的列表的所有可能子集
- javascript - 社交媒体字体真棒图标在反应 js 中不起作用
- python - 计算 Pandas 数据框中 np.nan 的数量
- typescript - 接口不能在条件类型中扩展映射类型