ansible extract senza prima directory


29

Quando estraggo un file tar.gz in ansible finisco con una prima directory

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

che risulta in /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive Come posso evitare di creare questo livello extra di gerarchia?


Potrebbe non essere pertinente, ma so che a volte devi fare attenzione ad aggiungere una barra finale alla directory di destinazione. Questo aiuta a tutti?
SauceCode

Risposte:


40

Al fine di eliminare ciò bar-version-someFirstLevelFolderè necessario utilizzare l' --strip-components=1opzione in tar. Quindi il tuo playbook dovrebbe assomigliare

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

1
Questa sembra essere la risposta corretta, ma attualmente può causare un arresto anomalo. Vedi questo bug report: github.com/ansible/ansible/issues/29657 una soluzione intermedia sarebbe quella di decomprimere nella directory padre e quindi avere uncommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

Testato nell'ultima versione, funziona. Ma l'archiviazione non è idempotente.
Jérôme B,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.