День открытых дверей по курсу «Administrator Linux. Professional» 23.07.2018 в 20:00 | OTUS >
+7 499 938-92-02
Проходил 23 июля 2018 года в 20:00

День открытых дверей
Администратор Linux

День открытых дверей онлайн

Хотите узнать, почему OTUS – больше, чем просто образовательный портал?
Как OTUS дает возможность стать частью сообщества профессионалов и сделать новый шаг по карьерной лестнице?
Почему учиться – не обязанность, а удовольствие и почему тесное сплетение теории и практики в обучении дает эффект синергии?
Приходите к нам на День Открытых Дверей. Формат проведения – онлайн – подключиться можно из любой точки мира!

Запись

О курсе

Administrator Linux. Professional
141 000 ₽ 126 900 ₽
6 месяцев
Начало 29 августа

Для кого этот курс?

  • Системных администраторов Linux
  • DevOps-инженеров и SRE
  • Fullstack и Backend-разработчиков
  • Системных администраторов Windows
  • Сетевых инженеров
  • Инженеров по нагрузочному тестированию
  • Специалистов по ИБ

Необходимые знания

  • Понимание основ сетей: адресация и статический роутинг в сетях на базе IPv4.
  • Опыт установки системы Linux и настройки своего рабочего места (проходить курс лучше всего на своей машине с ОС …
Программа курса
Модуль 1
Архитектура Linux
Модуль 2
Управление, безопасность и мониторинг
Модуль 3
Linux и сеть
Модуль 4
Сервисы Linux
Модуль 5
Проектная работа
Архитектура Linux
В этом модуле будут разбираться базовые компоненты OS Linux. Будем разбирать, что такое ядро и его модули, загрузчик, процессы, дисковая и файловая системы, inodes и daemons.
Научимся устанавливать и обновлять и восстанавливать OS, управлять загрузкой, создавать и изменять RAID массивы, управлять логическими томами.

Проект на весь модуль: делаем свою загрузочную флешку readonly, со своим ядром
С чего начинается Linux
познакомиться с программой и группой;
узнать, как работает ядро, как программы взаимодействуют с ядром.
29 августа, 20:00 — 21:30
Лектор: Андрей Буранов
Домашние задания: 1
ДЗ
Обновление ядра системы. 🎯**Задание**
1) Запустите ВМ c Ubuntu.
2) Обновите ядро ОС на новейшую стабильную версию из mainline-репозитория.
3) Оформите отчет в README-файле в GitHub-репозитории.


⭐️**Задание со звездочкой**

Собрать ядро самостоятельно из исходных кодов.



