簡體   English   中英

Ansible 使用替換過濾器替換 2 個連續單詞之間的任何字符

[英]Ansible using replace filter to replace any character between 2 consecutive word

我能知道如何用 **** 替換 http://****: 和 @192.29.91.78:8080 之間的任何字符嗎? 條件是如果它有 https、:、@ 和 192.29.91.78:8080,則應將值從 : 替換為 **** 到 @。

下面是我的輸出示例和代碼。 我想為此使用過濾器。 如果有更好的解決方案,我也會打開它。

詹金斯輸出

TASK [Cloning From Bitbucket : Failed to clone from Bitbucket ***
fatal: [localhost]: FAILED! => {"changed": false, "msg": "fatal: unable to access 'http://****:myPssw0rd%40@192.29.91.78:8080/repo-name/repo-name.git/': Empty reply from server\n"}

我的劇本代碼

  rescue:
  - name: Failed to clone from Bitbucket
    fail:
      msg: "{{ responseOutput.stderr }}"

我也試過這個

    fail:
      msg: "{{ responseOutput.stderr | regex_replace('^http:.*:.*@$', 'http://****:****@') }}"

您可以使用正則表達式替換過濾器,就像這樣,

fail:
  msg: "{{ errorMessage.stderr | regex_replace('^(.*http://\*\*\*\*:).*(@.*)$', '\\1****\\2') }}"
    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM