Открытый вебинар «Виртуальная лаборатория на Vagrant» 05.10.2018 в 20:00 | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Team Lead C# Developer. Professional PHP Developer. Professional Web-разработчик на Python PHP Developer. Basic Специализация PHP Developer
-25%
Специализация C#
-24%
Golang Developer. Professional Разработчик на Spring Framework Специализация Python Developer
-25%
iOS Developer. Professional Scala-разработчик Highload Architect Kotlin Backend Developer Microservice Architecture Unity Game Developer. Basic JavaScript Developer. Professional Java Developer. Professional Node.js Developer Специализация Java-разработчик
-25%
NoSQL PostgreSQL Cloud Solution Architecture Специализация Java и Архитектор ПО Symfony Framework Программист С HTML/CSS C++ Developer. Basic
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02
Проходил 5 октября 2018 года в 20:00

Открытый вебинар курса "Администратор Linux"
Виртуальная лаборатория на Vagrant

Открытый вебинар онлайн

Учимся разворачивать виртуальную лабораторию в считанные минуты. Обсуждаем возможности и особенности использования Vagrant и Git. Для полноценного вовлечения рекомендуется установить следующее ПО предпочтительно последних версий:

VirtualBox - https://www.virtualbox.org/wiki/Downloads
Git - https://git-scm.com/downloads
Vagrant - https://www.vagrantup.com/downloads.html
Ansible - https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html

Слушателям также предлагается зарегистрироваться на GitHub - https://github.com

Наличие ПО и регистрация на GitHub необязательны, но позволят участникам самостоятельно выполнять действия, демонстрируемые в ходе вебинара.
Преподаватель
Леонид Альбрехт

Запись

О курсе

Administrator Linux. Professional
85 000 ₽
5 месяцев
Начало 26 октября

Стенды для отработки материалов предоставляются партнером курса AdvancedHosting

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

Проект на весь модуль: делаем свою загрузочную флешку readonly, со своим ядром.
С чего начинается Linux
познакомиться с программой и группой;
объяснить, как работает ядро, как программы взаимодействуют с ядром.
26 октября, 20:00 — 23:00
Лектор: Алексей Цыкунов
Домашние задания: 1
ДЗ
Обновить ядро в базовой системе. В материалах к занятию есть методичка, в которой описана процедура обновления ядра из репозитория.
По данной методичке требуется выполнить необходимые действия.
Полученный в ходе выполнения ДЗ Vagrantfile должен быть залит в ваш git-репозиторий.
Для проверки ДЗ необходимо прислать ссылку на него.

Для выполнения ДЗ со * и ** вам потребуется сборка ядра и модулей из исходников.
Дисковая подсистема
перечислить виды RAID массивов и их отличия;
получить информацию о дисковой подсистеме на любом сервере с ОС Linux;
собрать программный рейд и восстановить его после сбоя.
29 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с mdadm. - добавить в Vagrantfile еще дисков;
- сломать/починить raid;
- собрать R0/R5/R10 на выбор;
- прописать собранный рейд в конф, чтобы рейд собирался при загрузке;
- создать GPT раздел и 5 партиций.

В качестве проверки принимаются - измененный Vagrantfile, скрипт для создания рейда, конф для автосборки рейда при загрузке.

* доп. задание - Vagrantfile, который сразу собирает систему с подключенным рейдом и смонтированными разделами. После перезагрузки стенда разделы должны автоматически примонтироваться.
** перенести работающую систему с одним диском на RAID 1. Даунтайм на загрузку с нового диска предполагается. В качестве проверки принимается вывод команды lsblk до и после и описание хода решения (можно воспользоваться утилитой Script).
Файловые системы и LVM
lVM - облегчить себе жизнь управления файловыми системами;
архитектура файловой системы Linux: суперблок, блоки, inodes, журналы;
разобраться в многообразии файловых систем.
2 ноября, 20:00 — 21:30
Лектор: Евгений Кузин
Домашние задания: 1
ДЗ
Работа с LVM. на имеющемся образе (centos/7 1804.2)
https://gitlab.com/otus_linux/stands-03-lvm

/dev/mapper/VolGroup00-LogVol00 38G 738M 37G 2% /

1. уменьшить том под / до 8G
2. выделить том под /home
3. выделить том под /var (/var - сделать в mirror)
4. для /home - сделать том для снэпшотов
5. прописать монтирование в fstab (попробовать с разными опциями и разными файловыми системами на выбор)
6. Работа со снапшотами:
- сгенерировать файлы в /home/
- снять снэпшот
- удалить часть файлов
- восстановиться со снэпшота

