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)