Python
如何在遠端伺服器中使用ansible將兩個文件合併為一個文件
我需要合併兩個沒有重複條目的文件。有什麼辦法可以通過ansible模組實現它。例如,我有兩個文件 /etc/hosts1 和 /etc/hosts2。我需要一個 /etc/hosts 文件,其中包含 /etc/hosts1 和 /etc/hosts2 中存在的所有條目而沒有重複條目。我怎樣才能做到這一點。一個例子將不勝感激
- name: Merge two files assemble: src: /etc/hosts1 dest: /etc/hosts2
上面的 assemble 模組失敗
這行得通。它讀取所有文件的內容並將生成的行數組減少為唯一值。然後創建一個包含這些行的新文件。
- 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') }}"
我正在使用
awk 1
而不是cat
在源文件的末尾添加可能缺少的換行符。