GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo crear un archivo en Ansible

Introducción

Ansible es una herramienta de infraestructura como código que le permite usar una única ubicación central (nodo de control de Ansible) para monitorear y controlar una gran cantidad de servidores remotos (hosts).

Utilice Ansible para configurar una serie de tareas que pueden realizar los hosts remotos, incluida la creación de nuevos archivos y directorios.

Este tutorial cubre diferentes formas en las que puede usar Ansible para crear archivos en hosts remotos.

Requisitos previos

  • Un sistema que ejecuta Ubuntu 20.04
  • Acceso a la línea de comandos/ventana de terminal
  • Ansible instalado y configurado (consulte nuestras guías sobre Instalación de Ansible en Windows o Instalación de Ansible en Ubuntu)

Creación de un libro de jugadas de Ansible

Los playbooks de Ansible son listas de tareas que desea que realicen sus hosts remotos. Se pueden guardar y reutilizar, lo que le permite automatizar procesos complejos.

Cada comando que desee enviar a un host remoto, incluida la creación de archivos y carpetas, es una tarea que debe incluir en un libro de jugadas. Una vez que ejecuta un libro de jugadas, su host remoto realiza todas las tareas definidas en él.

Para crear un libro de jugadas de Ansible, use el comando:

sudo nano /etc/ansible/playbook.yaml

Este comando crea un archivo .yaml llamado ‘playbook’ en la carpeta de instalación de Ansible. Usaremos tareas en playbook.yaml archivo para crear archivos y carpetas en nuestros hosts remotos.

El uso de la función de ejecución en seco de Ansible permite a los usuarios ejecutar un libro de jugadas sin realizar cambios en los servidores. Utiliza el modo de verificación incorporado para probar un libro de estrategias en busca de errores antes de la ejecución.

Crear un archivo vacío

La forma más rápida de crear un archivo vacío es usando el file de Ansible. módulo.

Agregue la siguiente configuración a su libro de jugadas de Ansible:

---

- hosts: all
  tasks:
  - name: Creating an empty file
    file:
      path: "/your path"
      state: touch

El archivo anterior tiene los siguientes componentes:

  • hosts : Define en qué hosts remotos de su archivo de inventario de Ansible desea ejecutar la tarea. Todo significa que cada host recibe el comando, pero también puede ingresar el nombre de una categoría de host o un host individual.
  • tasks : Anuncia que el host remoto necesita realizar una tarea.
  • name :Le permite definir un nombre para la tarea. El nombre es solo para su referencia y no tiene influencia en la tarea en sí.
  • file :Activa el módulo de archivos de Ansible para crear un nuevo archivo.
  • path :define la ruta para el nuevo archivo en el disco duro del host remoto.
  • state :Similar al comando táctil en la terminal de Ubuntu, ingresando touch crea un archivo vacío en la ubicación que elija.

Para ejecutar el libro de jugadas, use:

ansible-playbook /etc/ansible/playbook.yaml

Crear un archivo con contenido

Si desea crear un nuevo archivo con contenido, primero puede usar el método anterior para crear un archivo vacío y luego usar blockinfile o lineinfile módulo para insertar contenido.

Una forma más rápida es usar la copy módulo. Aunque este módulo se usa para copiar un archivo desde el nodo de control al host remoto, puede incluir el content parámetro para agregar instantáneamente contenido a un archivo vacío.

Utilice esta configuración en su libro de jugadas:

---

- hosts: all
  tasks:
  - name: Creating a file with content
    copy:
      dest: "/your path"
      content: |
        line 01
        line 02

En el archivo, usamos:

  • copy :activa el módulo de copia de Ansible.
  • dest :Define la ruta para su nuevo archivo.
  • content :Este parámetro agregará line 01 y line 02 como el contenido del nuevo archivo.

Creación de varios archivos

Puede crear varios archivos utilizando una sola tarea en un libro de jugadas de Ansible.

Utilice la siguiente configuración para crear varios archivos:

---

- hosts: all
  tasks:
  - name: Create multiple files
    file: 
      path: "{{ item }}"
      state: touch
    with_items:
    - test01.txt
    - test02.txt
    - test03.txt
    - test04.txt

En el archivo de configuración anterior, definimos:

  • path :El "{{ item }}" El valor significa que Ansible creará una ruta separada para cada archivo respectivo. De forma predeterminada, estos archivos se encuentran en la carpeta de inicio del host remoto. Defina una ruta diferente usando /your_folder_path/"{{ item }}" .
  • with_items :Este parámetro se utiliza para iniciar una lista de archivos para crear. Enumere tantos archivos como desee. En nuestro ejemplo, creamos una lista de cuatro archivos titulada prueba .

Creación de un directorio

La creación de un nuevo directorio utiliza la misma configuración que cuando se crea un archivo vacío. La única diferencia es que bajo el state parámetro, ingresa directory como el valor:

---

- hosts: all
  tasks:
  - name: Creating a new directory
    file:
      path: "/your path"
      state: directory

Eliminar archivos

Los playbooks de Ansible también pueden eliminar archivos existentes. Para hacer esto, establezca el state parámetro a absent :

---

- hosts: all
  tasks:
  - name: Removing a file
    file:
      path: "/your path"
      state: absent

Si el archivo ya se eliminó, este comando no hace nada.

Configuración de permisos de archivos

Con todos los ejemplos anteriores, también puede establecer el permiso para nuevos archivos y carpetas. Para esto, necesitas usar el mode parámetro.

Hay dos formas de hacer esto:

  • Usando el formato de modo octal: Puede usar números octales, como 0644 o 0777. No olvide el 0 inicial, ya que omitirlo puede generar resultados inesperados.
  • Uso del formato de modo simbólico: Puede usar valores como u=rwx , g=rx , o o=rx , donde u significa propietario , g significa grupo y o significa otros . Los permisos se definen como r para leer , w para escribir y x para ejecutar .

Por ejemplo, puede usar el valor octal 0755, al definir el propietario:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: 0755
      owner: test

También puede usar el equivalente simbólico a 0755:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: u=rwx,g=rx,o=rx
      owner: test

Ubuntu
  1. Cómo crear un archivo en Plesk File Manager

  2. Cómo crear un libro de jugadas de Ansible

  3. Cómo crear un intercambio en Linux

  4. Cómo instalar Ansible en Linux Mint 20

  5. ¿Cómo crear un archivo y montarlo como un sistema de archivos?

Cómo crear un archivo ISO en Ubuntu 18.04 LTS

Cómo crear un archivo en Linux usando Terminal

Cómo crear accesos directos de escritorio en Ubuntu

Cómo crear un archivo de sitio web

Cómo crear un archivo Tar gz

Cómo crear un sistema de archivos XFS