Saltar al contenido

¿Cómo crear un archivo vacío con Ansible?

Solución:

La documentación del módulo de archivo dice

Si state=file, el archivo NO se creará si no existe, vea el módulo de copia o plantilla si desea ese comportamiento.

Entonces usamos el módulo de copia, usando force=no para crear un nuevo archivo vacío solo cuando el archivo aún no existe (si el archivo existe, su contenido se conserva).

- name: ensure file exists
  copy:
    content: ""
    dest: /etc/nologin
    force: no
    group: sys
    owner: root
    mode: 0555

Esta es una solución declarativa y elegante.

Algo como esto (usando el stat módulo primero para recopilar datos sobre él y luego filtrar usando un condicional) debería funcionar:

- stat: path=/etc/nologin
  register: p

- name: create fake 'nologin' shell
  file: path=/etc/nologin state=touch owner=root group=sys mode=0555
  when: p.stat.exists is defined and not p.stat.exists

Alternativamente, podría aprovechar la changed_when funcionalidad.

Otra opción, usando el módulo de comando:

- name: Create file
  command: touch /path/to/file
  args:
    creates: /path/to/file

El argumento ‘crea’ asegura que esta acción no se realice si el archivo existe.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *