Puncte:0

Modulele shell/comandă nu oferă rezultate din playbook pe Raspberry Pis

drapel se

Folosind Ansible 2.11.6 de la Ubuntu. Am două Raspberry Pis inventar. Unul este un Pi3 mai vechi cu Stretch; celălalt un Pi4 cu Buster.

$ ansible -i inventar -m shell -a "df -h" all

arată rezultatul df -h pentru ambii Pis, așa cum era de așteptat. Dar

$ ansible-playbook -i inventory main.yml

Unde principal.yml este

---
- gazde: toate
  sarcini:
    - nume: arată spațiu pe disc
      coajă:
        cmd: df -h

după adunarea faptelor, spectacole

SARCINA [arată spațiu pe disc] *******************
schimbat: [pi4]
schimbat: [pi3]

fără a afișa rezultatul de df -h.

Am încercat comanda: în loc de coajă:. Am încercat executabil: /bin/bash. Nicio diferenta. La fel principal.yml funcționează cu un furnizor ansible Vagrant atunci când construiește o mașină virtuală Ubuntu și arată df -h ieșire.

Ce îmi lipsește?

Actualizați Aceasta a fost o greșeală din partea mea. Șablonul Vagrantfile pe care l-am folosit este inclus ansible.verbose = adevărat. Eliminați asta și totul se comportă în mod constant.

Puncte:2
drapel in

Vă lipsește sarcina de depanare care ar afișa rezultatul.

---
- gazde: toate
  sarcini:
  - nume: arată spațiu pe disc
    coajă:
      cmd: df -h
    înregistrare: df
  - depanare:
      var: df

Ansible nu afișează direct rezultatul comenzii.

