的regex_replace應該做的伎倆。
這是代碼。我基本上搜索'ALERTPUBLISHER-'字符串,然後剪切它後面的32個字符的字符串,keeping it in a named group(就在註釋的上方),然後在輸出中使用它。
我注意到你的API是在json中,如果你有可能它可能會很方便,如果你要求只有uuid字符串的附加字段。這將比任何正則表達式都強大得多。
- hosts: localhost
gather_facts: False
vars:
message: "\"Role name 'mgmt-ALERTPUBLISHER-uuid-placeholder' is not compliant. Use 'mgmt-ALERTPUBLISHER-b7d445b08a96e7f19ff0ff005686cddd', or do not use a name of the format <service name>-<roletype>-<arbitrary value>.\""
pre_tasks:
- debug:
msg: "{{ message | regex_replace('^.*ALERTPUBLISHER-(?P<uuid>.{32}).*$', '\\g<uuid>') }}"
這給了我下面的輸出
PLAY [localhost] *********************************************************************************************************************************************************************************************************************************************************************************************************************************************************
TASK [debug] *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": "b7d445b08a96e7f19ff0ff005686cddd"
}
PLAY RECAP ***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0