Курс DevOps для самостоятельного изучения (1 занятие в неделю = 1 блок заданий)

Особенности формата:

  • ✅ Нет созвонов — только асинхронная коммуникация

  • ✅ Четкие инструкции «что делать», но не «как делать»

  • ✅ Обязательная документация (вместо устных ответов)

  • ✅ Проверка по чек-листам (студент сам себя проверяет)

  • ✅ Telegram-бот для напоминаний и приёмки заданий (опционально)


Структура одного занятия (блока)

Каждое занятие строится по единому шаблону:

1. ТЕОРИЯ (15-20 мин чтения) - краткий конспект
2. ПРАКТИКА (1-2 часа) - пошаговые задания
3. ПРОВЕРКА СЕБЯ (10 мин) - чек-лист
4. ЗАДАНИЕ НА НЕДЕЛЮ (проект) - то, что нужно сдать
5. РЕФЛЕКСИЯ - вопросы для самоанализа

Модуль 1: Linux и веб-сервер (4 недели)

Неделя 1: Знакомство с сервером и базовые команды

Цель: Подключиться к серверу, понять структуру файловой системы, научиться перемещаться и смотреть файлы.

ТЕОРИЯ (кратко):

Базовые команды Linux

Навигация

  • pwd - где я сейчас?

  • ls - что здесь есть?

  • ls -la - показать ВСЁ (включая скрытые файлы) с деталями

  • cd /путь/к/папке - перейти в папку

  • cd .. - подняться на уровень выше

  • cd ~ - перейти в домашнюю папку

Работа с файлами

  • cat file - показать содержимое

  • less file - показать с прокруткой (q - выход)

  • head -n 5 file - первые 5 строк

  • tail -n 5 file - последние 5 строк

  • tail -f file - следить за изменениями (Ctrl+C - выход)

Права доступа

Команды

  • chown www-data:data /var/www/html команда смена владельца папки

  • chmod +x file смена прав, добавить права на запуск

  • chmod 755 file добавить права по маске

Пояснение за битовую маску

Как считаем права , допустим мы хотим чтобы владелец файла имел полные права а те кто принадлежит группе чтение и выполнение, также все остальные пользователи вне группы чтение и выполнение

ниже видно как складывается битовая маска из разрешений, мы можем ее перевести в буквенную или цифровую маску, цифры идут так

  • владелец файла -его права

  • группа пользователей - их права

  • все остальные - их права Файл может быть создан одним пользователь но разрешен для группы.

#rwx   rwx    rwx
#Owner Group Other
#111   101     101
# из двоичной системы приводим к 10ичной
# 7     5      5
#либо оставляем буквенную маску
#rwxr-xr-x

Вот так выглядит папка в терминале (поля слева на право)

  • файловый дескриптор(inode)

  • битовая маска прав на файл

  • владелец файла

  • группа - которой разрешен доступ

  • размер файла в байтах

  • Дата создания или изменения файла, настраивается что именно

  • имя файла

root@ubuntu22-1cpu-2ram:~# ls -li /etc/nginx
total 64
1043225 drwxr-xr-x 2 root root 4096 Feb  9 14:09 conf.d
1043226 -rw-r--r-- 1 root root 1125 May 30  2023 fastcgi.conf
1043227 -rw-r--r-- 1 root root 1055 May 30  2023 fastcgi_params
1043228 -rw-r--r-- 1 root root 2837 May 30  2023 koi-utf
1043229 -rw-r--r-- 1 root root 2223 May 30  2023 koi-win
1043230 -rw-r--r-- 1 root root 3957 May 30  2023 mime.types
1043231 drwxr-xr-x 2 root root 4096 Feb  9 14:09 modules-available
1043232 drwxr-xr-x 2 root root 4096 Mar  3 09:47 modules-enabled
1043233 -rw-r--r-- 1 root root 1447 May 30  2023 nginx.conf
1043234 -rw-r--r-- 1 root root  180 May 30  2023 proxy_params
1043235 -rw-r--r-- 1 root root  636 May 30  2023 scgi_params
1043236 drwxr-xr-x 2 root root 4096 Mar  3 09:47 sites-available
1043238 drwxr-xr-x 2 root root 4096 Mar  3 09:47 sites-enabled
1043239 drwxr-xr-x 2 root root 4096 Mar  3 09:47 snippets
1043242 -rw-r--r-- 1 root root  664 May 30  2023 uwsgi_params
1043243 -rw-r--r-- 1 root root 3071 May 30  2023 win-utf

ПРАКТИКА:

Задание 1.1: Исследование сервера

# Подключитесь к серверу по SSH (данные я выдал отдельно)

# 1. Где я?
pwd

# 2. Кто я?
whoami

# 3. Что за система?
cat /etc/os-release

# 4. Сколько памяти?
free -h
)
# 5. Сколько места на дисках?
df -h

# 6. Какой процессор?
lscpu

Задание 1.2: Путешествие по файловой системе

# Зайдите в каждую из папок, посмотрите, что там:

cd /
ls -la

cd /etc
ls -la | head -20

cd /var
ls -la

cd /var/log
ls -la

cd /tmp
ls -la

cd /home
ls -la

Задание 1.3: Найдите ответы на вопросы:

  1. Какая версия ядра Linux?

  2. Сколько времени работает сервер?

  3. Кто ещё есть в системе (кроме вас)?

  4. Какие сетевые интерфейсы есть?

Подсказки: используйте uname -a, uptime, cat /etc/passwd, ip a

ПРОВЕРКА СЕБЯ (чек-лист):

  • [ ] Я могу подключиться к серверу по SSH

  • [ ] Я знаю, в какой папке нахожусь после подключения

  • [ ] Я могу посмотреть список файлов в папке

  • [ ] Я могу отличить файл от папки в выводе ls -l

  • [ ] Я знаю, где хранятся логи

  • [ ] Я знаю, где хранятся конфиги

  • [ ] Я могу определить версию ОС

  • [ ] Я могу посмотреть свободную память и место на диске

ЗАДАНИЕ НА НЕДЕЛЮ (сдать до следующего «занятия»):

Создайте первый артефакт — файл week1-report.md со следующим содержимым:

# Отчёт по неделе 1

## Выполненные команды
(вставьте историю команд: `history`)

## Структура файловой системы моего сервера
(нарисуйте текстом или схемой, что где лежит)

```
/
├── etc/ - здесь лежат конфиги
│   └── ...
├── var/
│   └── log/ - здесь логи
└── ...
```

## Найденные ответы
1. Версия ядра: ...
2. Время работы: ...
3. Пользователи: ...
4. Сетевые интерфейсы: ...

## Что было непонятно / сложно
(честно пишите, с чем столкнулись)

## Что нового узнал
(3-5 пунктов)

Критерии приёмки: Файл прислан в Telegram, всё заполнено, вопросы есть (или написано «всё понятно»).