gpt4 book ai didi

ansible - 为什么 Ansible 复制模块不复制这个目录?

转载 作者:行者123 更新时间:2023-12-02 13:37:31 25 4
gpt4 key购买 nike

这应该很容易,但我已经尝试了一个小时了。我的代码让 Ansible 将 .vimrc 复制到每个主机,但 .vim 被默默忽略。

---
- name: vim pkg
apt: pkg=vim state=installed

- name: vim dirs
file: path=/home/jefdaj/.vim state=directory
file: path=/root/.vim state=directory

- name: vim files

# these work
copy: src=vim/vimrc dest=/home/jefdaj/.vimrc force=yes
copy: src=vim/vimrc dest=/root/.vimrc force=yes

# but these don't
copy: src=vim/bundle dest=/home/jefdaj/.vim/bundle force=yes recurse=yes
copy: src=vim/bundle dest=/root/.vim/bundle force=yes recurse=yes

这是怎么回事?我在路径上尝试了很多变化。它发生在 Debian 上的 ansible 1.5.5 中,以及当前的 git 版本上。

编辑:现在它尝试复制,但在创建多个目录之一时总是失败,并出现类似 OSError: [Errno 2] No such file or directory: '/root/.vim/bundle/bundle 的错误/vim-easymotion/autoload/vital/Over'

最佳答案

不确定为什么copy失败,但解决方案是使用synchronize。这有效:

- name: vim files
synchronize:
src=/absolute/repo/path/roles/common/files/{{ item.src }}
dest={{ item.dst }}
with_items:
- {src: vim/bundle, dst: /home/jefdaj/.vim }
- {src: vim/vimrc , dst: /home/jefdaj/.vimrc}
- {src: vim/bundle, dst: /root/.vim }
- {src: vim/vimrc , dst: /root/.vimrc }

- name: vim permissions
file: path={{ item.pth }} owner={{ item.own }} group={{ item.grp }} recurse=yes
with_items:
- {pth: /root/.vim , own: root , grp: root }
- {pth: /root/.vimrc , own: root , grp: root }
- {pth: /home/jefdaj/.vim , own: jefdaj, grp: jefdaj}
- {pth: /home/jefdaj/.vimrc, own: jefdaj, grp: jefdaj}

我必须对基本路径进行硬编码,因为它似乎无法正确处理相关路径。

关于ansible - 为什么 Ansible 复制模块不复制这个目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795117/

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