drapel se
Mulțumiri. Ciudat că furnizorul Ansible din Vagrant se comportă diferit.
drapel in
Nu am experiență cu Vagrant, așa că pot doar să presupun că este o caracteristică Vagrant pentru a afișa direct rezultatul. M-am uitat prin [Setări Ansible](https://docs.ansible.com/ansible/latest/reference_appendices/config.html), dar nu am găsit nimic care să sune că ar fi util.
Puncte:2
drapel th

La sarcina de verbozitate implicită, rezultatele nu sunt afișate de Mod implicit apel invers stdout. Comenzile ad-hoc folosesc în mod normal minim apel invers, care are un comportament diferit. Dacă îl vedeți în ieșirea Vagrant, fie folosește un apel invers diferit, fie rulează cu o verbozitate mai mare, unde sunt afișate mai multe informații:

ec2-user@pandora ~ $ ansible-playbook test.yml 

PLAY [localhost] ************************************************ ****************

SARCINA [comandă] ************************************************ ********************
schimbat: [localhost]

JOACĂ RECAPITULARE ************************************************ ********************
localhost: ok=1 schimbat=1 inaccesibil=0 eșuat=0 omis=0 salvat=0 ignorat=0   
ec2-user@pandora ~ $ ANSIBLE_STDOUT_CALLBACK=test ansible-playbook minim.yml
localhost | SCHIMBAT | rc=0 >>
Filesystem Size Used Avail Use% Montat pe
devtmpfs 3,9G 0 3,9G 0% /dev
tmpfs 3,9G 272K 3,9G 1% /dev/shm
tmpfs 3.9G 8.9M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 12G 7,3G 4,8G 61% /
/dev/nvme1n1 40G 9.0G 32G 23% /home
fs-c2c955bb.efs.us-east-2.amazonaws.com:/ 8.0E 0 8.0E 0% /ammit
tmpfs 788M 0 788M 0% /run/user/1913323
tmpfs 788M 0 788M 0% /run/user/257994
tmpfs 788M 0 788M 0% /run/user/1000
ec2-user@pandora ~ $ ansible-playbook test.yml -vvv
ansible-playbook [core 2.11.5] 
  fișier de configurare = /home/ec2-user/ansible-aws/ansible/ansible.cfg
  cale de căutare a modulului configurat = ['/home/ec2-user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  Locația modulului ansible python = /home/ec2-user/ansible-aws/.venv/lib/python3.8/site-packages/ansible
  ansible collection location = /home/ec2-user/ansible-aws/ansible/collections
  locație executabilă = /home/ec2-user/ansible-aws/.venv/bin/ansible-playbook
  versiunea python = 3.8.5 (implicit, 18 februarie 2021, 01:24:20) [GCC 7.3.1 20180712 (Red Hat 7.3.1-12)]
  versiunea jinja = 3.0.2
  libyaml = Adevărat
Folosind /home/ec2-user/ansible-aws/ansible/ansible.cfg ca fișier de configurare
Omiterea apelului înapoi „implicit”, deoarece avem deja un apel invers stdout.
Sari peste apel invers „minimal”, deoarece avem deja un apel invers stdout.
Se omite apelul invers „oneline”, deoarece avem deja un apel invers stdout.

GUARDUL: test.yml ******************************************** ****************
1 joacă în test.yml

PLAY [localhost] ************************************************ ****************
META: conducătorii de conducere

SARCINA [comandă] ************************************************ ********************
calea sarcinii: /home/ec2-user/test.yml:4
Folosind fișierul modul /home/ec2-user/ansible-aws/.venv/lib/python3.8/site-packages/ansible/modules/command.py
Canalizarea este activată.
<127.0.0.1> STABILISȚI CONEXIUNEA LOCALĂ PENTRU UTILIZATOR: ec2-user
<127.0.0.1> EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-gljjnrdznzzibrxampvyyzigtjnozzra ; /home/ec2-user/ansible-aws/.venv/bin/python'"'"' && sleep 0'
schimbat: [localhost] => {
    „schimbat”: adevărat,
    „cmd”: [
        "df",
        "-h"
    ],
    "delta": "0:00:00.004672",
    „sfârșit”: „2021-10-20 12:22:07.355248”,
    „invocare”: {
        „module_args”: {
            "_raw_params": "df -h",
            „_uses_shell”: fals,
            „argv”: nul,
            „chdir”: nul,
            „creează”: nul,
            „executable”: nul,
            „elimină”: nul,
            „stdin”: nul,
            „stdin_add_newline”: adevărat,
            „strip_empty_ends”: adevărat,
            „avertiza”: fals
        }
    },
    "msg": "",
    "rc": 0,
    "start": "2021-10-20 12:22:07.350576",
    "stderr": "",
    „stderr_lines”: [],
    "stdout": "Dimensiunea sistemului de fișiere utilizată Utilizare disponibilă% montată pe\ndevtmpfs 3.9G 0 3.9G 0% /dev\ntmpfs 3.9G 124K 3.9G 1% /dev/shm\$
tmpfs 3.9G 8.8M 3.9G 1% /run\ntmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup\n/dev/nvme0n1p1 12G 7.3G 4.8G 61% /\n/dev/nvme1n      
                          40G 9.0G 32G 23% /home\nfs-c2c955bb.efs.us-east-2.amazonaws.com:/ 8.0E 0 8.0E 0% /ammit\ntmpfs 788M 0 788M 0% /run/user/1911fs2                      
                788M 0 788M 0% /run/user/257994",
    „stdout_lines”: [
        „Dimensiunea sistemului de fișiere utilizată Avail Use% montat pe”,
        "devtmpfs 3.9G 0 3.9G 0% /dev",
        „tmpfs 3.9G 124K 3.9G 1% /dev/shm”,
        „tmpfs 3.9G 8.8M 3.9G 1% /run”,
        „tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup”,
        „/dev/nvme0n1p1 12G 7.3G 4.8G 61% /”,
        „/dev/nvme1n1 40G 9.0G 32G 23% /home”,
        „fs-c2c955bb.efs.us-east-2.amazonaws.com:/ 8.0E 0 8.0E 0% /ammit”,
        „tmpfs 788M 0 788M 0% /run/user/1913323”,
        „tmpfs 788M 0 788M 0% /run/user/257994”
    ]
}
META: conducătorii de conducere
META: conducătorii de conducere

JOACĂ RECAPITULARE ************************************************ ********************
localhost: ok=1 schimbat=1 inaccesibil=0 eșuat=0 omis=0 salvat=0 ignorat=0   

De asemenea, puteți scoate în mod explicit lucruri folosind depanare:

---
- gazde: toate
  sarcini:
  - nume: obține spațiu pe disc
    comanda:
      cmd: df -h
    înregistrare: rezultat

  - depanare:
      msg: "{{ result.stdout_lines }}"
ec2-user@pandora ~ $ ansible-playbook test.yml 

PLAY [localhost] ************************************************ ****************

SARCINA [obțineți spațiu pe disc] ******************************************** *************
schimbat: [localhost]

SARCINA [depanare] ************************************************ ********************
ok: [localhost] => {
    "msg": [
        „Dimensiunea sistemului de fișiere utilizată Avail Use% montat pe”,
        "devtmpfs 3.9G 0 3.9G 0% /dev",
        „tmpfs 3.9G 124K 3.9G 1% /dev/shm”,
        „tmpfs 3.9G 8.8M 3.9G 1% /run”,
        „tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup”,
        „/dev/nvme0n1p1 12G 7.3G 4.8G 61% /”,
        „/dev/nvme1n1 40G 9.0G 32G 23% /home”,
        „fs-c2c955bb.efs.us-east-2.amazonaws.com:/ 8.0E 0 8.0E 0% /ammit”,
        „tmpfs 788M 0 788M 0% /run/user/1913323”,
        „tmpfs 788M 0 788M 0% /run/user/257994”
    ]
}

JOACĂ RECAPITULARE ************************************************ ********************
localhost: ok=2 schimbat=1 inaccesibil=0 eșuat=0 omis=0 salvat=0 ignorat=0   
drapel in
Întotdeauna înveți ceva nou. Acesta ar trebui să fie răspunsul acceptat.
drapel se
Asta are sens și m-a făcut să-mi descopăr greșeala. Mulțumiri.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.