ansible - 在 Ansible 中获取“重复的 dict 键”试图遍历变量文件
问题描述
我正在使用 Ansible 2.9 和 AWX 15
我想使用 ansible 自动设置客户端 VPN。许多客户端有多个加密域,所以我需要设置对象组。
在 ASA 上,配置如下所示:
object-group network ClientVPN
object-network 10.1.1.0 255.255.255.0
object-network 10.2.2.0 255.255.255.0
object-network 10.3.3.0 255.255.255.0
我的 ansible 代码如下所示:
- name: Build object group
asa_config:
lines:
- "object-group network ClientVPN"
- name: Add networks
asa_config:
lines:
- "network-object {{ subnet }}"
parents:
- object-group network ClientVPN
loop: "{{ lookup('file','varfil2.yml',wantlist=True) }}"
我的 var_file 看起来像:
subnet: 192.1.1.0 255.255.255.0
subnet: 192.2.2.0 255.255.255.0
subnet: 192.3.3.0 255.255.255.0
问题是我不知道客户端将拥有多少个“子网”,并且它将以文件的形式交付。可能有 2 个或 20 个。所以我需要能够循环执行任务并创建网络。
我不知道如何对剧本和文件进行编码,以免出现“重复的字典键”错误。
谢谢!
解决方案
我收到“duplicate dict key”错误的原因是因为我的剧本中有这些行:
vars_file: - 子网-vars.yaml
我的剧本中有这样一行:
循环:“{{查找('文件','subnets.txt').splitlines()}}”
一旦我删除了“vars_file”和调用subnet-vars.yaml 文件的行,剧本就可以正常处理,没有错误。
推荐阅读
- azure - 无法在 CIS 强化的 Azure Ubuntu 18.04 VM 映像上更改用户名和主机名
- sql - SQL Server 问题 - 列结果中的子查询带有连接?
- javascript - 上传已存在的文件导致页面刷新
- javascript - Angular:由于异步数据,随机“找不到具有名称的控件”错误
- python - 有没有办法在 Python 中以数字方式集成两个函数的乘积?
- python - 交互式注释仅显示在 matplotlib 中的一个数据集
- javascript - reCAPTCHA 表单在第二次提交时提交两次
- android - 如何在 React Native android 应用程序中使用 Axios 将图像上传到 Azure 存储容器?我保存的图像无法打开保存的图像
- css - 具有不同填充的 MPDF 多页溢出
- java - java.io.FileNotFoundException:没有内容提供者:/storage/emulated/0/test_video.mp4