Ansible - 使用 lineinfile 修改多行

问题描述 投票:0回答:0

我需要更新 Confluent 配置文件。我需要修改该行,如果它满足正则表达式并添加,如果具有这样的正则表达式的行不存在

Ansible 版本 2.9

这是我试过的。它更新一行,但如果这些行存在,则在末尾添加其他行

- name: Checking for entry to be present if not add entry   
  lineinfile:
    path: "{{test_path}}server.properties"
    regexp: "{{ item.regexp }}"
    line: "{{ item.line }}"
  loop:
    - { regexp: 'listeners(\\s)*=(\\s)*SASL_SSL://:9092', line: 'listeners=INTERNAL://:9092' }
    - { regexp: 'inter\\.broker\\.listener\\.name[\s\S]*=[\s\S]*SASL_SSL', line: 'inter.broker.listener.name=INTERNAL' }
    - { regexp: 'advertised\.listeners[\s\S]*=[\s\S]*(.*)', line: 'advertised.listeners=INTERNAL://{{inventory_hostname}}:9092' }
    - { regexp: 'listener.name.sasl_ssl.plain.sasl.jaas.config', line: 'listener.name.internal.plain.sasl.jaas.config' }
    - { regexp: 'security.inter.broker.protocol[\s\S]*=[\s\S]*SASL_SSL', line: 'listener.security.protocol.map=INTERNAL:SASL_SSL' }
    - { regexp: 'super.users[\s\S]*=[\s\S]*User:broker;User:admin;User:client;', line: 'super.users=User:admin;User:client;User:kafka_connect;User:schema_registry;User:kafka_rest;User:ksql;User:control_center;'}
  register: serverpropsupd

为了测试,我通过转义正则表达式中的特殊字符尝试了其中几个,其中几个保持原样。

是否可以循环执行此操作?如何使用 ansible 修改/插入满足正则表达式的行?

regex ansible insert ansible-2.x
© www.soinside.com 2019 - 2024. All rights reserved.