Я хотел бы создать сценарий для непосредственного управления конфигурацией Apache2, чтения и записи его свойств (например, добавления нового VirtualHost, изменения настроек уже существующего).
Есть ли какие-нибудь библиотеки для Perl, Python или Java, которые автоматизируют эту задачу?




Это окончательный конфигуратор Apache:
открывает доступ ко многим, если не всем внутренним компонентам Apache, программам, написанным на Perl.
Например: http://perl.apache.org/docs/2.0/api/Apache2/Directive.html
(Конечно, он может гораздо больше, чем просто его настраивать).
С другой стороны, он должен быть загружен и запущен в Apache, а не парсером / редактором файла конфигурации.
Вместо того, чтобы манипулировать файлами конфигурации, вы можете использовать mod_perl для встраивания Perl непосредственно в файлы конфигурации. Это может позволить вам, например, читать необходимые vhosts из базы данных.
См. Настройте Apache с помощью примера Perl для быстрого примера и Конфигурация Apache на Perl для всех деталей.
Если вы используете только блоки perl во время настройки, использование памяти не будет проблемой. Дополнительная библиотека, подключенная к нему, заставит детей выглядеть больше, но это вся общая память.
Попробуйте Модуль Apache :: ConfigFile Perl.
Однако это на самом деле не записывает файлы конфигурации. В руководстве о функции write () сказано: «Этот метод в настоящее время находится в разработке и не работает. Патчи приветствуются».
Посмотрите на Авгий, это не специально для конфигурации Apache-httpd. files - это просто общая конфигурация. файл "редактор" API. Одним из основных аргументов в пользу этого является то, что в нем будут храниться комментарии и т. д. рад, что другие инструменты изменят файлы, и откажется от сохранения поврежденных файлов.
Также тот факт, что вы можете использовать один и тот же API на всех языках, о которых вы спрашивали, и что вы можете редактировать другие config. файлы, использующие одни и те же API-интерфейсы, являются основными преимуществами IMO.
У Augeas нет парсера для файлов конфигурации Apache - вам все равно придется написать его самостоятельно.
У Авгия теперь есть объектив Httpd.
Также см. Конфиг :: Общие, который утверждает, что полностью совместим с файлами конфигурации Apache. Я использую его для анализа файлов конфигурации Apache для автоматического регрессионного тестирования после изменений конфигурации.
Предупреждение; это серьезно раздувает сервер, делает его более хрупким (еще один источник утечек памяти), а при обновлении системы у вас появляется еще одна зависимость, о которой нужно позаботиться. Для такого варианта использования создание конфигурации из программы кажется более безопасным.