Задать вопрос
@UserProgramer

Как правильно настроить сервер по требованиям из ТЗ?

Всем привет. Подскажите, как будет более правильно настроить окружение и какие технологии применить исходя из описания.

Для чего это нужно?
Раз в 6 месяцев проходят соревнования, где на один кабинет выделяется сервер (OS windows server).
Одновременно на машине работает до 15 человек.

На данный момент на сервере стоит Wmware и образ ubuntu на котором и работают участники.
Так же присутствует админ панель. Ее задачи:
Добавление участников: Добавляет nginx конфиг и создает директорию пользователя (папка users) в ubuntu.
Смена пароля: меняет пароль от ssh root.

Панель будет обновляться и ее функционал будет расширяться.

Требования к машине:

1) Возможность подключаться по ssh, ftp с любого ПК в одной локальной сети под своим пользователем.
2) Возможность сделать backup и развернуть на любом ПК в другой сети. (нужно для проверки заданий)
3) Быстрое обновление модулей. На данный момент это основания проблема! Нужно, чтобы обновление происходило легко и просто.

Как я это вижу:

Раз в 6 месяцев я буду брать чистый образ Ubuntu server и на него должны устанавливаться последние, сконфигурированные версии: nginx, apache, node, php, python, mysql исходя заранее написанным правилам.

В итоге нужно будет менять только версии на более новые и все, а далее все будет накатываться самостоятельно на чистый образ.

Как я вижу процесс настройки:

Устанавливается php и mysql, nginx, node, python (должна быть возможность менять значения конфигов, например, как в докере прокидываться в контейнер или заменяться при установке)

Админ панель должна будет установиться в папку пользователя (админа) из гита
Выполняется установка composer и соответственно выполняется composer install.
nginx, благодаря которому будет админка будет доступна по доменному имени в локальной сети.

Суть думаю понятна, аналог dockerfile.

5) Веб-ресурсы пользователей должны будут отображаться в браузере на любом ПК в локальной сети.

Моя задача оптимизировать создание образа, чтобы каждые полгода не заходить на сервер и не обновлять все ручками.

Рассматривал инструмент ansible, но есть сомнения подойдет ли он для моих нужд.
  • Вопрос задан
  • 337 просмотров
Подписаться 3 Простой 2 комментария
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Хм. Вообще не вижу проблемы хотя бы я заменил виртуализацию на Hyper-V.

Ubunty ставите ltsc и забываете на 2-4 года.
Дальше ставите MySQL + Nginx + Node + PHP + Python.
Создаете скрипт который делает следующее:
* вносит изменение в DNS что то типа vasya.labs.loc
* добавляет пользователя vasya и устанавливает пароль
* добавляете папку /home/vasya/public_html
* добавляете конфиг /etc/nginx/sites-enabled/vasya.conf
* добавляете базу для васи и пишете пароли в файл в его домашней директории
* перезапускаете nginx

Итого установка и обновление убунты и обновлений происходит 1 раз и штатно без шаманства
Пользователь получает адрес типа vasya.labs.loc
При желании можно парсить пользователей из csv файла

Node + PHP + Python конкретной версии сам пользователь и назначает используя virtualenv, nvm, phpenv

Если что упустил уточняйте
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Refguser
Решения для бизнеса: от создания ИМ до...
Раз в 6 месяцев я буду брать чистый образ Ubuntu server и на него должны устанавливаться последние, сконфигурированные версии: nginx, apache, node, php, python, mysql исходя заранее написанным правилам.

Насколько я помню при сетапе сереврной убунты можно сразу выбрать LAMP.
Останется только потом добавить ноду и питона.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы