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?


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]

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.