我需要更新 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 修改/插入满足正则表达式的行?