Saltar al contenido

Cómo mover/renombrar un archivo usando una tarea de Ansible en un sistema remoto

Te damos la solución a este contratiempo, al menos eso creemos. Si sigues con dudas puedes dejar un comentario y con gusto te responderemos

Solución:

A partir de la versión 2.0en el módulo de copia puedes usar remote_src parámetro.

Si True irá a la máquina remota/objetivo para el src.

- name: Copy files from foo to bar
  copy: remote_src=True src=/path/to/foo dest=/path/to/bar

Si desea mover un archivo, debe eliminar el archivo antiguo con el módulo de archivo

- name: Remove old files foo
  file: path=/path/to/foo state=absent

A partir de la versión 2.8 módulo de copia remote_src admite la copia recursiva.

El módulo de archivos no copia archivos en el sistema remoto. El parámetro src solo lo usa el módulo de archivo al crear un enlace simbólico a un archivo.

Si desea mover/cambiar el nombre de un archivo por completo en un sistema remoto, su mejor opción es usar el módulo de comando para simplemente invocar el comando apropiado:

- name: Move foo to bar
  command: mv /path/to/foo /path/to/bar

Si quiere ser elegante, primero puede usar el módulo de estadísticas para verificar que foo realmente existe:

- name: stat foo
  stat: path=/path/to/foo
  register: foo_stat

- name: Move foo to bar
  command: mv /path/to/foo /path/to/bar
  when: foo_stat.stat.exists

He encontrado útil la opción crea en el módulo de comando. Qué tal esto:

- name: Move foo to bar
  command: creates="path/to/bar" mv /path/to/foo /path/to/bar

Solía ​​​​hacer un enfoque de 2 tareas usando estadísticas como sugiere Bruce P. Ahora hago esto como una tarea con create. Creo que esto es mucho más claro.

Aquí puedes ver las comentarios y valoraciones de los usuarios

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


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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