2016-09-10 82 views
0

我正在嘗試配置WSO2 API管理器。我必須在一些xml配置文件中更改一些行。替換和Lineinfile模塊不會替換一條線

如何在APIM_HOME /庫/ conf目錄/ API-manager.xml更換線

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

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

我已經嘗試了一些正則表達式與lineinfile,更換模塊&狀態=目前,但它正在將新行添加到文件末尾。我寧願要用與舊線路位置相同的新線路替換現有線路。

回答

1

試試這個 -

- 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>" 

這爲我工作,並取代了線

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

與它沒有工作的行

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

。這適用於這種情況,因爲只有一個標籤發生。還有一些情況下,值也可以在其他行中重複。因此,我想找到以^,(。*)開始的正則表達式匹配,以$等結尾。另一個技巧也是簡單地添加一個新行(insertafter或insertbefore),並通過圍繞行來評論原始行。感謝您分享您的經驗和幫助 –

+0

在APIM_HOME/repository/conf/axis2/axis2.xml :::: a。 AllowAll其中 8280 8243