Ansible 如何在两台服务器上修改同一文件的不同值

Ansible 如何在两台服务器上修改同一文件的不同值,ansible,Ansible,两台服务器的同一目录中存在相同的文件。我想单独修改此文件中的某个值,但内容不同,如何修改 服务器1: # /opt/center/conf/properties kafka=test # /opt/center/conf/properties kafka=node1 # /opt/center/conf/properties kafka=node2 服务器2: # /opt/center/conf/properties kafka=test # /opt/center/conf/prop

两台服务器的同一目录中存在相同的文件。我想单独修改此文件中的某个值,但内容不同,如何修改

服务器1:

# /opt/center/conf/properties
kafka=test
# /opt/center/conf/properties
kafka=node1
# /opt/center/conf/properties
kafka=node2
服务器2:

# /opt/center/conf/properties
kafka=test
# /opt/center/conf/properties
kafka=node2
# /opt/center/conf/properties
kafka=node2
现在我想将它们更改为一个增量值,即node all的数量,如果我的node all有2个,则将其修改为以下值

↓↓↓↓↓↓↓↓

服务器1:

# /opt/center/conf/properties
kafka=test
# /opt/center/conf/properties
kafka=node1
# /opt/center/conf/properties
kafka=node2
服务器2:

# /opt/center/conf/properties
kafka=test
# /opt/center/conf/properties
kafka=node2
# /opt/center/conf/properties
kafka=node2
我尝试过这种方法,但他修改的两个文件内容相同,这不是我想要的

- name: modify properties
  replace:
    path=/opt/center/conf/properties
    regexp="^(kafka=+)[^\n]+$"
    replace="kafka=node{{index+1}}"
  loop: "{{groups['node-all']}}"
  run_once: true
  loop_control:
    index_var: index
结果:

服务器1:

# /opt/center/conf/properties
kafka=test
# /opt/center/conf/properties
kafka=node1
# /opt/center/conf/properties
kafka=node2
服务器2:

# /opt/center/conf/properties
kafka=test
# /opt/center/conf/properties
kafka=node2
# /opt/center/conf/properties
kafka=node2

您可以使用hostvars变量,避免算术运算

主机文件 剧本变成了 更新,如果不想在主机文件中更改,请根据需要添加+1
但是我不想在hosts文件中移动某些内容,因为我不知道他将拥有多少。第二种方法解决了问题,非常感谢。