可能-使用File2中的对应值覆盖File1中的值

hgb9j2n6  于 2022-10-06  发布在  Jenkins
关注(0)|答案(1)|浏览(185)

我有两个文件,文件1和文件2。

我希望Ansible读取文件2的每一行,并替换文件1中相应键的值。这些文件可能有更多的行,我不知道如何准确地搜索和替换File1中File2中的键,并用File2中的值替换File1中的相应值。任何帮助我们都会很感激。:(密钥不会相同,所以我不能硬编码我需要动态搜索和替换。
文件%1可以具有不同的格式,如.json.js.txt

看似合理的2.7

键/值的格式也可以是键=值

ex.
file1
 abc: cat
 def: horse
 test: house

file2
 def: airplane
 test: blue

Expected resulting file:
file1:
 abc: cat
 def: airplane
 test: blue

谢谢,我会适应这个模块的。

wj8zmpe1

wj8zmpe11#

在本例中,我使用了以下树:

.
├── test.yml
└── vars
    └── merge_vars
        ├── file1.yml
        └── file2.yml

Var文件与您问题中的相同。

示例攻略:

---
- hosts: localhost
  gather_facts: false

  tasks:
    - name: import vars from files
      include_vars:
        dir: vars/merge_vars
        name: merged_vars

    - debug: 
        var: merged_vars

提供:

PLAY [localhost]******************************************************************************************************************

TASK [import vars from files]*****************************************************************************************************
ok: [localhost]

TASK [debug]**********************************************************************************************************************
ok: [localhost] => {
    "merged_vars": {
        "abc": "cat",
        "def": "airplane",
        "test": "blue"
    }
}

PLAY RECAP************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

相关问题