(залоггировать работу можно утилитой script, скриншотами и т.п.)

* на нашей куче дисков попробовать поставить btrfs/zfs:
- с кешем и снэпшотами
- разметить здесь каталог /opt
Файловые системы и LVM
9 ноября, 20:00 — 21:30
ZFS
установить и настроить ZFS;
понимать преимущества и недостатки использования для конкретных задач .
12 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Практические навыки работы с ZFS. 1. Определить алгоритм с наилучшим сжатием.
Зачем: отрабатываем навыки работы с созданием томов и установкой параметров. Находим наилучшее сжатие.
Шаги:
- определить какие алгоритмы сжатия поддерживает zfs (gzip gzip-N, zle lzjb, lz4);
- создать 4 файловых системы на каждой применить свой алгоритм сжатия;
Для сжатия использовать либо текстовый файл либо группу файлов:
- скачать файл “Война и мир” и расположить на файловой системе wget -O War_and_Peace.txt http://www.gutenberg.org/ebooks/2600.txt.utf-8, либо скачать файл ядра распаковать и расположить на файловой системе.

Результат:
- список команд которыми получен результат с их выводами;
- вывод команды из которой видно какой из алгоритмов лучше.


2. Определить настройки pool’a.
Зачем: для переноса дисков между системами используется функция export/import. Отрабатываем навыки работы с файловой системой ZFS.
Шаги:
- загрузить архив с файлами локально.
https://drive.google.com/open?id=1KRBNW33QWqbvbVHa3hLJivOAt60yukkg
Распаковать.
- с помощью команды zfs import собрать pool ZFS;
- командами zfs определить настройки:
- размер хранилища;
- тип pool;
- значение recordsize;
- какое сжатие используется;
- какая контрольная сумма используется.
Результат:
- список команд которыми восстановили pool . Желательно с Output команд;
- файл с описанием настроек settings.

3. Найти сообщение от преподавателей.
Зачем: для бэкапа используются технологии snapshot. Snapshot можно передавать между хостами и восстанавливать с помощью send/receive. Отрабатываем навыки восстановления snapshot и переноса файла.
Шаги:
- скопировать файл из удаленной директории. https://drive.google.com/file/d/1gH8gCL9y7Nd5Ti3IRmplZPF1XjzxeRAG/view?usp=sharing
Файл был получен командой zfs send otus/[email protected] > otus_task2.file
- восстановить файл локально. zfs receive
- найти зашифрованное сообщение в файле secret_message

Результат:
- список шагов которыми восстанавливали;
- зашифрованное сообщение.
NFS, FUSE
монтировать файловые системы с помощью FUSE;
настраивать и использовать NFS.
16 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Vagrant стенд для NFS. NFS:

- vagrant up должен поднимать 2 виртуалки: сервер и клиент;
- на сервер должна быть расшарена директория;
- на клиента она должна автоматически монтироваться при старте (fstab или autofs);
- в шаре должна быть папка upload с правами на запись;
- требования для NFS: NFSv3 по UDP, включенный firewall.

* Настроить аутентификацию через KERBEROS (NFSv4)
Управление пакетами. Дистрибьюция софта
устанавливать софт в Linux;
собирать из исходников;
репозитории, yum и rpm;
dnf;
snap.
19 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Размещаем свой RPM в своем репозитории. - создать свой RPM (можно взять свое приложение, либо собрать к примеру апач с определенными опциями);
- создать свой репо и разместить там свой RPM;
- реализовать это все либо в вагранте, либо развернуть у себя через nginx и дать ссылку на репо.

* реализовать дополнительно пакет через docker
Загрузка системы
объяснить как происходит загрузка системы, в чем разница между BIOS/UEFI;
настраивать GRUB2;
управлять initrd с помощью dracut;
работать с udev;
восстанавливать сломанный загрузчик.
23 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Работа с загрузчиком. 1. Попасть в систему без пароля несколькими способами.
2. Установить систему с LVM, после чего переименовать VG.
3. Добавить модуль в initrd.

