Добавление строки в файл в задании - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно добавить в ANSIBLE задачу в /etc/nginx/nginx.conf две строки (для развертывания):

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/bin/passenger_free_ruby;

Эта строка, которую я добавляю в конец файла ("include /etc/nginx/passenger.conf;"):

- name: Include passenger in nginx.conf
  become: yes
  lineinfile: dest=/etc/nginx/nginx.conf regexp="^\s*# include \/etc\/nginx\/passenger.conf;" line="        include /etc/nginx/passenger.conf;"

Но эти строки должны быть в блоке html {...}, а не в конце файла. Как я могу это сделать?

1 Ответ

0 голосов
/ 09 ноября 2018

Есть опция insertafter для модуля lineinfile.

Вы можете сделать что-то вроде этого:

- lineinfile:
    dest: /etc/nginx/nginx.conf
    line: "        include /etc/nginx/passenger.conf;"
    insertafter: '^\s*include /etc/nginx/conf-components.d/\*.conf;\s*$'
    # insertafter: '^http {$'

Чтобы вставить ваше включение сразу после *.conf включения или сразу после http { открытия тега.

Бесполезно, если у вас много одинаковых блоков. Но для уникальных маркеров это достаточно хорошо.

...