Skip to content

perec007/mml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mml

managment linux

Набор скриптов и псевдографических интерфейсов для упращения стандартных и рутинных задач в администрировании. Набор скриптов не способен заменить администратора, и требует минимальных знаний консоли. Задачи которые можно переложить на mml скрипты:

  • инсталляция веб окружения php-fpm
  • обязательная установка nginx фронтэнда.
  • создание-удаление веб доменов.
  • создание-удаление пользователей, раздача прав
  • инсталляция серверов баз данных, mysql.

===

План работ:

  • Написание скрипта позволяющего создавать структуру каталогов веб сервера nginx + php-fpm
  • Написание скрипта позволяющего создавать структуру каталогов сервера nginx + apache 2.2
  • Написание документации к работе скрипта и структуре которая создается.
  • Разработка скрипта для установки mysql или mysql percona на выбор.
  • Разработка скрипта для установки posgreesql.
  • Создание интерфейса для управления mysql и postgreaql серверами.
  • Установка pgadmin и myadmin.
  • создание ftp и sftp учеток, в chroot окружении домена.

Планы на будущее:

  • первоначальная настройка репликации mysql
  • Полуавтоматическое (по команде админа) восстановление репликации после сбоя

mml.sh : Главный интерфейс к набору скриптов. Для взаимодействия со скриптами написан интуитивно понятный интерфейс - обвязка. Интерфейс взаимодействия:

  • каждый скрипт должен отвечать ему по запросу mml таблицей следующего формата:
  • action|help|long_help|dialog_param|start_param
  • action - действие
  • help - короткая справка
  • long_help - расширенная длинная справка по действию команды
  • dialog_param - параметры, которые нобходимо дополнительно запросить в диалоге у пользователя (в формате dialog)
  • start_param - каким именно образом преобразовывать параметры и в каком порядке их подставлять. Максимум 5 параметров, значения идут в порядке заданном в предыдущим пунктом, обозначаются x1, x2 ... x5

Cтурктура каталогов nginx+php-fpm: Схема с php-fpm является наиболее безопасной, каждый домен запускается от отдельного пользователя, и изолирован на уровне acl файловой системы от других доменов. При необходимости ftp и sftp пользователей можно запереть в chroot окружение, не давая шелла. Права всегда на все домены на даются минимальные.

Внутренние глобальные переменные:

$opt=/MML_OPT/

  • /MML_OPT/
  • ├── socket - здесь располагаются сокеты php-fpm
  • └── www
  • └── domain.ru - корневая папка конкретного домена domain.ru
  •   ├── log			- логи домена domain.ru
    
  •   ├── tmp			- временные файлы domain.ru
    
  •    └── www			- корневая директория domain.ru
    

Права на каталоги:

  • /MML_OPT/ = root:root 2750, u:nginx:x, u:fpmdomainru:x
  • /MML_OPT/socket/ = root:root 2750 u:nginx:rwx, u:fpmdomainru:rwx
  • /MML_OPT/www/ = root:root 2750, u:nginx:x, u:fpmdomainru:x
  • /MML_OPT/www/domain.ru/ = root:root 2750, u:nginx:x, u:fpmdomainru:x, u:user:rx
  • /MML_OPT/www/domain.ru/www/ = root:root 2750, u:nginx:rx, u:fpmdomainru:rwx, u:user:rwx
  • /MML_OPT/www/domain.ru/log/ = root:root 2750, u:nginx:rwx, u:fpmdomainru:rwx, u:user:rx
  • /MML_OPT/www/domain.ru/tmp/ = root:root 2750, u:nginx:rwx, u:fpmdomainru:rwx, u:user:rwx

Скрипты: ./initservice.sh {initweb}

  • Эта команда производит инициализацию структуты катлогов, и также устанавливает обязательный фронтэнд nginx. Кроме того заменяется стандартный конфиг, создается домен по умолчанию. Чтобы попроавить и привести права структуры каталогов в безопасное состояние необходимо заново выполнить эту команду. Puppet все сделает сам.

./initservice.sh {initmysql}

  • Данная команда позволяет установить сервер баз данных mysql. Устанавливается последняя версия. Также генерируется случайный пароль и записывается в файл /root/.my.cnf, после чего для вход в mysql пользователю root достаточно просто набрать команду mysql.

./managedomain.sh {adddom|deldom|showdom} "httpdomain"

  • Этой командой производится добавление или удаление домена. Создание домена происходит вместе с созданием всей структуры папок, и раздачей необходимых прав nginx и fpm серверу. Удаление ведет к удалению структуры каталогов, конфигов.

./managedomain.sh {useradd|userdel} "user"

  • Добавление и удаление пользователя в системе. При добавлении пользователя система генерирует 3 случайных пароля и предлагается выбрать один из них. При удалении не удаляется домашний каталог пользователя!

./managedomain.sh {userdelperm|useraddperm} "httpdomain" "user"

  • Данная команда раздает и убирает добавленному предыдущей командой пользователю необходимые права для доступа к соостветствующему домену, посредством системы файловой acl.

!!!Внимание!!!

Ни одна из этих команд самостоятельно не рестартует сервисы. Чтобы перезапустить nginx и php-fpm необходимо использовать команду: service nginx reload && service php-fpm reload

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published