4(*). Сконфигурировать систему без отдельного раздела с /boot, а только с LVM
Репозиторий с пропатченым grub: https://yum.rumyantsev.com/centos/7/x86_64/
PV необходимо инициализировать с параметром --bootloaderareasize 1m
Инициализация системы. Systemd.
писать сценарии автозагрузки демонов;
обращаться с systemctl и journalctl.
26 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Systemd. Выполнить следующие задания и подготовить развёртывание результата выполнения с использованием Vagrant и Vagrant shell provisioner (или Ansible, на Ваше усмотрение):
1. Написать service, который будет раз в 30 секунд мониторить лог на предмет наличия ключевого слова (файл лога и ключевое слово должны задаваться в /etc/sysconfig).
2. Из репозитория epel установить spawn-fcgi и переписать init-скрипт на unit-файл (имя service должно называться так же: spawn-fcgi).
3. Дополнить unit-файл httpd (он же apache) возможностью запустить несколько инстансов сервера с разными конфигурационными файлами.

4*. Скачать демо-версию Atlassian Jira и переписать основной скрипт запуска на unit-файл.
Bash
писать скрипты на языка bash.
30 ноября, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Пишем скрипт. Написать скрипт для крона, который раз в час присылает на заданную почту:
- X IP адресов (с наибольшим кол-вом запросов) с указанием кол-ва запросов c момента последнего запуска скрипта;
- Y запрашиваемых адресов (с наибольшим кол-вом запросов) с указанием кол-ва запросов c момента последнего запуска скрипта;
- все ошибки c момента последнего запуска;
- список всех кодов возврата с указанием их кол-ва с момента последнего запуска.

В письме должно быть прописан обрабатываемый временной диапазон и должна быть реализована защита от мультизапуска.
grep, sed, awk и другие
работать с многочисленными консольными утилитами в Linux, такими как grep, find, set, cut, tr, vim и так далее;
писать скрипты на awk.
3 декабря, 20:00 — 21:30
Лектор: Викентий Лапа
Управление процессами
объяснить, что такое процесс, его атрибуты, жизненный цикл процесса;
объяснить, чем потоки отличаются от процессов;
мониторить процессы, в каком они состоянии, понимать чем они сейчас заняты;
изучить команды ps/top, подсистему /proc, а также команды gdb/strace/ltrace;
менять приоритеты с мощью команд nice, ionice;
посылать различные сигналы процессам.
7 декабря, 20:00 — 21:30
Лектор: Евгений Кузин
Домашние задания: 1
ДЗ
работаем с процессами. Задания на выбор:

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

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

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

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

5) реализовать 2 конкурирующих процесса по CPU. пробовать запустить с разными nice
- Результат ДЗ - скрипт запускающий 2 процесса с разными nice и замеряющий время выполнения и лог консоли
Работа с памятью
разобраться, как работают механизмы управления памятью в Linux;
находить какие процессы занимают память;
разобраться в статистической информации по памяти.
10 декабря, 20:00 — 21:30
Механизмы изоляции и аккаунтинга Linux (namespaces и cgroups)
14 декабря, 20:00 — 21:30
Лектор: Викентий Лапа
Управление, безопасность и мониторинг
В этом модуле мы рассмотрим задачи и рабочие инструменты для управления системой, обеспечения безопасности, контроля прав и доступов. Также мы рассмотрим инструменты для мониторинга, логгирования и анализа проблем производительности и сбоев. Будем учится решать проблемы и производить ретроспективный анализ.
Автоматизация администрирования. Ansible-1
автоматизировать рутинные задачи администрирования;
изучить ansible - инвентори, модули, плейбуки, роли, переменные; объяснить разницу с другими инструментами - chef/puppet/salt.
17 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Первые шаги с Ansible. Подготовить стенд на Vagrant как минимум с одним сервером. На этом сервере используя Ansible необходимо развернуть nginx со следующими условиями:
- необходимо использовать модуль yum/apt;
- конфигурационные файлы должны быть взяты из шаблона jinja2 с перемененными;
- после установки nginx должен быть в режиме enabled в systemd;
- должен быть использован notify для старта nginx после установки;
- сайт должен слушать на нестандартном порту - 8080, для этого использовать переменные в Ansible.
Автоматизация администрирования. Ansible-2
писать ansible роли;
использовать циклы и массивы;
использовать ansible-vault.
24 декабря, 20:00 — 21:30
Пользователи и группы. Авторизация и аутентификация
рассмотреть механизмы авторизации и аутентификации;
объяснить какие бывают права у пользовталей;
управлять правами с помощью sudo, umask. sgid, suid и более сложными инструментами как PAM и ACL, PolicyKit.
21 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
PAM. Запретить всем пользователям, кроме группы admin логин в выходные (суббота и воскресенье), без учета праздников

