trích xuất ansible mà không có thư mục đầu tiên


29

Khi giải nén tệp tar.gz trong ansible, tôi kết thúc bằng một thư mục đầu tiên

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

Kết quả là làm /foo/bar/bar-version-someFirstLevelFolder/contentOfArchive thế nào tôi có thể ngăn việc tạo mức phân cấp bổ sung này?


Có thể không liên quan nhưng tôi biết đôi khi bạn cần cẩn thận trong việc thêm dấu gạch chéo vào thư mục đích. Điều đó có giúp ích gì không?
SauceCode

Câu trả lời:


40

Để thoát khỏi, bar-version-someFirstLevelFolderbạn cần sử dụng --strip-components=1tùy chọn trong tar. Vì vậy, playbook của bạn sẽ giống như

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

1
Đây có vẻ là câu trả lời chính xác, nhưng hiện tại nó có thể gây ra sự cố. Xem báo cáo lỗi này: github.com/ansible/ansible/issues/29657 một giải pháp trung gian sẽ được gỡ bỏ trong thư mục mẹ và sau đó có mộtcommand: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
TheAtomicOption

Đã thử nghiệm trong phiên bản cuối cùng, nó hoạt động. Nhưng, không lưu trữ là không bình thường.
Jérôme B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.