【发布时间】:2022-11-18 18:17:44
【问题描述】:
如何传输我从 ansible 剧本中的先前任务创建的文件?这是我到目前为止得到的:
- name: Create Yum Report
shell: |
cd /tmp
yum history info > $(hostname -s)_$(date "+%d-%m-%Y").txt
register: after_pir
- name: Transfer PIR
fetch:
src: /tmp/{{ after_pir }}
dest: /tmp/
但是,我在运行剧本时收到此错误消息。
TASK [Transfer PIR] ************************************************************************************************************
failed: [x.x.x.x] (item=after_pir) => {"ansible_loop_var": "item", "changed": false, "item": "after_pir", "msg": "the remote file does not exist, not transferring, ignored"}
我尝试运行不同的获取、同步和拉取方法,但我不确定问题出在哪里。
【问题讨论】:
-
该文件存在于我的远程服务器中。 “创建 Yum 报告”任务成功,我可以在我的 /tmp 目录中查看它
-
为什么您认为您在 shell 命令中动态创建的文件名会在
after_pir变量中可用。after_pir将只保存 shell 任务的结果。 id 建议在 ansible 中为文件名设置一个变量,然后您可以在写入文件和获取文件时使用该变量。 -
@ChrisDoyle 我很抱歉,但我是 ansible 的新手。我不明白你的意思。你能提供更多信息吗?那将对我有很大帮助。谢谢!
标签: automation ansible centos rhel