मैं एक फ़ाइल की सामग्री को पढ़ने की कोशिश कर रहा हूं, इन्हें एक चर में संग्रहित करता हूं और फिर उन्हें किसी अन्य फ़ाइल में डालने का प्रयास करता हूं यदि वे पहले से मौजूद नहीं हैं।lineinfile मॉड्यूल में फ़ाइल नाम और फ़ाइल सामग्री के लिए चर का उपयोग करना
# Create a variable that represents the path to the file that you want to read from
ssh_public_key_file: '../../jenkins_master/files/{{ hostvars[inventory_hostname]["environment"] }}/id_rsa.pub'
# Create a variable that represents the contents of this file:
ssh_public_key: "{{ lookup('file', '{{ ssh_public_key_file }}') }}"
मैं तो इस प्रकार मेरी Ansible प्लेबुक में इन चर का उपयोग:
- name: Install SSH authorized key
lineinfile: create=yes dest=~/.ssh/authorized_keys line=" {{ ssh_public_key }}" mode=0644
लेकिन जब मैं कोशिश,
तो, मैं इस बारे में जाने का प्रयास कर रहा हूँ इस प्रकार है और प्लेबुक चलाएं, मुझे निम्न त्रुटि संदेश मिलता है:
could not locate file in lookup: {{ ssh_public_key_file }}
क्या कोई भी समाधान की सिफारिश कर सकता है n या सुझाव है कि मैंने क्या गलत किया होगा?
धन्यवाद,
शॉन
मुझे लगता है jinja2 एकल उद्धरण के अंदर का विस्तार नहीं करता है: क्या आप इसे इस तरह से कर सकते हैं चर और तार जोड़ की जरूरत है
। हालांकि उस पर 100% निश्चित नहीं है। किसी भी मामले में, कृपया lineinfile के बजाय 'टेम्पलेट' मॉड्यूल का उपयोग करें। यह लाइन के नीचे बहुत कम गन्दा होगा। – tedder42
अरे @ सेन क्या आपको अपनी समस्या का समाधान मिला? मेरे पास वर्तमान में एक ही समस्या है और शायद आप अपना समाधान मुझे/दूसरों को साझा कर सकते हैं। धन्यवाद – ByteNudger