Ansibler Auszug ohne erstes Verzeichnis

28

Beim Extrahieren einer tar.gz-Datei in Ansible lande ich in einem ersten Verzeichnis

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

/foo/bar/bar-version-someFirstLevelFolder/contentOfArchive Was führt zu Wie kann ich verhindern, dass diese zusätzliche Hierarchieebene entsteht?

Georg Heiler
quelle
Vielleicht nicht relevant, aber ich weiß, dass Sie manchmal vorsichtig sein müssen, wenn Sie dem Zielverzeichnis einen abschließenden Schrägstrich hinzufügen. Hilft das überhaupt?
SauceCode

Antworten:

39

Um das zu entfernen bar-version-someFirstLevelFoldermusst du die --strip-components=1Option in verwenden tar. So sollte dein Playbook aussehen

- name: Extract archive
  unarchive:
    src: file.tar.gz
    dest: /foo/bar
    extra_opts: [--strip-components=1]
GMaster
quelle
1
Dies scheint die richtige Antwort zu sein, kann jedoch derzeit zu einem Absturz führen. Sehen Sie sich diesen Fehlerbericht an: github.com/ansible/ansible/issues/29657 Eine Zwischenlösung wäre, das übergeordnete Verzeichnis zu entpacken und dann einecommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption 28.11.17
Getestet in der letzten Version, funktioniert es. Aber das Nichtarchivieren ist nicht idempotent.
Jérôme B