gitverse new year логотип

contest_stage2

Шаблон
Форк
0
Использовать шаблон

месяц назад
README.md

contest_stage2

contest_stage2 Задание второго этапа конкурса Запуск проекта

  1. Сборка контейнеров с использованием docker-compose Вы уже настроили файлы Docker для каждого компонента системы. Следующий шаг — убедиться, что все контейнеры корректно строятся и запускаются с помощью Docker Compose.
  2. Проверьте наличие Makefile: Убедитесь, что файл Makefile находится в корне проекта (contest_stage2). bash Копировать код ls
  3. Проверьте синтаксис Makefile: В файле Makefile должны быть команды для сборки, запуска и тестирования. Пример: makefile Копировать код .PHONY: build up test

build: docker-compose -f docker/docker-compose.yml build

up: docker-compose -f docker/docker-compose.yml up

test: pytest tests/ 3. Соберите проект: Используйте команду make build для сборки всех сервисов. bash Копировать код make build 4. Запустите проект: Запустите проект с помощью команды make up. bash Копировать код make up 5. Проверьте работоспособность контейнеров: Для проверки статуса контейнеров используйте: bash Копировать код docker-compose ps Пример документации: markdown Копировать код

Описание проекта

Этот проект реализует следующие компоненты:

  1. Файловая система в памяти (с использованием FUSE)
  2. Виртуальный терминал с поддержкой SSH
  3. Система контроля версий для конфигурационных файлов
  4. Система автоматического бэкапа

Запуск проекта

1. Сборка контейнеров:

Для сборки контейнеров используйте команду:

make build
2. Запуск контейнеров: контейнер пробрасывается через 2222 порт. Тость у нас запущен сначала сервер. Все файлы собрали активировали, а уже после активируем сервер ssh. Но для начала нужно будет приостановить другой процесс на 2222 порту. После делааем успешный вход и работаем с файлами.
Для запуска проекта выполните:
bash
Копировать код
make up
sereg@DESKTOP-OC6SA2U MINGW64 ~/OneDrive/Рабочий стол/test_unpack/contest_stage2
$ docker start ssh-container
ssh-container
sereg@DESKTOP-OC6SA2U MINGW64 ~/OneDrive/Рабочий стол/test_unpack/contest_stage2
$ ssh -p 2222 user@localhost
The authenticity of host '[localhost]:2222 ([::1]:2222)' can't be established.
ED25519 key fingerprint is SHA256:Y3q+6HDoWpSl5qJ8HPYAVagvVR8GSE7/PQHFevmpxO8.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.
user@localhost's password:
paPermission denied, please try again.
user@localhost's password:
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
Last login: Sun Nov 17 10:12:30 2024 from 172.17.0.1
$
Контейнеры будут запущены, и вы сможете подключиться к SSH через:
bash
Копировать код
ssh -p 2222 user@localhost
3. Тестирование:
Для выполнения тестов проекта используйте команду:
bash
Копировать код
make test
Пример работы:
1. Запустите SSH-сервер:
Копировать код
python ssh_server.py
2. Подключитесь к серверу через SSH:
css
Копировать код
ssh -p 2222 user@localhost
3. Введите команды:
o mkdir testdir — создаст директорию.
o touch testfile — создаст файл.
o ls — выведет список файлов.
o cat testfile — выведет содержимое файла (если файл пуст, то просто ничего не покажет).
o rm testfile — удалит файл.
Пример работы:
1. Запустите сервер:
Копировать код
python ssh_server.py
2. Подключитесь через SSH:
css
Копировать код
ssh -p 2222 user@localhost
3. Пример ввода команд:
shell
Копировать код
$ mkdir newdir
Directory newdir created successfully.
$ ls
newdir
$ cd newdir
Changed directory to newdir
$ echo "Hello, world!" > hello.txt
Output redirected to hello.txt
$ ls
hello.txt
$ cat hello.txt
Hello, world!
$ echo "This is a test" | tee testfile.txt
This is a test
Теперь ваша система поддерживает базовые команды оболочки, обработку ошибок, перенаправления вывода и конвейеры!
Для выполнения задания, связанного с виртуальным терминалом SSH, системой контроля версий (VCS) и автоматическим бэкапом, давайте пройдем пошагово через все этапы.
Шаг 1: Настройка виртуального терминала с SSH
1. Настройка SSH-сервера в контейнере
В вашем проекте используется Docker для контейнеризации, и вам нужно настроить SSH-сервер для работы с контейнером.
Dockerfile должен содержать установку OpenSSH-сервера и настройку для подключения через SSH. Пример Dockerfile для этой задачи:
Dockerfile
Копировать код
# Используем базовый образ Ubuntu
FROM ubuntu:latest
# Устанавливаем необходимые пакеты
RUN apt-get update && apt-get install -y \
openssh-server \
sudo \
curl \
vim \
&& rm -rf /var/lib/apt/lists/*
# Создаем директорию для SSH
RUN mkdir /var/run/sshd
# Создаем пользователя user и добавляем его в sudo-группу
RUN useradd -m user && echo "user:password" | chpasswd && adduser user sudo
# Разрешаем вход по паролю для SSH
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
# Открываем порт для SSH
EXPOSE 2222
# Стартуем SSH-сервер
CMD ["/usr/sbin/sshd", "-D"]
В данном Dockerfile мы:
o Устанавливаем OpenSSH.
o Создаем пользователя user с паролем password.
o Открываем порт 2222 для SSH.
o Разрешаем вход по паролю.
2. Сборка и запуск контейнера
После того, как Dockerfile готов, соберите и запустите контейнер:
bash
Копировать код
docker build -t ssh-container .
docker run -d -p 2222:22 --name ssh-container ssh-container
3. Подключение через SSH
После того как контейнер запущен, вы можете подключиться к нему через SSH. В вашем случае SSH работает на порту 2222. Подключитесь с помощью команды:
bash
Копировать код
ssh -p 2222 user@localhost
Проверка работы каждого компонента
1. Файловая система в памяти (MemoryFS):
o Убедитесь, что директория mount создана.
o После запуска сервиса memory_fs, перейдите в папку mount:
bash
Копировать код
cd mount
touch testfile
echo "Hello, World!" > testfile
cat testfile
Если файл создался, записался и прочитался, компонент работает.

Описание

contest_stage2 Задание второго этапа конкурса 1. Общее описание задачи В команду системной разработки поступила задача по созданию прототипов систем, которую нужно решить: 1.1. Файловой системы в памяти Максимальное количество баллов за решение - 30 Реализовать виртуальную файловую систему с использованием FUSE (Filesystem in Us

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.