➡️ **Для выполнение домашнего задания вы можете использовать**
[**методичку**](https://docs.google.com/document/d/1DU_o1YBxfq7q2EByL36r5Bt2a1mI2xQm/edit?usp=sharing&ouid=109754209530643311824&rtpof=true&sd=true)



🗂 **Формат сдачи**

файл README.md со следующей информацией:
- название выполняемого задания;
- текст задания;
- основные команды (с сокращенным выводом, если это требуется, иначе без вывода);
- скриншоты результата, если их нельзя/неудобно показать в виде команд и их вывода.
- заметки, если считаете, что имеет смысл их зафиксировать в репозитории.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Дисковая подсистема
перечислить виды RAID-массивов и их отличия;
получить информацию о дисковой подсистеме на любом сервере с ОС Linux;
собрать программный рейд и восстановить его после сбоя.
5 сентября, 20:00 — 21:30
Лектор: Андрей Буранов
Домашние задания: 1
ДЗ
Работа с mdadm.


🎯 **Задание**

• Добавьте в виртуальную машину несколько дисков

• Соберите RAID-0/1/5/10 на выбор

• Сломайте и почините RAID

• Создайте GPT таблицу, пять разделов и смонтируйте их в системе.


➡️ Для выполнения домашнего задания вы моежете использовать методичку [Работа с mdadm](https://docs.google.com/document/d/1jTq4l4UD1CF9C_VFqGXZYunXA2RUap70CfKm_6OXZBU/edit?usp=sharing)


🗂 **Формат сдачи**
- скрипт для создания рейда,
- отчет по командам для починки RAID и созданию разделов.



Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Файловые системы и LVM - 1
облегчить себе жизнь управления файловыми системами;
архитектура файловой системы Linux: суперблок, блоки, inodes, журналы;
разобраться в многообразии файловых систем.
8 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с LVM. **🎯 Задание**



1. Настроите LVM в Ubuntu 24.04 Server

2. Создайте Physical Volume, Volume Group и Logical Volume

3. Отформатируйте и смонтируйте файловую систему

4. Расширьте файловую систему за счёт нового диска

5. Выполните resize

6. Проверьте корректность работы


➡️ Для выполнение домашнего задания вы можете использовать методичку [Работа с LVM](https://docs.google.com/document/d/166o62JIK0hTvlZBiPr5Ziii5x3smVVVI/edit?usp=sharing&ouid=109754209530643311824&rtpof=true&sd=true)


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Файловые системы и LVM - 2
управлять дисковым пространством с помощью различных инструментов;
12 сентября, 20:00 — 21:30
ZFS
установить и настроить ZFS;
понимать преимущества и недостатки использования для конкретных задач .
15 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Практические навыки работы с ZFS.
🎯 Что нужно сделать?
1. Определить алгоритм с наилучшим сжатием:
* определить, какие алгоритмы сжатия поддерживает zfs (gzip, zle, lzjb, lz4);
* создать 4 файловых системы, на каждой применить свой алгоритм сжатия;
* для сжатия использовать либо текстовый файл, либо группу файлов.
2. Определить настройки пула.
С помощью команды zfs import собрать pool ZFS.
Командами zfs определить настройки:
- размер хранилища;
- тип pool;
- значение recordsize;
- какое сжатие используется;
- какая контрольная сумма используется.
3. Работа со снапшотами:
* скопировать файл из удаленной директории;
* восстановить файл локально. zfs receive;
* найти зашифрованное сообщение в файле secret_message.

➡️ Для выполнения домашнего задания вы можете использовать методичку

[Практические навыки работы с ZFS](https://docs.google.com/document/d/1xursgUsGDVTLh4B_r0XGw_flPzd5lSJ0nfMFL-HQmFs/edit?usp=sharing)


🗂 **Формат сдачи**

1. ссылка на репозиторий GitHub
2. Vagrantfile с Bash-скриптом, который будет конфигурировать сервер.
3. Документация по каждому заданию:
README.md со следующей информацией:
- название выполняемого задания;
- текст задания;
- описание команд и их вывод;
- особенности проектирования и реализации решения;
- заметки, если считаете, что имеет смысл их зафиксировать в репозитории.



Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
NFS, FUSE
монтировать файловые системы с помощью FUSE;
настраивать и использовать NFS;
19 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с NFS . **🎯 Что нужно сделать?**

- запустить 2 виртуальных машины (сервер NFS и клиента);
- на сервере NFS должна быть подготовлена и экспортирована директория;
- в экспортированной директории должна быть поддиректория с именем upload с правами на запись в неё;
- экспортированная директория должна автоматически монтироваться на клиенте при старте виртуальной машины (systemd, autofs или fstab — любым способом);
- монтирование и работа NFS на клиенте должна быть организована с использованием NFSv3.



⭐️ **Задание со звездочкой***

настроить аутентификацию через KERBEROS с использованием NFSv4

➡️ Для выполнения домашнего задания вы можете использовать методичку

[Работа с NFS ](https://docs.google.com/document/d/1Xz7dCWSzaM8Q0VzBt78K3emh7zlNX3C-Q27B6UuVexI/edit?usp=sharing)


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Управление пакетами. Дистрибьюция софта
устанавливать софт в Linux;
собирать пакеты (deb и rpm) из исходников;
репозитории;
работа с dnf, yum, rpm, apt и dpkg;
22 сентября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Сборка RPM-пакета и создание репозитория.
🎯 **Что нужно сделать?**
- создать свой RPM (можно взять свое приложение, либо собрать к примеру Apache с определенными опциями);
- cоздать свой репозиторий и разместить там ранее собранный RPM;
- реализовать это все либо в Vagrant, либо развернуть у себя через Nginx и дать ссылку на репозиторий.


➡️ Для выполнения домашнего задания вы можете использовать методичку
[Практика управления пакетами](https://docs.google.com/document/d/1yeYpcY39RxBGVIjBwTE12Y_VdjvsqCV3OFie2tvAtsg/edit?usp=sharing)


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Загрузка системы
объяснить как происходит загрузка системы, в чем разница между BIOS/UEFI;
настраивать GRUB2;
управлять initrd с помощью dracut;
работать с udev;
восстанавливать сломанный загрузчик.
26 сентября, 20:00 — 21:30
Лектор: Николай Лавлинский
Домашние задания: 1
ДЗ
Работа с загрузчиком. 🎯**Что нужно сделать?**

1. Включить отображение меню Grub.
2. Попасть в систему без пароля несколькими способами.
3. Установить систему с LVM, после чего переименовать VG.


➡️ Для выполнения домашнего задания вы можете использовать методичку

[Работа с загрузчиком](https://docs.google.com/document/d/1fRE_BFi-sFuLUUXKC8WHeGrFtPDXlTWznFgj3Z-xBM8/edit?usp=sharing)

🗂 **Формат сдачи**

В чат ДЗ отправьте ссылку на ваш git-репозиторий. В репозитории описать действия, описать разницу между методами получения шелла в процессе загрузки. Где получится - используем script, где не получается - словами или копипастой описываем действия. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Инициализация системы. Systemd
понимать различие систем инициализации;
использовать основные утилиты systemd;
изучить состав и синтаксис systemd unit;
29 сентября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Systemd - создание unit-файла. Для выполнения домашнего задания используйте методичку

[Systemd ](https://docs.google.com/document/d/1wXZLFDG7NSsrmeSmL0qqec6H9CFAYIolDfiFbDa2WBU/edit?usp=sharing)


Выполнить следующие задания и подготовить развёртывание результата выполнения с использованием Vagrant и Vagrant shell provisioner (или Ansible, на Ваше усмотрение):
1. Написать service, который будет раз в 30 секунд мониторить лог на предмет наличия ключевого слова (файл лога и ключевое слово должны задаваться в /etc/default).
2. Установить spawn-fcgi и создать unit-файл (spawn-fcgi.sevice) с помощью переделки init-скрипта (https://gist.github.com/cea2k/1318020).
3. Доработать unit-файл Nginx (nginx.service) для запуска нескольких инстансов сервера с разными конфигурационными файлами одновременно.


В чат ДЗ отправьте ссылку на ваш git-репозиторий . Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Bash
писать скрипты на языка bash;
3 октября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Пишем скрипт. 🎯**Что нужно сделать?**

Написать скрипт для CRON, который раз в час формирует отчёт и отправляет его на заданную почту.


Отчёт должен содержать:

- IP-адреса с наибольшим числом запросов (с момента последнего запуска);
- Запрашиваемые URL с наибольшим числом запросов (с момента последнего запуска);
- Ошибки веб-сервера/приложения (с момента последнего запуска);
- HTTP-коды ответов с указанием их количества (с момента последнего запуска).


Скрипт должен предотвращать одновременный запуск нескольких копий, до его завершения.

В письме должен быть прописан обрабатываемый временной диапазон.


В чат ДЗ отправьте ссылку на ваш git-репозиторий . Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!"
grep, sed, awk и другие
работать с многочисленными консольными утилитами в Linux, такими как grep, find, set, cut, tr, vim и так далее;
писать скрипты на awk.
6 октября, 20:00 — 21:30
Лектор: Андрей Буранов
Управление процессами
знать, что такое процесс, его атрибуты, жизненный цикл процесса;
понимать, чем потоки отличаются от процессов;
мониторить процессы, в каком они состоянии, понимать чем они сейчас заняты;
использовать команды ps/top, подсистему /proc, а также команды gdb/strace/ltrace;
менять приоритеты с мощью команд nice, ionice;
посылать различные сигналы процессам.
10 октября, 20:00 — 21:30
Лектор: Андрей Буранов
Домашние задания: 1
ДЗ
Работа с процессами. Что нужно сделать?

Задания на выбор:

1) написать свою реализацию ps ax используя анализ /proc
- Результат ДЗ - рабочий скрипт который можно запустить

2) написать свою реализацию lsof
- Результат ДЗ - рабочий скрипт который можно запустить

3) дописать обработчики сигналов в прилагаемом скрипте, оттестировать, приложить сам скрипт, инструкции по использованию
- Результат ДЗ - рабочий скрипт который можно запустить + инструкция по использованию и лог консоли

4) реализовать 2 конкурирующих процесса по IO. пробовать запустить с разными ionice
- Результат ДЗ - скрипт запускающий 2 процесса с разными ionice, замеряющий время выполнения и лог консоли

5) реализовать 2 конкурирующих процесса по CPU. пробовать запустить с разными nice
- Результат ДЗ - скрипт запускающий 2 процесса с разными nice и замеряющий время выполнения и лог консоли


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Работа с памятью
разобраться, как работают механизмы управления памятью в Linux;
находить, какие процессы занимают память;
разобраться в статистической информации по памяти.
13 октября, 20:00 — 21:30
Лектор: Андрей Буранов
Механизмы изоляции и аккаунтинга Linux (namespaces и cgroups)
использовать технологий контейнеризации осознанно;
изолировать процессы друг от друга встроенными в
дистрибутив средствами;
17 октября, 20:00 — 21:30
Лектор: Викентий Лапа
Управление, безопасность и мониторинг
В этом модуле мы рассмотрим задачи и рабочие инструменты для управления системой, обеспечения безопасности, контроля прав и доступов. Также мы рассмотрим инструменты для мониторинга, логирования и анализа проблем производительности и сбоев. Будем учится решать проблемы и производить ретроспективный анализ.
SELinux - когда все запрещено
объяснить, что такое системы принудительного контроля доступа;
объяснить, как работает система SELinux;
работать с системой SELinux;
20 октября, 20:00 — 21:30
Лектор: Николай Лавлинский
Домашние задания: 1
ДЗ
Практика с SELinux.
🎯**Задание**
1. Запустить nginx на нестандартном порту 3-мя разными способами:
- переключатели setsebool;
- добавление нестандартного порта в имеющийся тип;
- формирование и установка модуля SELinux.


🗂 **Формат сдачи**

README с описанием каждого решения (скриншоты и демонстрация приветствуются).


2. Обеспечить работоспособность приложения при включенном selinux.
- развернуть приложенный стенд https://github.com/mbfx/otus-linux-adm/tree/master/selinux_dns_problems;
- выяснить причину неработоспособности механизма обновления зоны (см. README);
- предложить решение (или решения) для данной проблемы;
- выбрать одно из решений для реализации, предварительно обосновав выбор;
- реализовать выбранное решение и продемонстрировать его работоспособность.

🗂 **Формат сдачи**
- README с анализом причины неработоспособности, возможными способами решения и обоснованием выбора одного из них;
- исправленный стенд или демонстрация работоспособной системы скриншотами и описанием.


➡️ Для выполнения домашнего задания вы можете использовать [методичку](https://docs.google.com/document/d/1QwyccIn8jijBKdaoNR4DCtTULEqb5MKK/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Автоматизация администрирования. Ansible-1
автоматизировать рутинные задачи администрирования;
изучить Ansible — инвентори, модули, плейбуки, роли, переменные;
понимать разницу с другими инструментами — Chef/Puppet/Salt;
24 октября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Первые шаги с Ansible.
🎯 **Что нужно сделать?**

Подготовить стенд на Vagrant как минимум с одним сервером. На этом сервере, используя Ansible, необходимо развернуть nginx со следующими условиями:
- необходимо использовать модуль yum/apt;
- конфигурационные файлы должны быть взяты из шаблона jinja2 с переменными;
- после установки nginx должен быть в режиме enabled в systemd;
- должен быть использован notify для старта nginx после установки;
- сайт должен слушать на нестандартном порту — 8080, для этого использовать переменные в Ansible.


➡️ Для выполнения домашнего задания вы можете использовать [ методичку](https://docs.google.com/document/d/1WXPY1ZBfRGjc_Dux_-oLbSjzQEZj5nDsADkrtmt6rIo/edit?usp=sharing)
[Ссылка на Vаgrantfile ](https://drive.google.com/file/d/17MEtg20TFSjKil6ih7PvPez7jmCvo6fb/view?usp=share_link)


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Автоматизация администрирования. Ansible-2
писать ansible роли;
использовать циклы и массивы;
использовать ansible-vault.
27 октября, 20:00 — 21:30
Лектор: Викентий Лапа
Vagrant
сделать тестовый стенд на своем локальном компьютере и знать, какие компоненты для этого понадобятся;
понимать разницу между контейнеризацией и виртуализацией;
рассмотреть системы виртуализации и контейнеризации;
изучить инструмент автоматизации Vagrant, его особенности и принципы работы;
31 октября, 20:00 — 21:30
Лектор: Григорий Пахомов
Домашние задания: 1
ДЗ
Обновить ядро в базовой системе. 🎯**Задание**
1. Запустите ВМ с помощью Vagrant.
2. Обновите ядро ОС из репозитория ELRepo.
3. Оформите отчет в README-файле в GitHub-репозитории.


⭐️**Задание со звездочкой**

- Ядро собрано из исходников
- В образе нормально работают VirtualBox Shared Folders


Для этого вам потребуется сборка ядра и модулей из исходников.



➡️ Для выполнения домашнего задания вы можете использовать [методичку](https://docs.google.com/document/d/12sC884LuLGST3-tZYQBDPvn6AH8AGJCK/edit?usp=share_link&ouid=107126378526912727172&rtpof=true&sd=true)

Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Docker: основы работы с контейнеризацией
изучить основные понятия контейнеризации;
написать Dockerfile;
запустить контейнер;
запустить docker-compose;
10 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Docker.
**🎯 Задание**
- Установите Docker на хост машину [https://docs.docker.com/engine/install/ubuntu/](https://docs.docker.com/engine/install/ubuntu/)
- Установите Docker Compose - как плагин, или как отдельное приложение
- Создайте свой кастомный образ nginx на базе alpine. После запуска nginx должен отдавать кастомную страницу (достаточно изменить дефолтную страницу nginx)
- Определите разницу между контейнером и образом
- Вывод опишите в домашнем задании.
- Ответьте на вопрос: Можно ли в контейнере собрать ядро?


🗂**Формат сдачи**

Собранный образ необходимо запушить в docker hub и дать ссылку на ваш репозиторий.


➡️ Для выполнения домашнего задания вы можете использовать [методичку](https://docs.google.com/document/d/1C0Fh88WwLJItBTrriBL-DXdO4apBi2zQeqm0PHYL4Sc/edit?usp=sharing)


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Docker: Volumes and Networks
изучить работу docker-registry;
рассмотреть возможности управления Docker и Docker-compose;
14 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Мониторинг производительности
понимать методологии поиска проблемы производительности;
ориентироваться в утилитах для поиска проблем;
определять проблему, опираясь на факты;
17 ноября, 20:00 — 21:30
Лектор: Николай Лавлинский
Prometheus
устанавливать Prometheus;
ориентироваться в базовой конфигурации;
создавать дашборды;
21 ноября, 20:00 — 21:30
Лектор: Иван Федоров
Домашние задания: 1
ДЗ
Настройка мониторинга. 🎯 **Что нужно сделать?**

Настроить дашборд с 4-мя графиками
- память;
- процессор;
- диск;
- сеть.

Настроить на одной из систем:
- zabbix (использовать screen (комплексный экран);
- prometheus - grafana.


🗂 **Формат сдачи**

Скриншот дашборда (в название дашборда - ваше имя).

Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Zabbix
устанавливать Zabbix;
ориентироваться в базовой конфигурации;
создавать дашборды;
24 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Пользователи и группы. Авторизация и аутентификация
рассмотреть механизмы авторизации и аутентификации;
объяснить какие бывают права у пользовталей;
управлять правами с помощью sudo, umask. sgid, suid и более сложными инструментами как PAM и ACL, PolicyKit.
28 ноября, 20:00 — 21:30
Лектор: Николай Лавлинский
Домашние задания: 1
ДЗ
PAM. 🎯 **Что нужно сделать?**

Ограничить доступ к системе для всех пользователей, кроме группы администраторов, в выходные дни (суббота и воскресенье), за исключением праздничных дней.


⭐️ **Задание повышенной сложности**

Предоставить определённому пользователю доступ к Docker и право перезапускать Docker-сервис.


➡️ Для выполнения домашнего задания вы можете использовать [методичку](https://docs.google.com/document/d/1lOFe3rv0QcnvOTNfQm0OMHbNQ0Cet6AR/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


В чат ДЗ отправьте ссылку на ваш git-репозиторий . Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Основы сбора и хранения логов
понять, зачем нужны логи и как их собирать;
освоить принципы логирования с помощью rsyslog;
понять возможности logrotate для задач ротации логов;
научиться работать с journald и auditd;
1 декабря, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Настраиваем центральный сервер для сбора логов. 🎯 **Что нужно сделать?**
1. Поднимаем две машины — web и log.
2. На web поднимаем nginx.
3. Настраиваем центральный лог-сервер на любой системе по выбору:
- journald;
- rsyslog;
- elk.
4. Настраиваем аудит, который будет отслеживать изменения конфигураций nginx.

- Все критичные логи с web должны собираться и локально и удаленно.
- Все логи с nginx должны уходить на удаленный сервер (локально только критичные).
- Логи аудита должны также уходить на удаленную систему.


➡️ Для выполнения домашнего задания вы можете использовать [методичку](https://docs.google.com/document/d/16UBAMu4LYqvRv6PmCeHcmOampMrIZavH/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


⭐️ **Задание повышенной сложности**

дополнительно развернуть машину elk*
- настроить 2 центральных лог системы elk и какую-либо еще;
- в elk должны уходить только логи nginx;
- во вторую систему все остальное.


🗂 Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий . Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


🙂 Удачи при выполнении!
Сбор и анализ логов: ELK
установить и настроить стек ELK;
понять основные принципы работы компонентов стека;
5 декабря, 20:00 — 21:30
Резервное копирование
использовать политики и методики резерного копирования;
работать с инструментами rsync, tar, dd и bacula.
8 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настраиваем бэкапы. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1L0VtVCn2tXmC0Pirlfhnr6rEpOANbP-C/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?

Настроить стенд Vagrant с двумя виртуальными машинами: backup_server и client.


Настроить удаленный бекап каталога /etc c сервера client при помощи borgbackup. Резервные копии должны соответствовать следующим критериям:

- директория для резервных копий /var/backup. Это должна быть отдельная точка монтирования. В данном случае для демонстрации размер не принципиален, достаточно будет и 2GB;
- репозиторий дле резервных копий должен быть зашифрован ключом или паролем - на ваше усмотрение;
- имя бекапа должно содержать информацию о времени снятия бекапа;
- глубина бекапа должна быть год, хранить можно по последней копии на конец месяца, кроме последних трех.
Последние три месяца должны содержать копии на каждый день. Т.е. должна быть правильно настроена политика удаления старых бэкапов;
- резервная копия снимается каждые 5 минут. Такой частый запуск в целях демонстрации;
- написан скрипт для снятия резервных копий. Скрипт запускается из соответствующей Cron джобы, либо systemd timer-а - на ваше усмотрение;
- настроено логирование процесса бекапа. Для упрощения можно весь вывод перенаправлять в logger с соответствующим тегом. Если настроите не в syslog, то обязательна ротация логов.


Запустите стенд на 30 минут.

Убедитесь что резервные копии снимаются.

Остановите бекап, удалите (или переместите) директорию /etc и восстановите ее из бекапа.

Для сдачи домашнего задания ожидаем настроенные стенд, логи процесса бэкапа и описание процесса восстановления.

Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Linux и сеть
Настраиваем и работаем с сетью в Linux. От хоста до маршрутизатора и брандмауэра.
Архитектура сетей
понимать как строятся сети передачи данных;
ориентироваться в сетевых протоколах;
осуществлять базовую настройку сети;
12 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Разворачиваем сетевую лабораторию. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1rQH5M2MYclBkvmv3SO4wl4F_IErcojl86hD10ric6Lk/edit?usp=sharing)


Что нужно сделать?

**otus-linux**
Vagrantfile - для стенда урока 9 - Network


**Дано**

https://github.com/erlong15/otus-linux/tree/network
(ветка network)

Vagrantfile с начальным построением сети
- inetRouter
- centralRouter
- centralServer

тестировалось на virtualbox

**
Планируемая архитектура**

построить следующую архитектуру

Сеть office1
- 192.168.2.0/26 - dev
- 192.168.2.64/26 - test servers
- 192.168.2.128/26 - managers
- 192.168.2.192/26 - office hardware

Сеть office2
- 192.168.1.0/25 - dev
- 192.168.1.128/26 - test servers
- 192.168.1.192/26 - office hardware


Сеть central
- 192.168.0.0/28 - directors
- 192.168.0.32/28 - office hardware
- 192.168.0.64/26 - wifi

```
Office1 ---\
-----> Central --IRouter --> internet
Office2----/
```

Итого должны получится следующие сервера
- inetRouter
- centralRouter
- office1Router
- office2Router
- centralServer
- office1Server
- office2Server


**Теоретическая часть**
- Найти свободные подсети
- Посчитать сколько узлов в каждой подсети, включая свободные
- Указать broadcast адрес для каждой подсети
- проверить нет ли ошибок при разбиении

**
Практическая часть**
- Соединить офисы в сеть согласно схеме и настроить роутинг
- Все сервера и роутеры должны ходить в инет черз inetRouter
- Все сервера должны видеть друг друга
- у всех новых серверов отключить дефолт на нат (eth0), который вагрант поднимает для связи
- при нехватке сетевых интервейсов добавить по несколько адресов на интерфейс


Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
DHCP, PXE
понимать принцип работы спецификации PXE;
знать, какую роль в ней играют протоколы DHCP, TFTP;
рассмотреть, как происходит загрузка ОС по сети и как это используется для сетевой установки.
15 декабря, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Настройка PXE сервера для автоматической установки. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1f5I8vbWAk8ah9IFpAQWN3dcWDHMqXzGb/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?
1. Настроить загрузку по сети дистрибутива Ubuntu 24
2. Установка должна проходить из HTTP-репозитория.
3. Настроить автоматическую установку c помощью файла user-data
4. Задания со звёздочкой*
Настроить автоматическую загрузку по сети дистрибутива Ubuntu 24 c использованием UEFI

Задания со звёздочкой выполняются по желанию
.


Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Фильтрация трафика - iptables
понимать путь прохождения пакетов;
настраивать базовые правила фильтрации;
настраивать наборы правил через ipset;
19 декабря, 20:00 — 21:30
Лектор: Николай Лавлинский
Домашние задания: 1
ДЗ
Сценарии iptables. Что нужно сделать?
1) реализовать knocking port
- centralRouter может попасть на ssh inetrRouter через knock скрипт
пример в материалах.
2) добавить inetRouter2, который виден(маршрутизируется (host-only тип сети для виртуалки)) с хоста или форвардится порт через локалхост.
3) запустить nginx на centralServer.
4) пробросить 80й порт на inetRouter2 8080.
5) дефолт в инет оставить через inetRouter.


Формат сдачи ДЗ - vagrant + ansible


Реализовать проход на 80й порт без маскарадинга*


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Фильтрация трафика - firewalld
работата с утилитой и сервисом firewalld;
настраивать шлюз средствами iptables;
22 декабря, 20:00 — 21:30
Лектор: Николай Лавлинский
Фильтрация трафика - nftables
изучить настройку сетевого фильтра nftables;
научиться использовать утилиту nft и сохранять правила;
26 декабря, 20:00 — 21:30
Лектор: Николай Лавлинский
Статическая и динамическая маршрутизация, OSPF
отличать unicast, broadcast и multicast;
понять принцип работы протокола динамической маршрутизации OSPF;
настроить роутинг на хосте с помощью FRR;
29 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
OSPF. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1c3p-2PQl-73G8uKJaqmyCaw_CtRQipAt/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?
1. Поднять три виртуалки
2. Объединить их разными vlan
- поднять OSPF между машинами на базе Quagga;
- изобразить ассиметричный роутинг;
- сделать один из линков "дорогим", но что бы при этом роутинг был симметричным.


Формат сдачи: Vagrantfile + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий . Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
BGP
понять, как работает маршрутизация в Интернет;
освоить принципы работы протокола BGP;
настроить маршрутизацию и фильтрацию маршрутов средствами
протокола BGP на FRR;
12 января, 20:00 — 21:30
Лектор: Ольга Яновская
Мосты, туннели и VPN
понимать принцип работы мостов и туннелей;
настраивать мосты и туннели в Linux;
поднять свой VPN-сервер;
16 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
VPN. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1tJjZQzVccj0UoRlVLa-E-uxQtQDOCuW_sAk2nluiFo4/edit?usp=sharing)


Что нужно сделать?

1)Настроить VPN между двумя ВМ в tun/tap режимах, замерить скорость в туннелях, сделать вывод об отличающихся показателях

2)Поднять RAS на базе OpenVPN с клиентскими сертификатами, подключиться с локальной машины на ВМ

Задание со звездочкой

3)Самостоятельно изучить и настроить ocserv, подключиться с хоста к ВМ
Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
DNS - настройка и обслуживание
понять, как работает DNS;
использовать утилиты для диагностики DNS;
управлять DNS-зонами;
19 января, 20:00 — 21:30
Лектор: Григорий Пахомов
Домашние задания: 1
ДЗ
Настраиваем split-dns. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/13kjusaFEzv6Ip_9soeDj2Ry-6WK8IDX7/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?
- взять стенд https://github.com/erlong15/vagrant-bind
- добавить еще один сервер client2
- завести в зоне dns.lab
- имена
- web1 - смотрит на клиент1
- web2 смотрит на клиент2

- завести еще одну зону newdns.lab
- завести в ней запись
- www - смотрит на обоих клиентов

- настроить split-dns
- клиент1 - видит обе зоны, но в зоне dns.lab только web1

- клиент2 видит только dns.lab

настроить все без выключения selinux*


Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Сетевые пакеты. VLAN'ы. LACP
узнать, как работает VLAN;
освоить принципы агрегирования каналов;
настроить VLAN и bonding/teaming в Linux;
23 января, 20:00 — 21:30
Лектор: Ольга Яновская
Домашние задания: 1
ДЗ
Строим бонды и вланы. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1BO5cUT0u4ABzEOjogeHyCaNiYh76Bh73/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?
в Office1 в тестовой подсети появляется сервера с доп интерфейсами и адресами
в internal сети testLAN:
- testClient1 - 10.10.10.254
- testClient2 - 10.10.10.254
- testServer1- 10.10.10.1
- testServer2- 10.10.10.1

Равести вланами:
testClient1 <-> testServer1
testClient2 <-> testServer2

Между centralRouter и inetRouter "пробросить" 2 линка (общая inernal сеть) и объединить их в бонд, проверить работу c отключением интерфейсов

<br/>Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Slack.


Удачи при выполнении!
LDAP. Централизованная авторизация и аутентификация
понять как работает LDAP и для чего он нужен;
устанавливать FreeIPA;
создавать пользователей централизованно с помощью “взрослых” решений;
26 января, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
LDAP. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1HoZBcvitZ4A9t-y6sbLEbzKmf4CWvb39/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?
1) Установить FreeIPA
2) Написать Ansible-playbook для конфигурации клиента

Дополнительное задание
3)* Настроить аутентификацию по SSH-ключам
4)** Firewall должен быть включен на сервере и на клиенте


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
IPv6
разобрать принципы работы протокола IPv6;
изучить методы взаимодействия узлов в IPv6-сети;
понять структуру и типы IPv6-адресов;
освоить способы получения адреса IPv6;
рассмотреть особенности маршрутизации и настройки firewall для IPv6;
30 января, 20:00 — 21:30
Лектор: Ольга Яновская
Сервисы Linux
Рассмотрим настройку базовых сервисов на ОС Линукс, таких как базы данных, почта и веб сервер.
Веб-протоколы
различать особенности HTTP-версий;
настраивать защищённые HTTPS-соединения;
управлять TLS-сертификатами;
2 февраля, 20:00 — 21:30
Лектор: Николай Лавлинский
Nginx
освоить базовые настройки Nginx;
понимать общую схему обработки запроса;
оптимизировать доставку контента;
6 февраля, 20:00 — 21:30
Лектор: Николай Лавлинский
Динамический веб
понимать варианты взаимодействия компонентов веб-приложения;
выбирать эффективную архитектуру;
различать методы обработки соединений;
9 февраля, 20:00 — 21:30
Лектор: Николай Лавлинский
Домашние задания: 1
ДЗ
Развертывание веб приложения. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1Q5Hqwq8dqsdRSDWA_bQKc1GsCx4wxi1c/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?