* дать конкретному пользователю права работать с докером
и возможность рестартить докер сервис
SELinux - когда все запрещено
объяснить, что такое системы принудительного контроля доступа;
объяснить, как работает система SELinux;
работать с системой SELinux.
28 декабря, 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 с анализом причины неработоспособности, возможными способами решения и обоснованием выбора одного из них;
- исправленный стенд или демонстрация работоспособной системы скриншотами и описанием.
Docker
писать Dockerfile;
создать docker-compose;
запустить docker swarm.
11 января, 20:00 — 21:30
Лектор: Филипп Игнатенко
Домашние задания: 1
ДЗ
Docker, docker-compose, dockerfile. Описание ДЗ в документе
Docker - 2
14 января, 20:00 — 21:30
Лектор: Филипп Игнатенко
Мониторинг производительности
мониторить занятые ресурсы: CPU, память, диск, сеть;
изучить инструменты ps, top , sar, htop, atop, netstat, ss, vmstat, iostat, iotop, pidstat;
посмотреть, что находится в /proc;
объяснить, что делать с неотзывчивой системой.
18 января, 20:00 — 21:30
Prometheus
познакомиться с Prometheus.
21 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка мониторинга. Настроить дашборд с 4-мя графиками
- память;
- процессор;
- диск;
- сеть.

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

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

В качестве результата прислать скриншот экрана - дашборд должен содержать в названии имя приславшего.
Zabbix
изучить Zabbix.
25 января, 20:00 — 21:30
Лектор: Артем Друзь
Сбор и анализ логов
понять зачем нужны логи и как их собирать;
освоить принципы логирование с помощью rsyslog;
понять возможности logrotate для задач ротации логов;
научиться работать с journald и auditd;
узнать про adrtd и kdump.
28 января, 20:00 — 21:30
Лектор: Павел Викирюк
Домашние задания: 1
ДЗ
Настраиваем центральный сервер для сбора логов. 1. в вагранте поднимаем 2 машины web и log
2. на web поднимаем nginx
3. на log настраиваем центральный лог сервер на любой системе на выбор
- journald;
- rsyslog;
- elk.
4. настраиваем аудит, следящий за изменением конфигов нжинкса

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

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

* развернуть еще машину elk
- таким образом настроить 2 центральных лог системы elk и какую либо еще;
- в elk должны уходить только логи нжинкса;
- во вторую систему все остальное.
Сбор и анализ логов - 2
установить и настроить стек ELK;
понять основные принципы работы компонентов стека.
1 февраля, 20:00 — 21:30
Лектор: Павел Викирюк
Резервное копирование
обсудить политики и методики резерного копирования;
работать с инструментами rsync, tar, dd и bacula.
4 февраля, 20:00 — 21:30
Лектор: Артем Друзь
Домашние задания: 1
ДЗ
Настраиваем бэкапы. Настроить стенд Vagrant с двумя виртуальными машинами: backup_server и client.

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

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

Запустите стенд на 30 минут.
Убедитесь что резервные копии снимаются.
Остановите бекап, удалите (или переместите) директорию /etc и восстановите ее из бекапа.
Для сдачи домашнего задания ожидаем настроенные стенд, логи процесса бэкапа и описание процесса восстановления.
Формат сдачи ДЗ - vagrant + ansible
Linux и сеть
Настраиваем и работаем с сетью в Linux. От хоста до маршрутизатора и брандмауэра.
Архитектура сетей
освоить команды ip/tc/ss/nstat;
вспомнить ifconfig/netstat/route;
заглянуть в /etc/sysconfig/network-scripts;
поснифферить через tcpdump и ngrep.
8 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
разворачиваем сетевую лабораторию.
# 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

DHCP, PXE
настроить запуск серверов с загрузкой ОС по сети.
11 февраля, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
Настройка PXE сервера для автоматической установки. 1. Следуя шагам из документа https://docs.centos.org/en-US/8-docs/advanced-install/assembly_preparing-for-a-network-install установить и настроить загрузку по сети для дистрибутива CentOS8.
В качестве шаблона воспользуйтесь репозиторием https://github.com/nixuser/virtlab/tree/main/centos_pxe.
2. Поменять установку из репозитория NFS на установку из репозитория HTTP.
3. Настройить автоматическую установку для созданного kickstart файла (*) Файл загружается по HTTP.
* 4. автоматизировать процесс установки Cobbler cледуя шагам из документа https://cobbler.github.io/quickstart/.

