最初のディレクトリなしのansible抽出


29

ansibleでtar.gzファイルを抽出すると、最初のディレクトリになります

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

これで結果/foo/bar/bar-version-someFirstLevelFolder/contentOfArchive はどのように私は、階層のこの余分なレベルを作成防ぐことができますか?


関連性はないかもしれませんが、宛先ディレクトリに末尾のスラッシュを追加する際には注意が必要な場合があることを知っています。それはまったく役に立ちますか?
ソースコード

回答:


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中間体溶液は、親ディレクトリにuntarしになり、その後だろうcommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

最後のバージョンでテストされ、動作します。ただし、アーカイブ解除はべき等ではありません。
ジェロームB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.