我是新来的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