extracto ansible sin primer directorio

29

Al extraer un archivo tar.gz en ansible termino con un primer directorio

- name: Extract archive
  unarchive: src=file.tar.gz
             dest=/foo/bar

lo que resulta en /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive ¿Cómo puedo evitar crear este nivel adicional de jerarquía?

Georg Heiler
fuente
Puede no ser relevante, pero sé que a veces debe tener cuidado al agregar una barra diagonal al directorio de destino. ¿Eso ayuda en absoluto?
SauceCode

Respuestas:

40

Para despojarlo bar-version-someFirstLevelFolder, debe usar la --strip-components=1opción en tar. Entonces tu libro de jugadas debería verse como

- name: Extract archive
  unarchive:
    src: file.tar.gz
    dest: /foo/bar
    extra_opts: [--strip-components=1]
GMaster
fuente
1
Esta parece ser la respuesta correcta, pero actualmente puede causar un bloqueo. Vea este informe de error: github.com/ansible/ansible/issues/29657 una solución intermedia sería descomprimir en el directorio principal y luego tener unacommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption
Probado en la última versión, funciona. Pero, desarchivar no es idempotente.
Jérôme B