Nota

Este complemento es parte del colección ansible.windows (versión 1.3.0).

Para instalarlo use: ansible-galaxy collection install ansible.windows.

Para usarlo en un libro de jugadas, especifique: ansible.windows.win_shell.

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

Sinopsis

  • los ansible.windows.win_shell El módulo toma el nombre del comando seguido de una lista de argumentos delimitados por espacios. Es similar al ansible.windows.win_command módulo, pero ejecuta el comando a través de un shell (predeterminado en PowerShell) en el host de destino.
  • Para destinos que no son de Windows, use el ansible.builtin.shell módulo en su lugar.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
chdirsendero Establezca la ruta especificada como el directorio de trabajo actual antes de ejecutar un comando
creasendero Una ruta o patrón de filtro de ruta; cuando la ruta a la que se hace referencia exista en el host de destino, se omitirá la tarea.
ejecutablesendero Cambie el shell utilizado para ejecutar el comando (por ejemplo, cmd). El caparazón de destino debe aceptar un /c parámetro seguido de la línea de comando sin procesar que se ejecutará.
forma librestring / requerido los ansible.windows.win_shell El módulo toma un comando de forma libre para ejecutarse. No hay un parámetro realmente llamado ‘forma libre’. ¡Vea los ejemplos!
sin perfilbooleano
    Opciones:

  • no
No cargue el perfil de usuario antes de ejecutar un comando. Esto solo es válido cuando se usa PowerShell como ejecutable.
output_encoding_overridestring Esta opción anula la codificación de la salida stdout / stderr. Puede usar esta opción cuando necesite ejecutar un comando que ignore la página de códigos de la consola. Solo debería necesitar usar esta opción en circunstancias muy raras. Este valor puede ser cualquier codificación válida. Name basado en la salida de [System.Text.Encoding]::GetEncodings(). Ver https://docs.microsoft.com/dotnet/api/system.text.encoding.getencodings.
eliminasendero Una ruta o patrón de filtro de ruta; cuando la ruta referenciada no existen en el host de destino, la tarea se omitirá.
stdinstring Establezca el stdin del comando directamente en el valor especificado.

Notas

Nota

  • Si desea ejecutar un ejecutable de forma segura y predecible, puede ser mejor usar el ansible.windows.win_command módulo en su lugar. Las mejores prácticas al escribir libros de jugadas seguirán la tendencia de usar ansible.windows.win_command a no ser que win_shell se requiere explícitamente. Cuando ejecute comandos ad-hoc, use su mejor criterio.
  • WinRM no regresará de la ejecución de un comando hasta que todos los procesos secundarios creados hayan salido. Por tanto, no es posible utilizar ansible.windows.win_shell para generar procesos secundarios o en segundo plano de larga ejecución. Considere la posibilidad de crear un servicio de Windows para administrar procesos en segundo plano.

Ver también

Ver también

community.windows.psexec

La documentación oficial sobre el community.windows.psexec módulo.

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.

community.windows.win_psexec

La documentación oficial sobre el community.windows.win_psexec módulo.

Ejemplos de

-name: Execute a comand in the remote shell, stdout goes to the specified file on the remote
  ansible.windows.win_shell: C:somescript.ps1 >> C:somelog.txt

-name: Change the working directory to somedir/ before executing the command
  ansible.windows.win_shell: C:somescript.ps1 >> C:somelog.txt
  args:chdir: C:somedir

-name: Run a command with an idempotent check on what it creates, will only run when somedir/somelog.txt does not exist
  ansible.windows.win_shell: C:somescript.ps1 >> C:somelog.txt
  args:chdir: C:somedir
    creates: C:somelog.txt

-name: Run a command under a non-Powershell interpreter (cmd in this case)
  ansible.windows.win_shell: echo %HOMEDIR%
  args:executable: cmd
  register: homedir_out

-name: Run multi-lined shell commands
  ansible.windows.win_shell:|
    $value = Test-Path -Path C:temp
    if ($value) 
        Remove-Item -Path C:temp -Force
    
    New-Item -Path C:temp -ItemType Directory-name: Retrieve the input based on stdin
  ansible.windows.win_shell:'$string = [Console]::In.ReadToEnd(); Write-Output $string.Trim()'args:stdin: Input message

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
cmdstring siempre El comando ejecutado por la tarea.
Muestra:rabbitmqctl join_cluster [email protected]
deltastring siempre El tiempo delta de ejecución del comando.
Muestra:0: 00: 00.325771
finstring siempre La hora de finalización de la ejecución del comando.
Muestra:2016-02-25 09: 18: 26.755339
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:2016-02-25 09: 18: 26.429568
stderrstring siempre El error estándar del comando.
Muestra:ls: no se puede acceder a foo: no existe tal archivo o directorio
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

  • Matt Davis (@nitzmahone)