में एक मानचित्रण का निर्माण जब भी मैं अपने प्लेबुक चलाने निम्न चेतावनी आता है:चेतावनी जबकि Ansible
[चेतावनी]: एक ओर जहां /etc/ansible/roles/foo/tasks/main.yml से एक मानचित्रण का निर्माण , लाइन 17, कॉलम 3, एक डुप्लिकेट dict कुंजी (फ़ाइल) मिला। केवल अंतिम निर्धारित मूल्य का उपयोग करना।
कार्य फ़ोल्डर में मेरी main.yml की प्रासंगिकता का इस तरह है:
(लाइन 17 जो थोड़ा दूर लगती है तो मुझे लगता है कि समस्या के साथ है फ़ाइलों को साफ करने के काम नहीं है पिछले "स्क्रिप्ट" लाइन)
- name: Run script to format output
script: foo.py {{ taskname }} /tmp/fcpout.log
- name: Clean temp files
file: path=/tmp/fcpout.log state=absent
और मेरे वार्स फ़ाइल:
---
my_dict: {SLM: "114", Regular: "255", Production: "1"}
taskid: "{{my_dict[taskname]}}"
चलाने के लिए मेरी प्लेबुक मैं करता हूँ: "सर्वर" पैरामीटर के साथ, taskname हो और कि से पता लगाने के जो करने के लिए आईडी संदर्भित करता है:
ansible-playbook playbooks/foo.yml --extra-vars "server=bar taskname=SLM"
मुझे क्या करना कोशिश कर रहा हूँ आदेश पंक्ति तर्क लेने के लिए, मेजबान सेट किया गया है सेवा मेरे। इस आईडी को मेरी पायथन लिपि में पहले इनपुट के रूप में उपयोग किया जाता है जो दूरस्थ रूप से चलता है।
प्लेबुक ठीक काम करता है, लेकिन मुझे समझ में नहीं आता कि मुझे चेतावनी क्यों मिलती है। क्या कोई यह समझा सकता है कि यहां क्या गलत है?
आप सही हैं। एक दूसरी फ़ाइल थी: 'कार्य। मैं उत्तरदायी शब्दों से अपरिचित हूं, इसलिए मुझे यह नहीं मिला कि "एक डुप्लिकेट dict कुंजी (फ़ाइल)" मिला है, यह फ़ाइल मॉड्यूल का जिक्र कर रहा था। "कुंजी" शब्द के साथ मैंने सोचा कि इसे मेरे शब्दकोश के साथ करना था ... मदद के लिए धन्यवाद। –
यदि आपके पास दो "कार्य:" कुंजी भी हैं तो आप इसे प्राप्त कर सकते हैं :) परिदृश्य: प्लेबुक में एक ही कार्य है और आपने इसे डुप्लिकेट किया है लेकिन गलती से कार्य शीर्षक को कॉपी भी किया है। बैकअप कर सकते हैं @udondan गलत लाइन संख्याओं के बारे में भी कहता है - मैंने कई पंक्तियों को चेतावनी दी है। –