पहली निर्देशिका के बिना 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 एक मध्यवर्ती समाधान मूल निर्देशिका में command: mv /foo/bar-version-someFirstLevelFolder/* foo/bar/
— खोलना

अंतिम संस्करण में परीक्षण किया गया, यह काम करता है। लेकिन, अराजकता बेकार नहीं है।
— जेरोमे बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.