ansible parse text-string stdout aus

Mein problem ist mit ansible und analysieren stdout. Ich brauche, um zu erfassen den stdout von einem ansible spielen und analysieren diese Ausgabe für einen bestimmten Teilstrings innerhalb stdout und speichern Sie in einer var. Meine konkreten Anwendungsfall unter

- 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

Dies erzeugt eine Ausgabe mit der folgenden Zeile, das Ziel ist das erfassen der maskierte Schlüssel, der jboss-Tresor generiert und speichern Sie in einem ansible var, so kann ich es verwenden, um zu konfigurieren, die standalone.xml Vorlage:

vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>

Ich brauche einen Weg, Parsen dieses Strings, eventuell mit regex und speichern Sie die "MASKE-5dOaAVafCSd" substring in einem ansible var mit set_facts-Modul oder jedes andere ansible-Modul.

Derzeit mein code sieht wie folgt aus

#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') }}"

Dieser code ist die Definition masked_value als results.stdout, nicht die erwarteten capture-Gruppe.

Bitte formulieren Sie Ihre Frage, es ist absolut unklar. Brauchst du, um ein komplettes playbook und analysieren Sie diese Ausgabe? Oder führen Sie einen Befehl innerhalb playbook und Geige, die nur mit diesem Befehl?
Hallo Konstantin, im wesentlichen versuche ich zu speichern-MASKE-5dOaAVafCSd in eine variable.

InformationsquelleAutor TonyNguyen | 2017-08-17

Schreibe einen Kommentar