Eseguire comandi shell con command e shell
Esegua comandi arbitrari sui nodi remoti.
Eseguire comandi shell con command e shell è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.
Eseguire comandi reali da remoto
A volte è sufficiente eseguire un comando grezzo sui server. Ansible offre due moduli per farlo: command e shell. 🖥️
Il modulo command
Il modulo command esegue direttamente un programma sull'host remoto. È il valore predefinito sicuro per comandi semplici e singoli.
ansible all -m command -a "uptime"command evita la shell
Poiché command viene eseguito senza una shell, ignora pipe, redirezioni e variabili come $HOME. Questo lo rende prevedibile e sicuro.
ansible all -m command -a "ls /etc"Il modulo shell
Il modulo shell esegue il comando tramite una shell reale sull'host, quindi pipe, redirezioni e variabili funzionano tutte.
ansible all -m shell -a "cat /etc/*release"Le pipe richiedono shell
Quando il comando utilizza una pipe o una redirezione, scelga shell. Il modulo command tratterebbe semplicemente | come un normale argomento.
ansible web -m shell -a "ps aux | grep nginx"Variabili d'ambiente in shell
Solo il modulo shell espande le variabili. Lo utilizzi quando il comando dipende da elementi come $HOME o $PATH.
ansible all -m shell -a "echo $HOME"Preferire command quando possibile
Scelga command per impostazione predefinita e utilizzi shell solo quando ha davvero bisogno delle funzionalità della shell. Meno shell significa meno sorprese.
Eseguire in una directory con chdir
Entrambi i moduli accettano chdir per passare a una directory prima dell'esecuzione, una soluzione più pulita rispetto a inserire cd nel comando.
ansible app -m command -a "chdir=/srv git pull"Proteggere le riesecuzioni con creates
L'opzione creates salta il comando se un determinato file esiste già, un modo semplice per evitare di ripetere il lavoro.
ansible app -m command -a "touch /tmp/done creates=/tmp/done"Non sono idempotenti
Entrambi i moduli segnalano changed a ogni esecuzione, poiché Ansible non può sapere cosa abbia fatto il comando grezzo. Quando disponibile, preferisca un modulo reale.
Ultima risorsa, non prima scelta
Consideri shell e command come vie di fuga. Se è disponibile un modulo dedicato come service o package, lo utilizzi per ottenere risultati più sicuri.
Verifica rapida
Deve eseguire un comando che utilizza una pipe. Quale modulo deve scegliere?
Riepilogo
Utilizzi command per i comandi semplici e shell quando servono pipe o variabili. Ricordi che entrambi segnalano sempre changed. 🖥️
Domande Frequenti
La lezione «Eseguire comandi shell con command e shell» è gratuita?
Sì — il testo completo di «Eseguire comandi shell con command e shell» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.
Cosa imparerò in «Eseguire comandi shell con command e shell»?
Esegua comandi arbitrari sui nodi remoti. Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ansible Academy?
Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Eseguire comandi shell con command e shell»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ansible Academy?
Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Anatomia del comando ansible
- Pattern: tutti, web e host1
- Eseguire comandi shell con command e shell
- Escalation dei privilegi con become