
Necesito una pequeña ayuda.
En el siguiente ejemplo necesito reemplazarlo shell
con command
un módulo. Pero estoy confundido porque command
no estoy trabajando con tuberías.
Así que por favor dame la solución de esta tarea. P.ej:
- name: Get the version
become: true
run_once: true
shell: zypper pa | grep eric-odl | awk -F {'print $4'}
register: odl_version
¿Cómo dividiré esta tarea porque la salida de cada comando depende del siguiente comando?
Respuesta1
Necesito reemplazarlo
shell
concommand
un módulo.
Tal vez pueda proporcionar más información general sobre el por qué y lo que intenta lograr.
Actualmente supongo que según man zypper
lo intentas
paquetes (pa) [opciones] [repositorio]...
Enumere todos los paquetes disponibles o todos los paquetes de repositorios especificados. Similar a
zypper search -s -t package
.
primero y me gustaría continuar con algo después.
Pero estoy confundido
command
al no trabajar con tuberías.
Correcto, ese es el caso y el comportamiento previsto. ver en el ejemplo
command
módulo: ejecutar comandos en objetivosLos comandos no se procesarán a través del shell, por lo que variables como
$HOSTNAME
"*
", "<
", ">
", "|
", ";
" y "&
" no funcionarán. Utilizar elansible.shell incorporadomódulo si necesita estas características.shell
módulo: ejecutar comandos de shell en objetivosEs casi exactamente como elansible.comando.integradomódulo pero ejecuta el comando a través de un shell (
/bin/sh
) en el nodo remoto.
Así que por favor dame la solución de esta tarea.
No habrá "esa solución", pero puede consultar la siguiente lista, desde los enfoques más preferibles hasta los menos preferibles:
- Usando
package_facts
módulo para obtener información del paquete como hechos - Evaluar
zypper
módulo para gestionar paquetes en SUSE y openSUSE - Usar el
zypper
comando en otra sintaxis que no necesitagrep
y oawk
me gusta en - Oescribiendo un módulo personalizado propio
- O usando
script
módulo para ejecutar un script local en un nodo remoto después de transferirlo
O, al menos, quédese con shell
los comandos con canalizaciones (y el ejemplo dado tal como está actualmente)