Назад | Перейти на главную страницу

Полная автоматизация Apache в любом дистрибутиве

Проблема, с которой я сталкиваюсь, кажется верной для всех искажений, но давайте предположим, что я использую все по умолчанию debian-stable (сервер) и запустил apt update -y.

Установка, обновление, перезапуск, а также включение или отключение модулей в Apache - все операции, не зависящие от версии, и я считаю это проблемой:

  1. Установка или обновление Apache должно быть apt upgrade apache1 или apt upgrade apache2. Это не может быть просто «подходящее обновление apache» с какой бы то ни было версией, как с apt upgrade zip или apt upgrade unzip и так далее.

  2. Чтобы перезапустить Apache, нужно сделать systemctl restart apache2 и чтобы включить или отключить модуль Apache, нужно сказать a2enmod http2 deflate expires или a2dismod http2 deflate expires.

Подходы, которые я рассмотрел для решения этой проблемы

Я думал, что здесь может помочь Ansible, переписав старую команду установки с помощью Ansible apt модуль state=latest вариант, но Документы Ansible Apache не включает синтаксис этих команд, не зависящий от версии, и также устанавливает только Apache2, поэтому даже когда выйдет Apache3, мне все равно придется вручную release_upgrade его с 2.4 до 3.x хотя я постоянно обновляю в основном все остальное программное обеспечение вышеупомянутой ОС с помощью Ansible (например, zip и unzip).

1. Объединение Ansible с регулярным выражением (как в Ansible apt apache* или systemctl restart apache*) все равно мало или хотя бы "хрупко".

2. Даже комбинируя Ansible и tasksel с и регулярным выражением:

- name: Install latest Apache
  apt: lamp-server^ 
  state: latest

- do stuff and restart Apache
  command:
    args:
      argv:
        - aenmod http2 deflate expires # Non version-agnostic http version;
        - systemctl restart apache*

может быть недостаточно, поскольку мне все равно потребуется внести изменения вручную, когда выйдет Apache 3, 4 или 5 (скажем, для существующих файлов виртуального хоста).

Мой вопрос

Я знаю, что это может быть крайним желанием, но есть ли способ установить и полностью непрерывно обновлять Apache (включая release_upgrades, файлы виртуального хоста и т. Д.) Без проблем?

Может быть, коммунально обслуживаемый и хорошо поддерживаемый Роль Ansible-Galaxy это правильный подход. Может мне стоит выбрать другой веб-сервер - я не знаю.

Обновить за комментарий

Это вытекает из комментария Майкла Хэмптона о том, что все это специфично для Debian, и что в других дистрибутивах могут быть независимые от версии способы установки Apache - честно говоря, я рассматривал ArchLinux из-за его модели полностью скользящего обновления ОС. Ответом может быть несколько дистрибутивов, которые могут соответствовать подходу, который я ищу в Apache.

Ты прав

«Хорошо поддерживаемая роль Ansible-Galaxy - правильный подход».

Я ищу вклад в Роль Apache. Возможно, вы захотите предложить другую роль.