यदि आपको अद्वितीय गुण = मान रेखाओं के एक सेट को कॉन्फ़िगर करने की आवश्यकता है, तो मैं एक अधिक संक्षिप्त लूप की सिफारिश करता हूं। उदाहरण के लिए:
- name: Configure kernel parameters
lineinfile:
dest: /etc/sysctl.conf
regexp: "^{{ item.property | regex_escape() }}="
line: "{{ item.property }}={{ item.value }}"
with_items:
- { property: 'kernel.shmall', value: '2097152' }
- { property: 'kernel.shmmax', value: '134217728' }
- { property: 'fs.file-max', value: '65536' }
एलिक्स एक्सल द्वारा सुझाए गए अनुसार एक तानाशाह का उपयोग करना और मिलान से स्वचालित रूप से हटाने के लिए प्रविष्टियों को टिप्पणी करना,
- name: Configure IPV4 Forwarding
lineinfile:
path: /etc/sysctl.conf
regexp: "^#? *{{ item.key | regex_escape() }}="
line: "{{ item.key }}={{ item.value }}"
with_dict:
'net.ipv4.ip_forward': 1
template
, लेकिन उपयोगlineinfile
करना एक एंटीपैटर्न है । यह एक मजबूत लाल झंडा भी है जिसे आप "फ़ाइल में क्या है" नहीं जानते हैं, जिससे अज्ञात विफलताओं का पर्याप्त जोखिम होता है।