You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Вам предстоит написать плейбук и роли Ansible для настройки сервера
раздачи статики. Нужно будет сделать базовую настройку сервера и
установить/настроить nginx, который должен раздавать изображения по пути
/images, использовать эту подборку:
https://drive.google.com/file/d/1L9hsq9ZFB5VbXYJ3kEKH47x9nhxxZEnI
Тестовое окружение:
В качестве тестового окружения, к которому будет подключаться Ansible,
используйте Docker-контейнер, запускаемый через Docker Compose. Для
этого контейнера необходимо написать Dockerfile, используя в качестве
базового образа официальный Ubuntu 24.04. Вместе с ОС должен быть
установлен openssh-server для доступа по SSH. Также нужно описать
конфигурацию Docker Compose с пробросом необходимых портов.
Ожидаемый результат:
Решенное тестовое задание ожидается в виде публичного github/gitlab
репозитория.
Все роли должны быть написаны с учётом идемпотентности.
Процесс тестирования развертывания окружения должен выглядеть следующим образом:
1. Развернуть тестовое окружение через docker compose up
2. Запустить плейбук со всеми необходимыми vars файлами и с заранее
подготовленным inventory файлом (сами плейбуки заворачивать в docker
container не обязательно)
4. На 80 порту, по пути /images должна отображаться структура файлов, а
по пути /images/filename отображаться изображение
5. SSH порт должен быть открыт для подключения
Какие роли необходимо реализовать для Ansible плейбука:
1. Роль для создания/удаления пользователей/групп пользователей,
состояние пользователей и список кастомных групп необходимо
указывать в vars файле. Через vars’ы должно быть возможно
устанавливать пользователям следующие параметры:
a. Имя
b. Оболочка (bash/zsh/etc)
c. Состояние (удален/создан)
d. Публичный ключ (для подключения по ssh)
e. Пароль
f. Список групп в которых состоит пользователь (в том числе кастомные
группы, которые задаются в vars)
2. Роль для установки zsh/ohmyzsh для пользователей, устанавливать
только для пользователей с соответственным shell
3. Роль для настройки ssh, необходимо будет:
a. Запретить вход с пользователя root
b. Запретить пустые пароли
c. Выставить логгирование в режим VERBOSE
d. Отключить X11Forwarding
4. Обновление пакетов и установка дополнительных утилит, список должен
быть легко расширяем:
a. htop
b. ncdu
c. git
d. nano
5. Роль для раскатки nginx, в котором nginx устанавливается, настраивается, создается vhost с нужными нам locations, из настроек нужно:
a. Настроить gzip’ирование для статики
b. Логирование запросов
c. Добавить кэширование с сроком истечение 1 час
6. Роль для заливки статики, она должна любым удобным способом
размещать статику на сервере.