我是新來的Stackoverflow,所以請裸露在我身邊。我目前的問題是有理由和解析標準輸出。我需要從一個可靠的遊戲中捕獲標準輸出並解析這個輸出,以獲得stdout中的特定子字符串並保存到var中。我的具體使用情況是低於從標準輸出解析文本字符串
- shell: "vault.sh --keystore EAP_HOME/vault/vault.keystore | --keystore-password vault22 --alias vault --vault-block | vb --attribute password --sec-attr 0penS3sam3 --enc-dir | EAP_HOME/vault/ --iteration 120 --salt 1234abcd" register: results become: true
這將生成以下行的輸出,我們的目標是捕獲jboss的拱頂產生隱蔽的密鑰並保存在ansible變種,所以我可以用它來配置在standalone.xml模板:
vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
我需要的方式解析這個字符串可能正則表達式並保存「MASK-5dOaAVafCSd」子到使用set_facts模塊或任何其他ansible模塊的ansible變種。
目前我的代碼看起來像這樣
#example stdout results: vault-option name=\"KEYSTORE_PASSWORD\" value=\"MASK-5dOaAVafCSd\"/> - name: JBOSS_VAULT:define keystore password masked value variable set_fact: masked_value: | "{{ results.stdout | regex_replace('^.+(MASK-.+?)\.+','\\1') }}"
此代碼定義masked_value爲results.stdout,而不是預期的捕獲組。
非常感謝, 託尼N.
請更改您的問題,這是絕對不清楚的。你需要運行一個完整的劇本並解析它的輸出嗎?或者在劇本中運行一些命令並且只調用該命令的輸出? –
您好康斯坦丁,基本上我試圖將MASK-5dOaAVafCSd存儲到一個變量中。 – TonyNguyen