2016-09-10 2 views
0

Ich versuche, den WSO2-API-Manager zu konfigurieren. Ich muss einige Zeilen in einigen XML-Konfigurationsdateien ändern.Ersetzen und LineInfile-Modul ersetzt keine Zeile

Wie ersetze ich in APIM_HOME/repository/conf/api-manager.xml eine Linie

<GatewayEndpoint>http://${carbon.local.ip}:${http.nio.port},https://${carbon.local.ip}:${https.nio.port}</GatewayEndpoint> 

mit

<GatewayEndpoint>http://ip-111-111-11.abc.xyz.com:1234,https://ip-111-111-11.abc.xyz.com:{https.nio.port}</GatewayEndpoint> 

Ich habe einige regex mit lineinfile versucht, ersetzen Module & state = vorhanden, aber es fügt die neue Zeile am Ende der Datei hinzu. Ich möchte lieber die bestehende Linie durch die neue Linie in derselben Position wie die alte Linie ersetzen.

Antwort

1

Versuchen Sie, diese -

- name: "Test lineinfile" 
    lineinfile: 
    dest: "/etc/ansible/lineinfile.xml" 
    state: "present" 
    line: "<GatewayEndpoint>http://ip-111-111-11.abc.xyz.com:1234,https://ip-111-111-11.abc.xyz.com:{https.nio.port}</GatewayEndpoint>" 
    regexp: "<GatewayEndpoint>" 

Das ist für mich gearbeitet und ersetzt die Linie

<GatewayEndpoint>http://${carbon.local.ip}:${http.nio.port},https://${carbon.local.ip}:${https.nio.port}</GatewayEndpoint> 

mit der Linie

<GatewayEndpoint>http://ip-111-111-11.abc.xyz.com:1234,https://ip-111-111-11.abc.xyz.com:{https.nio.port}</GatewayEndpoint> 
+0

Es funktionierte hat. Dies funktioniert in diesem Fall, da nur ein Ereignis des -Tags auftritt. Es gibt einige weitere Fälle, in denen die Werte auch in anderen Zeilen wiederholt werden können. Daher wollte ich den regulären Ausdruck finden, der mit ^, (. ​​*) Beginnt und mit $ etc. endet. Der andere Trick besteht darin, einfach eine neue Zeile hinzuzufügen (einzufügen oder einzufügen) und die ursprüngliche Zeile zu kommentieren, indem man die Zeile umgibt . Vielen Dank, dass Sie Ihre Erfahrungen geteilt und uns geholfen haben. –

+0

In APIM_HOME/repository/conf/axis2/axis2.xml :::: a. AllowAll wobei 8280 8243 –