list - ansible 创建特定的字典
问题描述
我有一个问题,我有剧本 ansible,它存储来自列表中子目录的文件,并且列表中的每个项目我都关联一个从 100 开始的数字。
问题是他在字典中动态创建它并且他混淆了数字和文件。例如
dict_config = [“config1”:100,“config2”:101]
当我在子目录中添加新文件时
我想成为 dict_config = ["config1": 100, "config2":101, "config3":102] 但它是 dict_config = ["config1": 100, "config3":101, "config2":102]
所以对于新文件,我想在 dict_config 上,他在最后一个位置添加一个新项目,并且不会混淆字典。
- name: Get config file
find:
paths: "/etc/config"
file_type: file
register: found_files
- name: Get only file names
set_fact:
file_names: "{{ found_files['files'] | sort(attribute='mtime',reverse=false) | map(attribute='path') | map('basename') | list }}"
- name: Apply filter while looping
set_fact:
config_file: "{{ file_names | map('splitext')| map('first') | list }}"
- name: Set up dict to map customer and port
set_fact:
dict_config: "{{ dict(config_file|zip(_serial)) }}"
vars:
start: 100
_len: "{{ config_file|length }}"
_serial: "{{ range(start, start + _len|int) | list }}"
我添加了这条指令:`
排序(属性='mtime',反向=假)
` 但它按最后修改的文件排序,我不想要这种行为。
有什么帮助吗?
解决方案
推荐阅读
- regex - 在 Python 中将希腊文件名转换为拉丁文件名
- html - 为什么 dir="rtl" 改变顺序,但只是有时?
- javascript - 如何在充满蒙皮网格的场景中使用实例化来优化性能?
- java - 如何在 Spring Kafka Listener 上捕获警告“Broker 可能不可用”
- r - 当我从数据框或数据表转换为矩阵时,为什么 R 中的大整数会变形?
- c - 一个像素可以分成更小的像素吗?或者是否有可能有 1.54 像素而不是 1 或 2?
- django - 使用 Django 提交表单后,如何保持在网页的同一选项卡上?
- c++ - 链接 QT 5.12 Mingw 中的所有 Boost 库
- javascript - 使用 Vue.js (cdn) 在特定元素上切换显示/隐藏
- css - 在 IE 11 中看不到主体/容器的边框