Ansible registriert Variable in der Protokolldatei

Ansible registriert Variable in der Protokolldatei

Ich versuche, einen Befehl „yum list updates“ auszuführen und das Ergebnis in eine Datei auf dem lokalen Server auszugeben. Dies würde so skaliert, dass es auf mehreren Servern ausgeführt werden kann. Ich habe das Modul „local_action“ gefunden, dies führt jedoch zu einer nicht lesbaren Datei. Ich habe den Befehl „-debug: var: result“ gefunden, um die erforderlichen Informationen in einem guten Format anzuzeigen, aber es scheint keine Möglichkeit zu geben, diese in eine Datei zu übertragen.

Unten finden Sie das Playbook:

---
- hosts:  localhost
  tasks:
  - name: List all available updates
    yum:
      list: updates
    register: result

  - debug:
      var: result
  - local_action:
      module: copy
      content: "{{ result.results }}"
      dest: "/root/yumlist.yml"

Die Debug-Aufgabe gibt ein Ergebnis wie dieses zurück: *

ok: [localhost] => {
    "result": {
        "changed": false, 
        "failed": false, 
        "results": [
            {
                "arch": "x86_64", 
                "envra": "0:firefox-68.4.1-1.el7_7.x86_64", 
                "epoch": "0", 
                "name": "firefox", 
                "release": "1.el7_7", 
                "repo": "rhel-7-server-rpms", 
                "version": "68.4.1", 
                "yumstate": "available"
            }, 
            {
                "arch": "x86_64", 
                "envra": "0:fribidi-1.0.2-1.el7_7.1.x86_64", 
                "epoch": "0", 
                "name": "fribidi", 
                "release": "1.el7_7.1", 
                "repo": "rhel-7-server-rpms", 
                "version": "1.0.2", 
                "yumstate": "available"
            }, 

und die local_action gibt mir Folgendes ...

[{"envra": "0:firefox-68.4.1-1.el7_7.x86_64", "Name": "Firefox", "Repo": "Rhel-7-Server-RPMs", "Epoch": "0", "Version": "68.4.1", "Release": "1.el7_7", "yumstate": "verfügbar", "Arch": "x86_64"}, {"envra": "0:fribidi-1.0.2-1.el7_7.1.x86_64", "Name":

Irgendwelche Ideen?

Antwort1

Wenn Ihnen die JSON- oder YAML-Ausgabe nichts ausmacht und Sie nur eine schönere Darstellung wünschen, können Sie ein paar Filter ausprobieren (to_nice_json oder to_nice_yaml).Referenz.

  - local_action:
      module: copy
      content: "{{ result.results |to_nice_json }}"
      dest: "/root/yumlist.yml"

oder

  - local_action:
      module: copy
      content: "{{ result.results |to_nice_yaml }}"
      dest: "/root/yumlist.yml"

verwandte Informationen