Cómo aprovechar al máximo Ansible Unarchive

Cómo aprovechar al máximo Ansible Unarchive
Unarchiving se refiere a la descompresión de los archivos que están en el .Zip, alquitrán y alquitrán.formato GZ. Es el proceso a través de qué archivos se restauran desde un archivo existente. Este archivo puede estar presente localmente en su sistema o en un servidor remoto.

Archivar tiene sus ventajas, la mayor de ellas es facilitar la portabilidad. Le permite agrupar archivos de diferentes tipos y comprimirlos en un solo portátil .Archivo Zip/Tar que se puede descomprimir para recuperar los archivos originales más adelante.

Ansible también proporciona opciones de archivo con la ayuda de la Ansible.incorporado.módulo inesperado. Este módulo tiene las opciones de Unzip disponibles, junto con algunas opciones que le permiten copiar archivos antes de extraerlos.

Esta guía está destinada a ayudarlo a aprender cómo puede usar el módulo Unarchive en Ansible. Repasaremos los conceptos básicos del módulo Unarchive, algunos parámetros y ejemplos comunes sobre cómo implementarlos.

Dicho esto, comencemos.

Prerrequisitos de Unarchive en Ansible

Los siguientes son los requisitos para que el módulo Unarquivo Ansible funcione correctamente en su sistema.

  • Un sistema con ansible preinstalado. Le recomendamos que use una distribución de Linux.
  • Hosts remotos, ya sea sistemas separados o máquinas virtuales. El software como Oracle Virtualbox, Vagrant y VMware Workstations son perfectas para el trabajo.
  • Los comandos "Zipinfo", "GTAR" y "Unzip" deben instalarse en el host.

También recomendamos que tenga algunos conocimientos básicos de cómo ejecutar comandos en la terminal.

Limitaciones de Unarchive en Ansible

Mientras que el módulo unarquivo funciona bien con .alquitrán y .archivos zip, no se puede usar con archivos del tipo .GZ, .bz2, .archivos XZ. Los archivos deben contener un .Archivo de alquitrán para que el módulo funcione. Para los archivos que usan GTAR, asegúrese de que el argumento -diff sea compatible.

La siguiente sección de esta guía cubrirá los parámetros del módulo Unarchive.

Parámetros del módulo inesquivo ansible

El módulo Unarchive Ansible tiene su propia lista de parámetros que extienden la funcionalidad del módulo general.

A continuación se da una lista de módulos importantes.

  • "Atributos": estos rigen los atributos de un objeto de sistema de archivos dado.
  • "Copiar": esta característica viene con dos opciones, sí o no. Si la opción seleccionada es sí, el archivo se copia al host remoto desde el dispositivo local.
  • "Crea" - Se utiliza para crear una ruta/directorio.
  • "Excluir": le permite excluir ciertos archivos y directorios de ser extraído.
  • "Grupo": designa un grupo al que pertenece el objeto del sistema de archivos.
  • "Incluir": incluya archivos y directorios que le gustaría extraer.
  • "Modo": rige los permisos del sistema de archivos.
  • "Propietario": designa a un usuario como propietario de un objeto del sistema de archivos

Además de los parámetros anteriores, hay múltiples opciones disponibles con el módulo Unarchive Ansible. Para obtener más detalles sobre los parámetros, consulte la documentación oficial del módulo Unarchive Ansible en línea.

La siguiente sección de esta guía repasará algunos ejemplos sobre cómo usar Unarchive en Ansible.

Uso de Unarchive para extraer un archivo en un directorio determinado

El siguiente ejemplo ilustra cómo puede extraer un .Archivo TGZ (llamado Archive.tgz) en un camino dado.

- Nombre: Archivo de extracción.tgz en/var/lib/archivo
ansible.incorporado.Unarquivo:
SRC: Archivo.tgz
Dest:/var/lib/archivo

Ahora, ejecute este comando en el terminal de Linux para ejecutar un libro de jugadas.

Ansible-Playbook Testbook.YML

"SRC" denota el archivo que se extraerá, mientras que "Dest:" se usa para especificar la ruta.

Veremos más ejemplos para comprender cómo usar mejor el módulo Unarchive.

Desarchive un archivo disponible en el host remoto

El siguiente ejemplo ilustra cómo puede extraer un archivo que ya está presente en el host o la máquina remota.

- Nombre: Extraiga un archivo que ya está presente en el sistema remoto.
ansible.incorporado.Unarquivo:
src: /tmp /archivo.cremallera
Dest:/usr/local/bin
remotos_src: sí

El código mencionado anteriormente extraerá el archivo de archivos.ZIP IN/USR/LOCAL/BIN.

Uso del módulo Unarchive para extraer un archivo en línea

Esta fue una característica que se agregó en Ansible Versión 2.0. Le permite extraer un archivo que está disponible en línea que aún no se ha descargado en el sistema.

El siguiente ejemplo ilustra cómo puede lograr esto.

- Nombre: Extraiga un archivo que aún no se ha descargado en su sistema
ansible.incorporado.Unarquivo:
src: https: ///.cremallera
Dest:/usr/local/bin
remotos_src: sí

El bloque de código mencionado anteriormente extraerá el archivo en la ruta de destino/usr/local/bin.

La diferencia en el código de los libros de jugadas con y sin unarchive

El siguiente ejemplo está destinado a ayudarlo a ver la diferencia entre el código que utiliza el módulo de comando Unarchive.

Comenzamos por echar un vistazo a cómo escribir el código para copiar y no. Usaremos el módulo de copia junto con el comando tar -xvf para la extracción.

---
- Nombre: Copie un archivo determinado y extraiga su contenido
Hosts: test_Servers
Vars:
- UserID: "Linuxuser1"
- oracle_home: "/opt/oracle"
- jdk_instl_file: "Server-linux.alquitrán.GZ "(Nombre del .alquitrán.archivo gz.)
tareas:
- Nombre: Copie el contenido de los archivos JDK
convertirse en: si
convertirse_user: "userId"
Etiquetas: aplicación, cpbinarios
Copiar:
src: "item"
Dest: "oracle_home"
Modo: 0755
with_items:
- "jdk_instl_file"
- Nombre: instalar java
convertirse en: si
convertirse_user: "userId"
Etiquetas: Javainstall
Shell: "Tar xvfz oracle_home/jdk_instl_file"
Args:
chdir: "oracle_home"
Registrarse: Javainstall

Las mismas tareas se pueden lograr de una manera mucho más simple utilizando el módulo Unarchive como se muestra a continuación.

---
- Nombre: Copie un archivo determinado y extraiga su contenido
Hosts: test_Servers
Vars:
- UserID: "Linuxuser1"
- oracle_home: "/opt/oracle"
- jdk_instl_file: "Server-linux.alquitrán.GZ "
tareas:
- Nombre: Copiar e instalar Contenido JDK y Java
convertirse en: si
convertirse_user: "userId"
Etiquetas: Javainstall
Unarquivo:
src: "item"
Dest: "oracle_home"
Modo: 0755
with_items:
- "jdk_instl_file"

Observe cómo hay una disminución significativa en las líneas de código en comparación con el método que no utiliza el módulo Unarchive. Al usar el módulo unarquivo, pudimos fusionar la tarea para copiar y desarchive en uno.

Conclusión

Esperamos que esta guía lo ayude a aprender cómo puede usar el módulo Unarchive en Ansible. Cubrimos los conceptos básicos del módulo junto con limitaciones, requisitos previos y parámetros. También revisamos algunos ejemplos para mejorar nuestra comprensión. Con esto, le deseamos todo lo mejor para aprender a usar Ansible.