Hola, hallamos la respuesta a tu pregunta, deslízate y la verás a continuación.
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 |
|
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)
Ten en cuenta dar visibilidad a este artículo si si solucionó tu problema.