Nếu bạn cần định cấu hình một tập hợp các dòng property = value duy nhất, tôi khuyên bạn nên sử dụng một vòng lặp ngắn gọn hơn. Ví dụ:
- 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' }
Sử dụng một lệnh chính được đề xuất bởi Alix Axel và thêm tự động loại bỏ các mục đã nhận xét phù hợp,
- 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
, nhưng sử dụnglineinfile
là một antipotype . Đó cũng là một lá cờ đỏ mạnh mẽ mà bạn "không biết những gì trong tập tin", dẫn đến nguy cơ thất bại đáng kể.