Продвинутая настройка php веб-сервера с использованием Ansible

В прошлой статье я рассмотрел как с помощью Ansible можно установить на сервер, или группу серверов, всё необходимое ПО для работы PHP приложения (протестировано на Laravel 5.8).

Однако в этом способе была также и часть ручной работы, т.к. ПО мы поставили, а конфигурировать его надо самостоятельно вручную.

В данной статье я приведу свой вариант playbook для Ansible, который разбит на отдельные роли, чтобы можно было удобно управлять что именно нужно установить, и переиспользовать эти роли на других проектах. Также данный конфиг параметризован, так что достаточно в разделе для переменных указать имя пользователя, пароль, реквизиты для БД, имя сайта, и Ansible настроит всё за вас.

Он установит:

  • Fail2ban
  • Ufw
  • Php с нужными расширениями
  • Nginx
  • MariaDB
  • Git
  • Composer
  • Python-mysqldb

Cоздаст:

  • Пользователя с именем webmaster и паролем password (не забудьте изменить пароль в параметрах)
  • Базу данных с именем app_db
  • Пользователя БД с именем app_user и паролем app_user_password (не забудьте изменить пароль в параметрах) и даст все привелегии на базу app_db

Сконфигурирует:

  • Nginx конфиг и шаблон для сайта example.com (не забудьте изменить url в параметрах)
  • Php-fpm конфиг
  • Ufw (откроет 22, 80, 443 порты, ограничит кол-во попыток подключения к 22 порту)

Код можно посмотреть на моем github аккаунте https://github.com/antonov-e-v/ansible-php-webserver-config

{{ message }}

{{ 'Comments are closed.' | trans }}