¿Cuál es la forma más fácil de crear un archivo vacío usando Ansible? Sé que puedo guardar un archivo vacío en el files
directorio y luego copiarlo en el host remoto, pero eso me parece algo insatisfactorio.
Otra forma es tocar un archivo en el host remoto:
- name: create fake 'nologin' shell
file: path=/etc/nologin state=touch owner=root group=sys mode=0555
Pero luego el archivo se toca cada vez, apareciendo como una línea amarilla en el registro, lo cual tampoco es satisfactorio ...
¿Existe alguna solución mejor para este simple problema?
force: no
.Algo como esto (usar el
stat
módulo primero para recopilar datos sobre él y luego filtrar usando un condicional) debería funcionar:Alternativamente, podría aprovechar la
changed_when
funcionalidad.fuente
Otra opción, usando el módulo de comando:
El argumento 'crea' asegura que esta acción no se realice si el archivo existe.
fuente
Sobre la base de la respuesta aceptada, si desea que se verifiquen los permisos del archivo en cada ejecución, y estos se cambian en consecuencia si el archivo existe, o simplemente cree el archivo si no existe, puede usar lo siguiente:
fuente
file: path=/etc/nologin state=touch
Equivalente completo de touch (nuevo en 1.4+): use stat si no desea cambiar la marca de tiempo del archivo.
fuente
file: path=/etc/nologin state=touch modification_time=preserve access_time=preserve
.El módulo de archivo proporciona una forma de tocar el archivo sin modificar su tiempo.
Referencia: https://docs.ansible.com/ansible/latest/modules/file_module.html
fuente
Resulta que no tengo suficiente reputación para poner esto como comentario, que sería un lugar más apropiado para esto:
Re. La respuesta de AllBlackt, si prefiere el formato multilínea de Ansible, necesita ajustar las cotizaciones
state
(pasé unos minutos resolviendo esto, así que espero que esto acelere a alguien más),fuente
Para crear un archivo en la máquina remota con el comando ad-hoc
Por favor, corríjame si estoy equivocado
fuente
Cambiado si el archivo no existe. Crea un archivo vacío.
fuente
Una combinación de dos respuestas, con un giro. El código se detectará como cambiado cuando se cree el archivo o se actualice el permiso.
y una versión que también corrige el propietario y el grupo y lo detecta como cambiado cuando corrige estos:
fuente