2

我有一个由 Ansible Tower 系统和 Ubuntu 桌面客户端组成的实验室。我已经成功地创建并执行了一些剧本来更新和安装软件包,一切都很好。现在我想从远程 Ubuntu 桌面获取 /var/log/syslog 到我的 Ansible Tower 系统。我的剧本是:

---
- hosts: Ubuntu_18.04_Desktops
  tasks:

  - name: Get /var/log/syslog
    fetch:
      src: /var/log/syslog
      dest: /tmp

运行这个 playbook 会显示结果:

PLAY [Ubuntu_18.04_Desktops] ***************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.1.165]
TASK [Get /var/log/syslog] *****************************************************

    changed: [192.168.1.165]
    PLAY RECAP *********************************************************************
    192.168.1.165              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

但是 Tower 服务器的 /tmp 目录中没有文件。

我尝试使用“flat”指令并将文件保存到我家的文件夹中,但没有成功。

4

2 回答 2

2

我发现了问题 - Ansible Tower(在我的例子中为 AWX)将获取的文件存储在 ansible/awx_task 容器的文件系统中。

于 2019-11-02T19:59:56.737 回答
1

Ansible Tower 的作业隔离系统对您隐藏某些路径并将它们重定向到安全位置。

如果您确实想使用系统的 /tmp,您可以打开 Tower 设置 -> 作业 -> 将 /tmp 添加到路径以公开隔离作业。

请注意,如果您需要不将 /tmp 暴露给所有 Tower 作业的安全性,则不应执行此操作。

于 2020-07-23T13:40:56.320 回答