extrait ansible sans premier répertoire


29

Lors de l'extraction d'un fichier tar.gz dans ansible, je me retrouve avec un premier répertoire

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

ce qui se traduit par /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive Comment puis-je empêcher la création de ce niveau supplémentaire de hiérarchie?


Peut ne pas être pertinent, mais je sais que vous devez parfois faire attention en ajoutant une barre oblique de fin au répertoire de destination. Est-ce que cela vous aide?
SauceCode

Réponses:


40

Pour supprimer le, bar-version-someFirstLevelFoldervous devez utiliser l' --strip-components=1option dans tar. Votre playbook devrait donc ressembler à

- name: Extract archive
  unarchive:
    src: file.tar.gz
    dest: /foo/bar
    extra_opts: [--strip-components=1]

1
Cela semble être la bonne réponse, mais actuellement, cela peut provoquer un crash. Voir ce rapport de bogue: github.com/ansible/ansible/issues/29657 une solution intermédiaire serait de décompresser dans le répertoire parent et d'avoir ensuitecommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

Testé dans la dernière version, cela fonctionne. Mais, désarchiver n'est pas idempotent.
Jérôme B
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.