Настройка PHP с lineinfile
Ранее мы вкратце упомянули lineinfile, при обсуждении вопросов управления файлами и выполнения ad-hoc задач. Модификация конфигурационного файла PHP является лучшим способом демонстрации полезности lineinfile:
- name: Enable upload progress via APC.
lineinfile:
dest: "/etc/php5/apache2/conf.d/20-apcu.ini"
regexp: "^apc.rfc1867"
line: "apc.rfc1867 = 1"
state: present
notify: restart apache
Модуль lineinfile выполняет простую задачу: обеспечивает поиск по шаблону определенной строки в файле.
В этом примере мы включили функцию APC’s rfc1867, чтобы Drupal мог отслеживать APC файлы (есть лучшие способы сделать это, но для нашего сервера это будет достаточно).
Во-первых, мы укажем lineinfile местоположение файла в параметре dest. Затем отдадим регулярное выражение (Python-style), чтобы определить, как выглядит строка (в данном случае строка начинается с фразы “apc.rfc1867” ). Далее мы указываем как должна выглядеть строка. Наконец, мы сообщаем, что мы хотим, чтобы эта строка присутствовала в файле (с параметром state).
Ansible получив регулярное выражение проверит наличие совпадений. Если совпадение существует, Ansible убедиться, что строка соответствует параметру line. Если нет, Ansible добавит строку определенную в параметре line. Ansible будет сообщать об изменениях только в том случае, если необходимо добавить или изменить строку в соответствии с параметром line.