पहली निर्देशिका के बिना 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.