Динамическое создание файлов apache.conf с помощью инструментов devops - PullRequest
0 голосов
/ 29 апреля 2019

Учитывая файл ключа / пары, подобный этому (формат файла манифеста Java):

KEY_ONE: VALUES VALUES VALUES (line break here)
(Space here) VALUES VALUES VALUES
KEY_TWO: VALUES VALUES VALUES
 VALUES VALUES VALUES
 VALUES
KEY_THREE: VALUES

Что регулярное выражение BASH позволило бы мне получить значение в виде одной строки? то есть. Я хочу, чтобы все значения KEY_TWO как (VALUES VALUES VALUES VALUES ...)

регулярное выражение = "$ KEY: \ S * (*.)"

Это даст мне все, от ключа до конца файла. Но как я могу сказать в скобках: получить все до следующего ключа Кажется, я не могу использовать «^» для начала строки, как бы я ни пытался, я не могу сделать регулярное выражение многострочным.


Я собираюсь рассказать вам, что я на самом деле пытаюсь сделать, чтобы избежать проблемы XY. Я пишу некоторый код bash / packer / terraform для создания системы, в которой apache передает HTTP-запросы на один из 'n' java-серверов на основе URL.

Так что, если пользователь попросит / foo1, они будут отправлены на сервер Java 1 Если они попросят / foo2, они будут отправлены на второй сервер и т. Д. URL-адрес для сопоставления прокси-сервера полностью произвольный.

Поскольку инструментальные средства, которые создавали Java-приложения (файлы War, по одному для каждого сервера), знают, с какими URL-адресами он может работать, я поместил эту информацию в файл манифеста каждой войны.

Тогда я намерен:

Create a base Jetty server image
Create a base Apache image
For each WAR file created by the build tooling
  Based on the base Jetty image, create new image with WAR deployed
  Parse manifest entry with mappings for apache and write to file (in /tmp).
Based on the base apache image, for each conf file in /tmp
modify proxy URL's and put the conf file in sites-available
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...