Формат сдачи ДЗ - vagrant + ansible
Фильтрация трафика - firewalld, iptables
настраивать файрвалл с использованием iptables/firewalld;
настраивать NAT;
пробрасывать порты;
настраивать взаимодействие с роутингом;
понимать работу таблиц и цепочек.
15 февраля, 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й порт без маскарадинга
Фильтрация трафика - firewalld, iptables
18 февраля, 20:00 — 21:30
Фильтрация трафика - nftables
22 февраля, 20:00 — 21:30
Лектор: Алексей Цыкунов
Статическая и динамическая маршрутизация, OSPF
понять принцип работы multicast;
описать назначение loopback-интерфейса;
понять основные принципы работы протокола OSPF;
настроить динамическую маршрутизацию с помощью программных маршрутизаторов Quagga, FRR и BIRD.
25 февраля, 20:00 — 21:30
Лектор: Павел Викирюк
Домашние задания: 1
ДЗ
OSPF. 1. Поднять три виртуалки
2. Объединить их разными vlan
- поднять OSPF между машинами на базе Quagga;
- изобразить ассиметричный роутинг;
- сделать один из линков "дорогим", но что бы при этом роутинг был симметричным.

Формат сдачи: Vagrantfile + ansible
BGP
познакомимся с протоколом динамической маршрутизации BGP.
1 марта, 20:00 — 21:30
Лектор: Павел Викирюк
Мосты, туннели и VPN
описать разницу между мостами и туннелями;
настраивать мосты и туннели между сетями;
разобраться в различных типах реализаций мостов и туннелей.
4 марта, 20:00 — 21:30
Лектор: Павел Викирюк
Домашние задания: 1
ДЗ
VPN. 1. Между двумя виртуалками поднять vpn в режимах
- tun;
- tap;
Прочуствовать разницу.

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

3*. Самостоятельно изучить, поднять ocserv и подключиться с хоста к виртуалке

Формат сдачи ДЗ - vagrant + ansible
DNS- настройка и обслуживание
узнать как завести домен;
управлять зонами (bind/powerdns);
обслуживать свой домен самостоятельно;
разобрать dig/host/nslookup.
11 марта, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
настраиваем split-dns. - взять стенд 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
Сетевые пакеты. VLAN'ы. LACP
изучить UniCast/MultiCast/BroadCast/AnyCast;
изучить протокол LACP. Учимся аггрегировать интерфейсы через teaming и bonding;
VLAN;
познакомиться с dot1q, macvlan;
освоить работу с nmcli.
15 марта, 20:00 — 21:30
Лектор: Павел Викирюк
Домашние задания: 1
ДЗ
Строим бонды и вланы. в 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 отключением интерфейсов

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

LDAP. Централизованная авторизация и аутентификация
объяснить, что такое LDAP и зачем нужен; разобрать базовую настройку LDAP на примере.
18 марта, 20:00 — 21:30
Лектор: Викентий Лапа
Домашние задания: 1
ДЗ
LDAP. 1. Установить FreeIPA;
2. Написать Ansible playbook для конфигурации клиента;


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

Формат сдачи ДЗ - vagrant + ansible
IPv6
объяснить как работает протокол Ipv6;
знать правила формирования адреса;
отличать типы адресов;
знать особенности работы и преимущества использования;
настраивать маршрутизацию и файрвалл.
22 марта, 20:00 — 21:30
Сервисы Linux
Рассмотрим настройку базовых сервисов на ОС Линукс, таких как базы данных, почта и веб сервер.
Web: протоколы
разобрать работу протоколов HTTP/HTTPS, HTTP 2.0, 3.0.
25 марта, 20:00 — 21:30
Nginx
настраивать upstream, proxy_pass;
настраивать кэш;
lua.
29 марта, 20:00 — 21:30
Динамический веб
разбираться в CGI/FCGI/WSGI/mod_xxx;
настраивать uwsgi/php_fpm;
понимать Ajax/Long Pooling/Websockets.
1 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
развертывание веб приложения. Варианты стенда:
- nginx + php-fpm (laravel/wordpress) + python (flask/django) + js(react/angular);
- nginx + java (tomcat/jetty/netty) + go + ruby;
- можно свои комбинации.

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

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

