Tutorial de módulo de archivo ansible

Tutorial de módulo de archivo ansible
Ansible es una increíble utilidad de automatización que viene llena de características y herramientas para administrar hosts remotos. Funciona implementando módulos para realizar tareas y operaciones específicas.

Un módulo práctico en Ansible es el módulo de archivo. Este módulo es responsable de realizar tareas, como crear archivos y directorios, eliminar archivos y directorios, crear enlaces simbólicos suaves y duros, agregar y modificar los permisos de archivos y directorio, y más.

Esta guía lo guiará a través de cómo trabajar con el módulo de archivo Ansible. Ilustraremos esto utilizando una colección de ejemplos y libros de jugadas.

NOTA: Asegúrese de tener acceso a sus hosts remotos especificados en el archivo de inventario de Ansible.

Cómo funciona el módulo de archivo ansible

El ansible.incorporado.El módulo de archivo está en la instalación de Ansible predeterminada como parte de Ansible-Core. Ansible recomienda referirse al módulo utilizando el "nombre totalmente calificado" en lugar del nombre del módulo corto para evitar conflictos con módulos de nombres similares.

El módulo de archivo contiene una colección de parámetros predefinidos para la administración de archivos. Utilizamos estos parámetros para configurar las acciones realizadas en el host remoto.

Los siguientes son parámetros importantes que puede usar:

  1. Dueño - Nombre de usuario del usuario que posee el archivo y el directorio creados
  2. Camino - Ruta al archivo o directorio para administrar
  3. Modo - Modo de permiso para configurar en el archivo o directorio especificado. Use notación octal dentro de un par de citas individuales.
  4. Grupo - Establece la propiedad del grupo para un archivo o directorio
  5. Fuerza - Un valor booleano utilizado para forzar la creación de enlaces simbólicos si el archivo fuente no está disponible actualmente (pero se agregó más adelante) o el enlace simbólico de destino ya existe.
  6. Seguir - Si existen enlaces del sistema de archivos, sígalos.
  7. Atributos - Establece atributos para el archivo o directorio especificado. Similar a la utilidad de chattr predeterminada en Linux
  8. Estado - Define el contexto para la creación de un archivo. Las opciones aceptadas incluyen:
    1. Tocar - Crear un archivo vacío
    2. Directorio - Crear un directorio
    3. Duro - Crea un enlace duro
    4. Enlace - Crea un enlace suave
    5. Ausente - Eliminar archivos y directorio de forma recursiva y de Unlink Enlaces

Verifique los documentos del módulo de archivo Ansible para otros parámetros predefinidos.

La mejor manera de aprender a trabajar con el módulo de archivo Ansible es con ejemplos.

Módulo de archivo ansible: ejemplos prácticos

NOTA: Esta guía supone que tiene un nodo de control Ansible y sus hosts de destino agregados a su archivo de inventario.

Cómo crear un archivo vacío

Para crear un archivo vacío utilizando el módulo de archivo ansible, configuramos el estado en touch como se ilustra en el libro de jugadas.

---
- Anfitriones: todos
tareas:
- Nombre: Crear archivo vacío
archivo:
Ruta: $ home/touch_file
Estado: tocar

El libro de jugadas anterior contiene una configuración básica de Ansible:

  1. anfitrión - Establece los hosts de destino remoto para ejecutar el libro de jugadas. Puede definir un grupo de hosts remotos o un solo host.
  2. tareas - Le dice a Ansible que ejecute la tarea especificada en el host remoto.
  3. nombre - Especifica el nombre de la tarea para ejecutarse
  4. archivo - Llama al módulo de archivo ansible
  5. camino - Define una ruta en la máquina remota donde se crea el archivo.
  6. estado - Crear un archivo vacío usando Touch.

Guardar el libro de jugadas y ejecutarlo en los hosts remotos:

Ansible-Playbook vacío.YML

Cómo crear múltiples archivos

Ansible le permite crear varios archivos en una sola tarea. A continuación se muestra un ejemplo de libro de jugadas:

---
- Anfitriones: todos
tareas:
- Nombre: crear varios archivos
archivo:
ruta: $ home/item
Estado: tocar
with_items:
- archivo1.C
- encabezamiento.H
- archivo2.py
- archivo3.TXT
- archivo4.RB

En el libro de jugadas, utilizamos dos entradas de Ansible:

  1. artículo - Le dice a Ansible que cree una ruta única para los archivos especificados.
  2. With_item - Crea una lista de archivos para crear en el host remoto. Puede agregar tantos archivos y extensiones como mejor le.

Ejecute Ansible-Playbook para crear múltiples archivos especificados:

Ansible-playbook múltiples archivos.YML

Cómo crear un archivo con contenido

