gpt4 book ai didi

linux - AWX文件复制找不到本地文件,复制到本地的文件不存在

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:56 25 4
gpt4 key购买 nike

在我们将 AWX 升级到 4.0.0(使用 Ansible 2.8.1)后,在早期版本的 Awx 上完美运行的剧本现在失败了,因为“复制”找不到任何本地文件。

当使用 Copy 将文件复制到远程服务器时,Ansible 提示找不到该文件。我尝试了各种位置,包括在 virtualenv 目录中,例如/var/opt/rh/rh-python36/和/opt/rh/rh-python36/root/tmp/(rh-python36 是为此剧本选择的环境,其他人失败得更早)

作为实验,我在远程服务器上创建了一个唯一命名的文件,并使用 remote_src 将该文件复制到 AWX 主机。 AWX 成功地做到了这一点并完成了剧本。 “太棒了”,我想,然后搜索文件(使用 mlocate: updatedb && locate testfile)以及 find/|grep testfile - 那个文件根本不存在。

这就像 AWX 正在为这个 playbook 的 session 创建一个临时文件结构,然后他们将其删除,这似乎使得 Copy 很难在任何一个方向上使用。

有人可以解释一下吗?


- hosts: "all"
become: true

- name: Copy a test file
hosts: "all"
tasks:
- name: copy a test file
copy:
src: /tmp/testfile
dest: /tmp/testfile
owner: root
group: root
mode: '0644'

回溯(最近调用最后): 运行中的文件“/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/plugins/action/copy.py”,第 464 行 source = self._find_needle('文件', 来源) 文件“/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/plugins/action/init.py”,第 1166 行,在 _find_needle 返回 self._loader.path_dwim_relative_stack(path_stack, dirname, needle) 文件“/opt/rh/rh-python36/root/lib/python3.6/site-packages/ansible/parsing/dataloader.py”,第 319 行,在 path_dwim_relative_stack 中 提高 AnsibleFileNotFound(file_name=source, paths=[to_text(p) for p in search])ansible.errors.AnsibleFileNotFound:无法在 Ansible Controller 上找到或访问“/tmp/testfile”。如果您正在使用一个模块并希望该文件存在于远程,请参阅 remote_src 选项

最佳答案

在运行剧本之前,Ansible AWX 将文件从项目路径复制到路径/tmp 路径。如果您的项目很大,可能会在开始作业时造成延迟。

如果您的 playbook 使用绝对路径,也会出现问题,因为作业实际上会从/tmp 运行 playbook。

运行任何 playbook 并检查 awx_task 容器,路径/tmp 将临时接收您的项目文件的副本

关于linux - AWX文件复制找不到本地文件,复制到本地的文件不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56699069/

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