0Pricing
Ansible Academy · Lección

Ejecutar comandos de shell con command y shell

Ejecute comandos arbitrarios en nodos remotos.

Ejecutar comandos de shell con command y shell es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ansible Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ansible Academy incluye 4 lecciones en total.

Ejecute comandos reales de forma remota

A veces solo necesita ejecutar un comando sin procesar en sus servidores. Ansible le ofrece dos módulos para ello: command y shell. 🖥️

El módulo command

El módulo command ejecuta directamente un programa en el host remoto. Es la opción segura predeterminada para comandos simples y únicos.

ansible all -m command -a "uptime"

command omite el shell

Como command se ejecuta sin un shell, ignora las tuberías, las redirecciones y variables como $HOME. Esto lo mantiene predecible y seguro.

ansible all -m command -a "ls /etc"

El módulo shell

El módulo shell ejecuta su comando mediante un shell real en el host, por lo que funcionan las tuberías, las redirecciones y las variables.

ansible all -m shell -a "cat /etc/*release"

Las tuberías requieren shell

Cuando su comando utiliza una tubería o una redirección, utilice shell. El módulo command trataría | simplemente como un argumento normal.

ansible web -m shell -a "ps aux | grep nginx"

Variables de entorno en shell

Solo el módulo shell expande variables. Utilícelo cuando su comando dependa de algo como $HOME o $PATH.

ansible all -m shell -a "echo $HOME"

Prefiera command cuando sea posible

Utilice command de forma predeterminada y recurra a shell únicamente cuando necesite realmente sus funciones. Menos shell significa menos sorpresas.

Ejecute en un directorio con chdir

Ambos módulos aceptan chdir para cambiar a un directorio antes de ejecutar el comando, lo que resulta más limpio que incluir cd dentro del comando.

ansible app -m command -a "chdir=/srv git pull"

Evite repetir ejecuciones con creates

La opción creates omite el comando si ya existe un archivo determinado; es una forma sencilla de evitar repetir el trabajo.

ansible app -m command -a "touch /tmp/done creates=/tmp/done"

No son idempotentes

Ambos módulos informan changed en cada ejecución, ya que Ansible no puede saber qué hizo su comando sin procesar. Prefiera módulos reales cuando exista uno.

Último recurso, no primera opción

Considere shell y command como recursos de último término. Si encaja un módulo específico como service o package, utilícelo para obtener resultados más seguros.

Comprobación rápida

Necesita ejecutar un comando que utiliza una tubería. ¿Qué módulo debería elegir?

Resumen

Utilice command para comandos simples y shell cuando necesite tuberías o variables. Recuerde que ambos siempre informan changed. 🖥️

Preguntas frecuentes

¿La lección «Ejecutar comandos de shell con command y shell» es gratis?

Sí — el texto completo de «Ejecutar comandos de shell con command y shell» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ansible Academy, actualiza a CoddyKit PRO. El curso de Ansible Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Ejecutar comandos de shell con command y shell»?

Ejecute comandos arbitrarios en nodos remotos. Practicas Ansible Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ansible Academy?

No se requiere experiencia previa. Ansible Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Ejecutar comandos de shell con command y shell»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ansible Academy?

Sí. Cada lección de Ansible Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Anatomía del comando ansible
  2. Patrones: seleccionar todos, web y host1
  3. Ejecutar comandos de shell con command y shell
  4. Escalado de privilegios con become
← Volver a Ansible Academy