2016-07-20 7 views
5

मुझे दूरस्थ होस्ट पर फ़ाइलों को बनाने या ओवरराइट करने की आवश्यकता है। फ़ाइलों को अद्यतन करते समय मॉड्यूल lineinfile या blockinfile उपयोगी होते हैं, लेकिन स्क्रैच से किसी को बनाने या मौजूदा लोगों को पूरी तरह ओवरराइट करने के लिए नहीं।क्या प्लेबुक में फ़ाइल सामग्री शामिल करना संभव है?

स्पष्ट समाधान copy का उपयोग करना है, लेकिन मैं पक्ष के बिना फ़ाइलों के बिना एक स्टैंडअलोन प्लेबुक जितना संभव हो सकता हूं। क्या प्लेबुक में फ़ाइल बनाने की सामग्री को शामिल करना संभव है?

हो सकता है कि फ़ाइल जो copy के लिए src= पैरामीटर के रूप में इस्तेमाल किया जा सकता की सामग्री के साथ एक चर होने की तर्ज पर कुछ (मैं इस कोशिश की, लेकिन यह src के रूप में काम नहीं करता है एक स्थानीय फ़ाइल की उम्मीद है)

+0

ब्लॉकिनफाइल और लाइनिनफाइल दोनों में "निर्माण" नामक एक पैरामीटर है जिसे आप स्क्रैच से फ़ाइल बनाने के लिए हाँ पर सेट कर सकते हैं। यदि आप हमेशा सामग्री को ओवरराइट करना चाहते हैं, और आप COPY का उपयोग नहीं करना चाहते हैं, तो आपके पास दो कार्य हो सकते हैं: पहला कार्य यह जांच करेगा कि फ़ाइल मौजूद है और इसे हटा दें, दूसरा कार्य लाइनइनफाइल/ब्लॉकिनफाइल मॉड्यूल को सेट सेट के साथ उपयोग करेगा हाँ और सामग्री जो भी आप चाहते हैं सेट करने के लिए। –

उत्तर

16

कॉपी:

tasks: 
    - copy: 
     content: | 
       This is some 
       not too complex 
       cotent for a file 
     dest: content.txt 

लेकिन जैसे Ansible doc प्रति:

यह सरल मूल्यों के लिए है कुछ भी जटिल या प्रारूपण के टेम्पलेट मॉड्यूल करना शुरू कर दें के लिए।

2

template - मॉड्यूल आपके लक्ष्य को प्राप्त करने का एक अच्छा तरीका है। सामग्री के साथ

+0

धन्यवाद, लेकिन इस मॉड्यूल को अभी भी बाहरी फाइलों की आवश्यकता है, है ना? मैंने नहीं देखा कि सामग्री को प्लेबुक में कैसे शामिल किया जा सकता है (?) – WoJ

+0

आपका स्वागत है। हां, मॉड्यूल एक अतिरिक्त फ़ाइल, टेम्पलेट का उपयोग करता है, जो कि अधिक आसान है, यदि आप कई मशीनों पर अपने काम का उपयोग करते हैं और प्रश्न में फ़ाइल को समायोजित किया जाना है। एक और उपयोग केस है, अगर आपको एक से अधिक बार कार्य करना है। – Capri90

+0

मेरे प्रश्न का मुद्दा एक स्टैंडअलोन प्लेबुक होना था, फाइलों के बिना, अन्यथा, जैसा कि मैंने प्रश्न में उल्लेख किया है, मैंने 'कॉपी'' का उपयोग किया होगा। @ कोन्स्टैटिन का समाधान उस बिंदु को शामिल करता है। – WoJ

संबंधित मुद्दे