没有第一目录的Ansible提取


29

在Ansible中解压缩tar.gz文件时,我得到的是第一个目录

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

这导致/foo/bar/bar-version-someFirstLevelFolder/contentOfArchive 如何防止创建这种额外的层次结构?


可能无关紧要,但是我知道您有时需要注意在目标目录中添加斜杠。这些帮助有用?
SauceCode '17

Answers:


40

为了剥离,bar-version-someFirstLevelFolder您需要使用中的--strip-components=1选项tar。所以你的剧本应该像

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

1
这似乎是正确的答案,但目前可能会导致崩溃。看到这个错误报告:github.com/ansible/ansible/issues/29657一个中间解决方案是在父目录中解压缩,然后使用command: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption '17

在最新版本中经过测试,可以正常工作。但是,非归档不是幂等的。
杰罗姆乙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.