En los ejemplos anteriores, creamos archivos vacíos usando el comando touch. Para crear un archivo con contenido, podemos usar el módulo de copia y establecer el parámetro de contenido en el contenido del archivo.

A continuación se muestra un ejemplo de libro de jugadas:

---
- Anfitriones: todos
tareas:
- Nombre: Crear archivo con contenido
Copiar:
Dest: $ Home/Hello.CPP
Contenido: |
#incluir
Usando el espacio de nombres STD
int main ()
cout << "hello world" << endl;
regresar 0;

Los módulos y parámetros en el libro de jugadas anterior son:

  1. Copiar - Implica el módulo de copia ansible.
  2. desestimado - La ruta de destino para su archivo
  3. contenido - El contenido para agregar a su archivo. Cada línea se agrega a una nueva línea.

Ejecute el libro de jugadas:

Ansible-playbook con contenido.YML

Cómo crear un directorio

El libro de jugadas utilizado para crear un directorio utilizando el módulo de archivo Ansible es similar a la creación de un archivo vacío. Sin embargo, como se muestra a continuación, establecemos el estado en "directorio" en lugar de "archivo":

---
- Anfitriones: todos
tareas:
- Nombre: CreateAdirectory
archivo:
Camino: $ Home/Ansible-Dir
Estado: directorio

Cómo eliminar un archivo o enlace simbólico

Eliminar archivos, directorios o enlaces simbólicos es muy sencillo; Todo lo que tenemos que hacer es establecer el estado ausente, como se muestra en el libro de jugadas a continuación:

---
- Anfitriones: todos
tareas:
- Nombre: removerfiles
archivo:
Camino: $ Home/Ansible-Dir
Estado: ausente

El libro de jugadas no hará nada si el archivo especificado no existe.

Cómo cambiar el permiso de un directorio

Utilizamos los parámetros propietario, grupo y modo del libro de jugadas para cambiar el permiso de un directorio.

El siguiente ejemplo establecerá los permisos especificados en el directorio.

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: ModifyDirPermissions
archivo:
ruta: /var /log
Estado: directorio
Propietario: raíz
Grupo: raíz
Modo: 0755

En el ejemplo de juego de jugadas de ejemplo, establecemos convertirse en: verdadero. Esto es necesario al establecer permisos para otros usuarios, excepto ansible_user

  1. Use la notación octal para especificar permisos, incluido el 0 líder.

Usando el modo simbólico

Ansible le permite establecer los permisos en modo simbólico en lugar del formato octal. El modo a continuación es equivalente a 0777.

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: ModifyDirPermissions en formato simbólico
archivo:
ruta:/var/log/
Estado: directorio
Modo: u = rwx, g = rwx, o = rwx

NOTA: Configurar 0777 en un directorio como /var /log no es la mejor práctica, y la hemos usado aquí solo para fines de ilustración.

Cambiar los permisos de directorio recursivamente

Si desea cambiar los permisos en un directorio de manera recursiva, puede usar el parámetro de recursión como se muestra en el libro de jugadas a continuación:

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: ModifyDirPermissionsRecursive
archivo:
ruta:/var/log/
Estado: directorio
Propietario: raíz
Grupo: raíz
Modo: 0755
Recurse: verdadero

Configuración de recurrencias: True afectará los archivos dentro del directorio principal especificado.

Cómo crear un enlace simbólico

Crear un enlace simbólico utilizando el módulo de archivo Ansible es tan simple como crear un directorio vacío. En este caso, establecemos el estado en el enlace como se muestra en el libro de jugadas de ejemplo a continuación:

---
- Anfitriones: todos
- hecho realidad
tareas:
- Nombre: CreateaseMlink
archivo:
src: $ home/src_file
Dest: /etc /dest_symlink
Estado: enlace

Cómo eliminar un enlace simbólico

Eliminar un enlace simbólico es similar a eliminar un archivo regular.

---
- Anfitriones: todos
- hecho realidad
tareas:
- Nombre: Removeasymlink
archivo:
ruta: /etc /dest_symlink
Estado: ausente

Cómo modificar el tiempo de acceso

Puede modificar el tiempo de acceso y modificación utilizando los parámetros access_time y modification_time.

Ejemplo del libro de jugadas:

- hecho realidad
tareas:
- Nombre: ModifyAccessandModifiedTime
archivo:
ruta:/etc/ansible/hosts
Estado: archivo
Access_time: ahora
Modification_time: "202110041123.11 "

Establecemos el access_time como la hora actual usando la función ahora.

También puede proporcionar tiempo para los parámetros access_time y modification_time en el formato (como una cadena):

Yyyymmddhhmm.Ss

Conclusión

Esta guía lo ha ayudado a comprender cómo trabajar con el módulo de archivo Ansible en un libro de jugadas.