Варианты стенда:
- nginx + php-fpm (laravel/wordpress) + python (flask/django) + js(react/angular);
- nginx + java (tomcat/jetty/netty) + go + ruby;
- можно свои комбинации.


Реализации на выбор:
- на хостовой системе через конфиги в /etc;
- деплой через docker-compose.


Для усложнения можно попросить проекты у коллег с курсов по разработке


К сдаче принимается:
- vagrant стэнд с проброшенными на локалхост портами
- каждый порт на свой сайт
- через нжинкс


Формат сдачи ДЗ - vagrant + ansible


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
MySQL
понимать архитектуру MySQL;
администрировать MySQL;
проводить мониторинг и оптимизации;
13 февраля, 20:00 — 21:30
Лектор: Николай Лавлинский
MySQL: Backup + Репликация
выбирать подходящий вариант бэкапа БД;
понимать различие механизмов репликации;
применять возможности репликации на практике;
16 февраля, 20:00 — 21:30
Лектор: Николай Лавлинский
Домашние задания: 1
ДЗ
Репликация mysql. Для выполнения домашнего задания используйте[ методичку](https://drive.google.com/file/d/139irfqsbAxNMjVcStUN49kN7MXAJr_z9/view?usp=share_link)


Что нужно сделать?

В материалах приложены ссылки на вагрант для репликации и дамп базы bet.dmp

Базу развернуть на мастере и настроить так, чтобы реплицировались таблицы:
```

| bookmaker |
| competition |
market |
| odds |
| outcome
```


Настроить GTID репликацию

варианты которые принимаются к сдаче
- рабочий вагрантафайл
- скрины или логи SHOW TABLES
конфиги*
*
пример в логе изменения строки и появления строки на реплике**


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
PostgreSQL
устанавливать PostgreSQL на сервер Linux;
инициализировать БД, создавать пользователей и настраивать права доступа к объектам БД;
ориентироваться в конфигурационных файлах СУБД и менять ее настройки;
20 февраля, 20:00 — 21:30
Лектор: Иван Федоров
Postgres: Backup + Репликация
настраивать репликацию в PostgreSQL;
настраивать резервное копирование в PostgreSQL с помощью Barman;
восстанавливать базу в PostgreSQL из резервной копии;
27 февраля, 20:00 — 21:30
Лектор: Иван Федоров
Домашние задания: 1
ДЗ
Репликация postgres. Для выполнения домашнего задания используйте [методичку](https://docs.google.com/document/d/1EU_KF3x9e2f75sNL4sghDIxib9eMfqex/edit?usp=share_link&ouid=104106368295333385634&rtpof=true&sd=true)


Что нужно сделать?
- настроить hot_standby репликацию с использованием слотов
- настроить правильное резервное копирование


В чат ДЗ отправьте ссылку на ваш git-репозиторий. Обычно мы проверяем ДЗ в течение 48 часов.


Если возникнут вопросы, обращайтесь к студентам, преподавателям и наставникам в канал группы в Telegram.


Удачи при выполнении!
Почта: SMTP, IMAP, POP3
настроить отправку писем через SMTP;
организовать прием писем с использованием POP3/IMAP;
освоить базовую конфигурацию Postfix и Dovecot;
2 марта, 20:00 — 21:30
Лектор: Викентий Лапа
Проектная работа
Создание рабочего проекта
веб проект с развертыванием нескольких виртуальных машин
должен отвечать следующим требованиям
- включен https
- основная инфраструктура в DMZ зоне
- файрвалл на входе
- сбор метрик и настроенный алертинг
- везде включен selinux
- организован централизованный сбор логов
Выбор темы и организация проектной работы
выбрать и обсудить тему проектной работы; спланировать работу над проектом; ознакомиться с регламентом работы над проектом.
6 марта, 20:00 — 21:30
Лектор: Андрей Буранов
Домашние задания: 1
ДЗ
Проект. Создание рабочего проекта

Веб проект с развертыванием нескольких виртуальных машин должен отвечать следующим требованиям:
- включен https;
- основная инфраструктура в DMZ зоне;
- файрвалл на входе;
- сбор метрик и настроенный алертинг;
- везде включен selinux;
- организован централизованный сбор логов;
- организован backup.
Защита проектных работ
защитить проект и получить рекомендации экспертов.
3 апреля, 20:00 — 21:30
Лектор: Андрей Буранов
Подведение итогов курса
узнать, как получить сертификат об окончании курса, как взаимодействовать после окончания курса с OTUS и преподавателями, какие вакансии и позиции есть для выпускников (опционально - в России и за рубежом) и на какие компании стоит обратить внимание.
6 апреля, 20:00 — 21:30
Лектор: Андрей Буранов

Преподаватели

Александр Румянцев
Postgres Professional
Database administrator в компании Postgres Professional. Большой опыт руководства отделами администраторов в Wikimart, Rambler и Ru-Center. В отрасли более 15 лет: из них 10 – в highload и более 5 лет на позиции руководителя
Алексей Цыкунов
Со-основатель и технический директор Hilbert Team
Более 20 лет опыта в проектировании и реализации отказоустойчивых и высоконагруженных информационных систем в таких отраслях как телеком и FinTech

Автор курсов по Linux в Otus.ru

Более 8 лет опыта оптимизации работы продуктовых команд и R&D департаментов с помощью DevOps инструментов и методик (Kubernetes, CI/CD, etc.) и облачных технологий (AWS, GCP, Azure, Yandex.Cloud)
Преподаватель курсов:
Administrator Linux. Professional

F.A.Q.: Наиболее часто задаваемые вопросы:

Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару.
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.