क्या कठपुतली फ़ाइल स्रोत एक वेब सेवा से हो सकता है?


10

वहाँ कठपुतली है एक फ़ाइल का स्रोत संपत्ति के लिए इंटरनेट पर उपलब्ध फ़ाइल का उपयोग करने का एक (सरल) तरीका है?

उदाहरण के लिए:

file { "/home/text.txt":
  source => [
    "http://www.example.com/text.txt",
  ]
}

यदि आप अपने सर्वर की अखंडता को महत्व देते हैं, तो कम से कम https का उपयोग करें। और एक अधिक भरोसेमंद डोमेन कॉशन का उपयोग करें जो आप नहीं जानते कि कौन उस एक को नियंत्रित कर सकता है ... उम्म ... यह यहाँ से murkier हो जाता है।
mc0e

जवाबों:


4

मैं भविष्य के पाठकों को सूचित करने के लिए एक अद्यतन उत्तर लिख रहा हूं कि अब फ़ाइल संसाधन वास्तव में HTTP स्रोत को लागू करता है।

से डॉक्स :

स्रोत

एक स्रोत फ़ाइल, जिसे स्थानीय सिस्टम पर जगह में कॉपी किया जाएगा। यह विशेषता सामग्री और लक्ष्य के साथ पारस्परिक रूप से अनन्य है। अनुमत मान हैं:

  • कठपुतली: यूआरआई, जो मॉड्यूल या पपेट फाइल सर्वर माउंट बिंदुओं में फाइलों को इंगित करते हैं।
  • स्थानीय रूप से उपलब्ध फ़ाइलों के लिए पूरी तरह से योग्य पथ (एनएफएस शेयरों या विंडोज मैप की गई ड्राइवों सहित फाइलें)।
  • फ़ाइल: URI, जो स्थानीय फ़ाइल पथों के समान व्यवहार करते हैं।
  • http: यूआरआई, जो आम वेब सर्वर द्वारा सेव की गई फाइलों की ओर इशारा करते हैं

जैसा कि आपने इसे लिखा था, वैसे ही आप इसका उपयोग कर सकते हैं:

file { "/home/text.txt":
  source => "http://www.example.com/text.txt",
}

2
कठपुतली संस्करण 4.4.0 के रूप में (टिकट के माध्यम से tickets.puppetlabs.com/browse/PUP-1072 )
KJH

4

यह वर्षों से एक सुविधा के रूप में अनुरोध किया गया है ... लेकिन आपको इसके लिए एक कस्टम फ़ंक्शन की आवश्यकता होगी ... या उपयोग करने के लिए curlया wgetपपेट फोर्ज देखें ।

Text.txt में क्या है?


txt.txt सिर्फ एक उदाहरण है। मैं वास्तव में एक व्यवस्थापक प्रणाली से Freeradius ग्राहकों को खींचने के लिए इसका उपयोग करना चाहता हूं।
गनविन

4

यह अभी संभव नहीं है:

स्रोत:

...

उपलब्ध यूआरआई योजनाएं कठपुतली और फाइल हैं। कठपुतली URIs कठपुतली के अंतर्निहित फ़ाइल सर्वर से फ़ाइलों को पुनः प्राप्त करेंगे

मैंने defineइंटरनेट पर पाए जाने वाले उपयोग को समाप्त कर दिया :

define remote_file($remote_location=undef, $mode='0644'){
  exec{ "retrieve_${title}":
    command => "/usr/bin/wget -q ${remote_location} -O ${title}",
    creates => $title,
  }

  file{$title:
    mode    => $mode,
    require => Exec["retrieve_${title}"],
  }
}

remote_file{'/home/text.txt':
  remote_location => 'http://www.example.com/text.txt'
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.