К сдаче принимается:
- vagrant стэнд с проброшенными на локалхост портами
- каждый порт на свой сайт
- через нжинкс
Формат сдачи ДЗ - vagrant + ansible
Mysql
устанавливать, настраивать, тестировать mysql;
понимать, на что влияют различные настройки;
понимать, как работает СУБД;
понимать какие файлы и их назначение используются mysql;
настраивать базовую репликацию.
5 апреля, 20:00 — 21:30
MySQL: Backup + Репликация
снимать резервные копии;
восстанавливать базу после сбоя;
настраивать master-slave репликацию.
8 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
репликация mysql. В материалах приложены ссылки на вагрант для репликации и дамп базы bet.dmp
Базу развернуть на мастере и настроить так, чтобы реплицировались таблицы:
| bookmaker |
| competition |
| market |
| odds |
| outcome

* Настроить GTID репликацию
x
варианты которые принимаются к сдаче
- рабочий вагрантафайл
- скрины или логи SHOW TABLES
* конфиги
* пример в логе изменения строки и появления строки на реплике
PostgreSQL
администрировать PostgreSQL;
установить, настроить, создать пользователей и роли;
выдать права, создать базы;
мониторить, делать бекапы.
12 апреля, 20:00 — 21:30
Лектор: Виктор Коробков
Домашние задания: 1
ДЗ
репликация postgres. - настроить hot_standby репликацию с использованием слотов
- настроить правильное резервное копирование

Для сдачи работы присылаем ссылку на репозиторий, в котором должны обязательно быть
- Vagranfile (2 машины)
- плейбук Ansible
- конфигурационные файлы postgresql.conf, pg_hba.conf и recovery.conf,
- конфиг barman, либо скрипт резервного копирования.

Команда "vagrant up" должна поднимать машины с настроенной репликацией и резервным копированием.
Рекомендуется в README.md файл вложить результаты (текст или скриншоты) проверки работы репликации и резервного копирования.

пример плейбука:
---
- name: Установка postgres11
hosts: master, slave
become: yes
roles:
- postgres_install

- name: Настройка master
hosts: master
become: yes
roles:
- master-setup

- name: Настройка slave
hosts: slave
become: yes
roles:
- slave-setup

- name: Создание тестовой БД
hosts: master
become: yes
roles:
- create_test_db

- name: Настройка barman
hosts: barman
become: yes
roles:
- barman_install
tags:
- barman
Postgres: Backup + Репликация
делать резервные копии;
останавливаться базу в случае сбоя;
настраивать репликами.
15 апреля, 20:00 — 21:30
Лектор: Виктор Коробков
Почта: SMTP, IMAP, POP3
разбирать почтовые протоколы;
устанавливать и настраивать Postfix и Dovecot;
оценить настройки безопасности.
19 апреля, 20:00 — 21:30
Лектор: Павел Викирюк
Проект
Создание рабочего проекта
веб проект с развертыванием нескольких виртуальных машин
должен отвечать следующим требованиям
- включен https
- основная инфраструктура в DMZ зоне
- файрвалл на входе
- сбор метрик и настроенный алертинг
- везде включен selinux
- организован централизованный сбор логов
Выбор темы и организация проектной работы
выбрать и обсудить тему проектной работы;
спланировать работу над проектом;
ознакомиться с регламентом работы над проектом.
29 апреля, 20:00 — 21:30
Защита проектных работ
защитить проект и получить рекомендации экспертов.
3 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Проект.
Подведение итогов курса
узнать, как получить сертификат об окончании курса, как взаимодействовать после окончания курса с OTUS и преподавателями, какие вакансии и позиции есть для выпускников (опционально - в России и за рубежом) и на какие компании стоит обратить внимание.
6 мая, 20:00 — 21:30

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

Леонид Альбрехт
RusLink
Системный инженер в холдинге компаний RusLink.
Опыт в отрасли более 10 лет. Работал как в частном секторе, так и в окологосударственном (Ростелеком).
Участвовал в разработке и внедрении новых продуктов и сервисов. Есть опыт в руководстве отделом тех. поддержки и администрирования.

Профессиональные навыки:
- знание современных клиентских и серверных ОС;
- установка и настройка различных СУБД (MS SQL, PostgreSQL, MySQL, MariaDB);
- администрирование веб-серверов Apache, Nginx;
- виртуализация и знание продуктов VMware, VirtualBox, Proxmox, Vagrant;
- написание скриптов на Bash;
- применение Ansible;
- знание активного сетевого оборудования Mikrotik, D-Link и др.
Преподаватель курсов:
Administrator Linux. Professional