使用变量文件名进行 Ansible fetch

使用变量文件名进行 Ansible fetch

我是 Ansible 的新手,实际上才刚刚开始在我们的环境中实施它。我们的组织要求我们保留应用于我们服务器的更新日志。为了保持一致性和清晰度,这些文件名是使用以下命令创建的:

yum history info > $(date +"%Y%m%d")_$(hostname)_updates.txt

由于文件名在运行命令的每一天都会发生变化,我如何在剧本中使用 fetch 来调用文件名?我尝试了以下几种方法,包括在 src 中使用和不使用引号、通过变量提供以及其他几种方法:

- name: Retrieve History
  fetch:
    src: '$(date +"%Y%m%d")_$(hostname)_updates.txt'
    dest: /path/to/file/
    flat: yes

我搜索并尝试了很多方法,但都无济于事,我已经没有线索了。有什么建议吗?

答案1

也许您应该尝试使用ansible_date_time变量并通过 jinja 渲染文件名?

像这样:

- name: Retrieve History
  fetch:
    src: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}_{{ ansible_hostname }}_updates.txt"
    dest: /path/to/file/
    flat: yes

相关内容