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?


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]

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.