Проблема, с которой я сталкиваюсь, кажется верной для всех искажений, но давайте предположим, что я использую все по умолчанию debian-stable
(сервер) и запустил apt update -y
.
Установка, обновление, перезапуск, а также включение или отключение модулей в Apache - все операции, не зависящие от версии, и я считаю это проблемой:
Установка или обновление Apache должно быть apt upgrade apache1
или apt upgrade apache2
. Это не может быть просто «подходящее обновление apache» с какой бы то ни было версией, как с apt upgrade zip
или apt upgrade unzip
и так далее.
Чтобы перезапустить 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. Возможно, вы захотите предложить другую роль.