Nota

Este módulo es parte de ansible-base e incluido en todas las instalaciones de Ansible. En la mayoría de los casos, puede utilizar el comando de nombre de módulo corto incluso sin especificar el collections: palabra clave. A pesar de eso, le recomendamos que utilice el FQCN para facilitar la vinculación a la documentación del módulo y evitar conflictos con otras colecciones que puedan tener el mismo nombre de módulo.

  • Sinopsis
  • Parámetros
  • Notas
  • Ver también
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • los command El módulo toma el nombre del comando seguido de una lista de argumentos delimitados por espacios.
  • El comando dado se ejecutará en todos los nodos seleccionados.
  • Los comandos no se procesarán a través del shell, por lo que variables como $HOSTNAME y operaciones como "*", "<", ">", "|", ";" y "&" no trabajará. Utilizar el ansible.builtin.shell módulo si necesita estas características.
  • Crear command tareas que son más fáciles de leer que las que usan argumentos delimitados por espacios, pasan parámetros usando el argspalabra clave de tarea o uso cmd parámetro.
  • O un comando de forma libre o cmd El parámetro es obligatorio, consulte los ejemplos.
  • Para los destinos de Windows, use el ansible.windows.win_command módulo en su lugar.

Nota

Este módulo tiene un correspondiente complemento de acción.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
argvlista / elementos =string agregado en 2.6 de ansible.builtin Pasa el comando como una lista en lugar de un string.Usar argv para evitar citar valores que de otro modo se interpretarían incorrectamente (por ejemplo, "nombre de usuario"). string (forma libre) o la forma de lista (argv) se pueden proporcionar, no ambos. Se debe proporcionar uno u otro.
chdirsendero agregado en 0.6 de ansible.builtin Cambie a este directorio antes de ejecutar el comando.
cmdstring El comando para ejecutar.
creasendero Un nombre de archivo o patrón global (desde 2.0). Si ya existe un archivo coincidente, este paso no ser ejecutado.
forma librestring El módulo de comando tiene forma libre string como un comando para ejecutar. No hay un parámetro real llamado 'forma libre'.
eliminasendero agregado en 0.8 de ansible.builtin Un nombre de archivo o patrón global (desde 2.0). Si existe un archivo coincidente, este paso voluntad ser ejecutado.
stdinstring agregado en 2.4 de ansible.builtin Establezca el stdin del comando directamente en el valor especificado.
stdin_add_newlinebooleano agregado en 2.8 de ansible.builtin
    Opciones:

  • no
Si se establece en yes, agregue una nueva línea a los datos stdin.
strip_empty_endsbooleano agregado en 2.8 de ansible.builtin
    Opciones:

  • no
Elimine las líneas vacías del final de stdout / stderr como resultado.
advertirbooleano agregado en 1.8 de ansible.builtin
    Opciones:

  • no
(en desuso) Habilitar o deshabilitar las advertencias de tareas. Esta función está en desuso y se eliminará en la versión 2.14. A partir de la versión 2.11, esta opción ahora está deshabilitada de forma predeterminada.

Notas

Nota

  • Si desea ejecutar un comando a través del shell (digamos que está usando <, >, |, etc.), lo que realmente desea ansible.builtin.shell módulo en su lugar. El análisis de los metacaracteres de shell puede llevar a la ejecución de comandos inesperados si las citas no se hacen correctamente, por lo que es más seguro usar el command módulo cuando sea posible.
  • creates, removes, y chdir se puede especificar después del comando. Por ejemplo, si solo desea ejecutar un comando si un archivo determinado no existe, use esto.
  • El modo de verificación es compatible al pasar creates o removes. Si se ejecuta en modo de verificación y se especifica cualquiera de estos, el módulo verificará la existencia del archivo e informará el estado modificado correcto. Si no se proporcionan, se omitirá la tarea.
  • los executable El parámetro se elimina desde la versión 2.4. Si necesita este parámetro, utilice el ansible.builtin.shell módulo en su lugar.
  • Para los destinos de Windows, use el ansible.windows.win_command módulo en su lugar.
  • Para reiniciar los sistemas, use el ansible.builtin.reboot o ansible.windows.win_reboot módulo.

Ver también

Ver también

ansible.builtin.raw

La documentación oficial sobre el ansible.builtin.raw módulo.

ansible.builtin.script

La documentación oficial sobre el ansible.builtin.script módulo.

ansible.builtin.shell

La documentación oficial sobre el ansible.builtin.shell módulo.

ansible.windows.win_command

La documentación oficial sobre el ansible.windows.win_command módulo.

Ejemplos de

-name: Return motd to registered var
  ansible.builtin.command: cat /etc/motd
  register: mymotd

# free-form (string) arguments, all arguments on one line-name: Run command if /path/to/database does not exist (without 'args')
  ansible.builtin.command: /usr/bin/make_database.sh db_user db_name creates=/path/to/database

# free-form (string) arguments, some arguments on separate lines with the 'args' keyword# 'args' is a task keyword, passed at the same level as the module-name: Run command if /path/to/database does not exist (with 'args' keyword)
  ansible.builtin.command: /usr/bin/make_database.sh db_user db_name
  args:creates: /path/to/database

# 'cmd' is module parameter-name: Run command if /path/to/database does not exist (with 'cmd' parameter)
  ansible.builtin.command:cmd: /usr/bin/make_database.sh db_user db_name
    creates: /path/to/database

-name: Change the working directory to somedir/ and run the command as db_owner if /path/to/database does not exist
  ansible.builtin.command: /usr/bin/make_database.sh db_user db_name
  become: yes
  become_user: db_owner
  args:chdir: somedir/
    creates: /path/to/database

# argv (list) arguments, each argument on a separate line, 'args' keyword not necessary# 'argv' is a parameter, indented one level from the module-name: Use 'argv' to send a command as a list - leave 'command' empty
  ansible.builtin.command:argv:- /usr/bin/make_database.sh
      - Username with whitespace
      - dbname with whitespace
    creates: /path/to/database

-name: Safely use templated variable to run command. Always use the quote filter to avoid injection issues
  ansible.builtin.command: cat quote register: myoutput

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
cmdlista / elementos =string siempre El comando ejecutado por la tarea.
Muestra:['echo', 'hello']
deltastring siempre El tiempo delta de ejecución del comando.
Muestra:0: 00: 00.001529
finstring siempre La hora de finalización de la ejecución del comando.
Muestra:2017-09-29 22: 03: 48.084657
msgbooleano siempre cambió
Muestra:Cierto
rcentero siempre El código de retorno del comando (0 significa éxito).
comienzostring siempre La hora de inicio de la ejecución del comando.
Muestra:2017-09-29 22: 03: 48.083128
stderrstring siempre El error estándar del comando.
Muestra:ls no puede acceder a foo: no existe tal archivo o directorio
stderr_lineslista / elementos =string siempre El error estándar del comando se divide en líneas.
Muestra:["u'ls cannot access foo": "No such file or directory'", "u'ls …'"]
stdoutstring siempre La salida estándar del comando.
Muestra:Nodo de agrupación [email protected] con [email protected] ...
stdout_lineslista / elementos =string siempre La salida estándar del comando se divide en líneas.
Muestra:["u'Clustering node [email protected] con [email protected] ... '"]

Autores

  • Equipo principal de Ansible
  • Michael DeHaan