extrato ansible sem primeiro diretório


29

Ao extrair um arquivo tar.gz no ansible, termino com um primeiro diretório

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

que resulta em /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive Como posso evitar a criação desse nível extra de hierarquia?


Pode não ser relevante, mas sei que algumas vezes você precisa ter cuidado ao adicionar uma barra final no diretório de destino. Isso ajuda em tudo?
SauceCode

Respostas:


40

A fim de retirar o bar-version-someFirstLevelFolderque você precisa para usar a --strip-components=1opção tar. Portanto, seu manual deve parecer

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

11
Essa parece ser a resposta correta, mas atualmente pode causar um acidente. Veja este relatório de bug: github.com/ansible/ansible/issues/29657 uma solução intermediária seria descompactar no diretório pai e depois ter umcommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

Testado na última versão, funciona. Mas desarquivar não é idempotente.
Jérôme B
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.