gpt4 book ai didi

python - Ansible:如何迭代 `stat` 提供的字典中的路径?

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:39 24 4
gpt4 key购买 nike

我正在尝试使用 ansible 来找出存在哪些路径集合,然后只执行存在的路径中的一个(它不仅仅是下面示例中的 copy ,而且还进一步编辑)。这是我的想法 - 这是第二次迭代,我在第二个任务中使用 with_item 也无法得到任何东西。

- name: disable plasma - identify files to act on
stat:
path: "{{ item }}"
register:
plasma_conf
with_items:
- "/usr/share/autostart/plasma-desktop.desktop"
- "/usr/share/autostart/plasma-netbook.desktop"
- "/etc/xdg/autostart/plasmashell.desktop"

- name: disable plasma - copy config locally
copy:
src: "{{ item.item }}"
dest: "/home/{{ main_user }}/.config/autostart/{{ item.item | basename }}"
with_dict:
plasma_conf.results
when:
item.stat.exists == true

复制任务失败,并显示致命:[localhost] => with_dict需要一个字典。如何根据 stat 提供的 dict 结构来完成这项工作?

最佳答案

感谢您的所有评论 - debugwith_items 之前曾在多次迭代中使用过,但未能产生我想要的输出。我回去,使用了经过验证的“废弃所有内容并从头开始”的方法,并使用以下极简、独立的示例:

 ---
- hosts:
localhost
tasks:
- name:
create testing infrastructure a)
file:
path: "/tmp/{{ item }}"
state: touch
mode: 744
with_items:
- testFileA
- testFileB
- name:
create testing infrastructure b)
file:
path: "/tmp/testDir"
state: directory
mode: 744
- name:
identify files to act on
stat:
path: "{{ item }}"
register:
files2move
with_items:
- "/tmp/testFileA"
- "/tmp/testFileB"
- "/tmp/testFileC"
- name:
copy available files
copy:
src: "{{ item.item }}"
dest: "/tmp/testDir/{{ item.item | basename }}"
mode: 640
with_items:
files2move.results
when:
item.stat.exists == true

我真的不知道现在有什么不同,但这是有效的 - 无论是在极简版本中还是在移植回我的代码中时......

关于python - Ansible:如何迭代 `stat` 提供的字典中的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31891068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com