如何在远程服务器中使用ansible将两个文件合并为单个文件

cel*_*rab 2 python copy ansible ansible-playbook jinja2

我需要合并两个文件,其中没有重复的条目。有什么方法可以通过 ansible 模块实现它吗?例如,我有两个文件 /etc/hosts1 和 /etc/hosts2。我需要一个 /etc/hosts 文件,其中包含 /etc/hosts1 和 /etc/hosts2 中存在的所有条目,并且没有重复的条目。我怎样才能做到这一点。举个例子将不胜感激

- name: Merge two files
  assemble:
    src: /etc/hosts1
    dest: /etc/hosts2
Run Code Online (Sandbox Code Playgroud)

上述汇编模块失败

Ger*_*der 5

这有效。它读取所有文件的内容并将生成的行数组减少为唯一值。然后创建一个包含这些行的新文件。

- hosts: localhost
  gather_facts: no
  vars:
    hostsfiles:
      - /tmp/hosts1
      - /tmp/hosts2
  tasks:
  - name: read files
    command: awk 1 {{ hostsfiles | join(' ') }}
    register: hosts_contents
  - name: create hosts file
    copy:
      dest: /tmp/hosts
      content: "{{ hosts_contents.stdout_lines | unique |join('\n') }}"
Run Code Online (Sandbox Code Playgroud)

我正在使用awk 1而不是cat在源文件末尾添加可能丢失的换行符。