Проходил 24 октября 2017 года в 20:00

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

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

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

Запись

О курсе

Администратор Linux
48 000 ₽
5 месяцев
Начало в августе
Наиболее полный курс администрирования систем на базе Linux, преподаваемый специалистами с большим стажем работы в крупнейших проектах рунета. Курс формирует знания и навыки для построения и обслуживания высоконадёжных высокодоступных систем на базе Linux. В результате выпускники смогут: – развернуть платформу на базе Linux по ТЗ или предложить конфигурацию, наиболее подходящую под задачу; – развернуть большинство типов онлайн-систем и обеспечить их ...
Программа курса
Модуль 1
Модуль 2
Модуль 3
Модуль 4
Модуль 5
Архитектура Linux
В этом модуле будут разбираться базовые компоненты OS Linux. Будем разбирать, что такое ядро и его модули, загрузчик, процессы, дисковая и файловая системы, inodes и daemons.
Научимся устанавливать и обновлять и восстанавливать OS, управлять загрузкой, создавать и изменять RAID массивы, управлять логическими томами

Проект на весь модуль: делаем свою загрузочную флешку readonly, со своим ядром
С чего начинается Linux
Знакомство.

Обзор базовых инструментов, которые понадобятся в течении курса - ssh и его клиенты, vagrant, git.

Какие версии LInux бывают.
Ядро Linux. Краткое введение. Syscalls.
Версии ядра. Обновление ядра. Ручная сборка ядра.
Модули ядра. Команды: modprobe, lsmod, rmmod.

Лабораторная работа. Установка с образа, обновление ядра, включение/выключение модулей.
Домашние задания: 1
ДЗ
Делаем собственную сборку ядра. Взять любую версию ядра с kernel.org
Подложить файл конфигурации ядра
Собрать ядро (попутно доставляя необходимые пакеты)
Прислать результирующий файл конфигурации
Прислать списк доустановленных пакетов, взять его можно из /var/log/yum.log
Устанавливать будем на следующем занятии =)
Дисковая подсистема
Программный и аппаратный RAID. Получение информации о дисковой системе системе с помощью dmidecode, dmesg, smartctl.

MBR и GPT. Команды gdisk/fdisk/parted/partprobe. Знакомимся с multipath

Лабораторная работа: управление рейд массивом с помощью mdadm: создание, съем информации. Разбиваем на партиции
Домашние задания: 1
ДЗ
работа с mdadm. . добавить в Vagrantfile еще дисков
сломать/починить raid
собрать R0/R5/R10 на выбор
прописать собранный рейд в конф, чтобы рейд собирался при загрузке
создать GPT раздел и 5 партиций

в качестве проверки принимаются - измененный Vagrantfile, скрипт для создания рейда, конф для автосборки рейда при загрузке
* доп. задание - Vagrantfile, который сразу собирает систему с подключенным рейдом
Файловые системы и LVM
LVM - облегчаем себе жизнь управления файловыми системами.
архитектура файловой системы Linux: суперблок, блоки, inodes, журналы.
разбираемся в многообразии файловых систем: ext2/3/4, xfs, raiserfs, btrfs, zfs, cephfs

Лабораторная работа: создаем и меняем размеры томов LVM и файловых систем. Знакомимся с mount, mkfs, fsck, resize2fs, /etc/fstab
Домашние задания: 1
ДЗ
Работа с LVM. на имеющемся образе
/dev/mapper/VolGroup00-LogVol00 38G 738M 37G 2% /

уменьшить том под / до 8G
выделить том под /home
выделить том под /var
/var - сделать в mirror
/home - сделать том для снэпшотов
прописать монтирование в fstab
попробовать с разными опциями и разными файловыми системами ( на выбор)
- сгенерить файлы в /home/
- снять снэпшот
- удалить часть файлов
- восстановится со снэпшота
- залоггировать работу можно с помощью утилиты screen

* на нашей куче дисков попробовать поставить btrfs/zfs - с кешем, снэпшотами - разметить здесь каталог /opt
Загрузка системы
Как происходит загрузка системы. В чем разница между BIOS/UEFI. Знакомимся GRUB2 и учимся его настраивать. Управляем initrd с помощью dracut. Знакомимся с udev. Учимся восстанавливать сломанный загрузчик

Лабораторная работа: прописываем в grub несколько конфигурация с разными ядрами. Ставим хук в initrd
Домашние задания: 1
ДЗ
Работа с загрузчиком. 1. Попасть в систему без пароля несколькими способами
2. Установить систему с LVM, после чего переименовать VG
3. Добавить модуль в initrd

4(*). Сконфигурировать систему без отдельного раздела с /boot, а только с LVM
Репозиторий с пропатченым grub: https://yum.rumyantsev.com/centos/7/x86_64/
PV необходимо инициализировать с параметром --bootloaderareasize 1m
Bash, awk, sed, grep и другие
Изучаем основные рабочие инструменты системного администратора. Базовое программирование. Переменные, условия, циклы, однострочники.
Знакомимся с командами интерпретатора bash.
Знакомимся с командами awk/sed/grep/egrep/cut/find/sort/uniq и другими

Лабораторная работа: пишем скрипт
Домашние задания: 1
ДЗ
Пишем скрипт. подготовить свои скрипты для решения следующих кейсов
1) watchdog с перезагрузкой процесса/сервиса
2) watchdog с отсылкой емэйла
3) анализ логов веб сервера/security лога - (на взлом/скорость ответа/выявление быстрых - медленных запросов, анализ IP адресов и кол-ва запросов от них)
4) крон скрипт с защитой от мультизапуска
5) любой скрипт на ваше усмотрение

желательно чтобы в скрипте были
циклы
условия
регекспы
awk
наличие в скрипте трапов и функций
Инициализация системы. Systemd и SysV.
Учимся писать сценарии автозагрузки демонов. Изучаем разницу между systemd и SysV. учимся обращаться с systemctl и journalctl.

Лабораторная работа: сценарии автозапуска под systemd и Sys.V
Домашние задания: 1
ДЗ
Systemd. 1. Написать сервис, который будет раз в 30 секунд мониторить лог на предмет наличия ключевого слова. Файл и слово должны задаваться в /etc/sysconfig
2. Из epel установить spawn-fcgi и переписать init-скрипт на unit-файл. Имя сервиса должно так же называться.
3. Дополнить юнит-файл apache httpd возможностьб запустить несколько инстансов сервера с разными конфигами
4*. Скачать демо-версию Atlassian Jira и переписать основной скрипт запуска на unit-файл
Управление процессами
Рассмотрим, что такое процесс, его атрибуты, жизненный цикл процесса.
Чем потоки отличаются от процессов.
Узнаем как мониторить процессы, в каком они состоянии, понимать чем они сейчас заняты.
Рассмотрим команды ps/top, подсистему /proc, а также команды gdb/strace/ltrace
Научимся менять приоритеты с мощью команд nice, ionice
Научимся посылать различные сигналы процессам.
Домашние задания: 1
ДЗ
работаем с процессами. Задания на выбор
1) написать свою реализацию ps ax используя анализ /proc
- Результат ДЗ - рабочий скрипт который можно запустить
2) написать свою реализацию lsof
- Результат ДЗ - рабочий скрипт который можно запустить
3) дописать обработчики сигналов в прилагаемом скрипте, оттестировать, приложить сам скрипт, инструкции по использованию
- Результат ДЗ - рабочий скрипт который можно запустить + инструкция по использованию и лог консоли
4) реализовать 2 конкурирующих процесса по IO. пробовать запустить с разными ionice
- Результат ДЗ - скрипт запускающий 2 процесса с разными ionice, замеряющий время выполнения и лог консоли
5) реализовать 2 конкурирующих процесса по CPU. пробовать запустить с разными nice
- Результат ДЗ - скрипт запускающий 2 процесса с разными nice и замеряющий время выполнения и лог консоли
Управление пакетами. Дистрибьюция софта.
Как устанавливать софт в Linux. Как собирать из исходников. Репозитории, yum и rpm.
Docker как средство дистрибьюции, преимущества и недостатки.

Лабораторная работа: Будем настраивать собственные репозитории и создавать собственные rpm'ки.
Домашние задания: 1
ДЗ
Размещаем свой RPM в своем репозитории. 1) создать свой RPM (можно взять свое приложение, либо собрать к примеру апач с определенными опциями)
2) создать свой репо и разместить там свой RPM
реализовать это все либо в вагранте, либо развернуть у себя через nginx и дать ссылку на репо

* реализовать дополнительно пакет через docker
Linux и сеть
Настраиваем и работаем с сетью в Linux. От хоста до маршрутизатора и брандмауэра.
Архитектура сетей.
Обзор Модели OCI. Протоколы ARP, IP, TCP/UDP. Протоколы прикладного уровня. Сетевые интерфейсы в Linux.
Освоим команды ip/tc/ss/nstat, вспомним ifconfig/netstat/route, заглянем в /etc/sysconfig/network-scripts, поснифферим через tcpdump и ngrep

Лабораторная работа: строим маршрутизацию между подсетями
Сетевые пакеты. VLAN'ы. LACP.
Изучаем UniCast/MultiCast/BroadCast/AnyCast.
Изучаем протокол LACP. Учимся аггрегировать интерфейсы через teaming и bonding.
Разбираемся что такое VLAN. Знакомимся с dot1q, macvlan
Осваиваем работу с nmcli
Лабораторная работа: аггрегируем интерфейсы в режиме active/active и failover
29 мая, 20:00 — 21:30
Лектор: Александр Румянцев
Мосты, туннели и VPN
Разбираемся в терминах и протоколах - что такое мосты, туннели, VPN, PPP, PPTP, PPoE, IPoE, GRE, IPIP, IpSec, L2TP.
Строим VPN между линуксами, разбираем нюансы подключения к Cisco и Mikrotik.
Лабораторная работа: VPN через openvpn
1 июня, 20:00 — 21:30
Лектор: Александр Румянцев
Статическая и динамическая маршрутизация
настраиваем простые маршруты с помощью route/ip/nmcli
разбираем что такое RIP/OSPF/BGP
настраиваем динамическую маршрутизацию с помощью bird и quagga
Лабораторная работа: настройка OSPF между 3мя сетями
5 июня, 20:00 — 21:30
Лектор: Александр Румянцев
DNS - настройка и обслуживание
Узнаем как завести домен
Как управлять зонами (bind/powerdns)
Как обсулуживать свой домен самостоятельно
Разбираем dig/host/nslookup
Динамический DNS - consul
Лабораторная работа: настраиваем свой кеширующий днс (мастер/слейв) со своей локальной зоной
8 июня, 20:00 — 21:30
Лектор: Алексей Цыкунов
Фильтрация трафика
Углубляемся в iptables/firewalld
разбираем цепочки и таблицы
учимся правильно защищать свою сеть
строим NAT, проксируем трафик, пробрасываем порты
Лабораторная работа: защищаем веб сервер от DOS атак
12 июня, 20:00 — 21:30
Лектор: Алексей Цыкунов
немного DHCP и практическое занятие
настраиваем DHCP сервер
привязываем адреса по MAC
разбираем leases
работа на стенде, ответы на вопросы, разбор различных ситуаций
строим полноценный маршрутизатор для небольшого офиса
15 июня, 20:00 — 21:30
Лектор: Александр Румянцев
Семинар по модулю
Разбор непонятых тем
Ответы на вопросы
Рассматривание рабочих ситуаций от слушателей курса
19 июня, 20:00 — 21:30
Управление, безопасность и мониторинг
В этом модуле мы рассмотрим задачи и рабочие инструменты для управления системой, обеспечения безопасности, контроля прав и доступов. Также мы рассмотрим инструменты для мониторинга, логгирования и анализа проблем производительности и сбоев. Будем учится решать проблемы и производить ретроспективный анализ.
Автоматизация администрирования. Ansible.
Автоматизируем рутинные задачи администрирования. Изучаем ansible - хосты, модули, плейбуки, роли, перменные. Знакомися с другими инструментами - chef/puppet/salt.

Лабораторная работа: пишем скрипт для апгрейда системы после установки и измения конфигов.
22 июня, 20:00 — 21:30
Лектор: Алексей Цыкунов
Пользователи и группы. Авторизация и аутентификация
рассмотрим механизмы авторизации и аутентификации. Узнаем как кие бывают права у пользовталей. Научимся управлять правами с помощью sudo, umask. sgid, suid и более сложными инструментами как PAM и ACL, PolicyKit

Лабораторная работа: даем пользователю A возможность запускать скрипт, принадлежащий пользователю B
26 июня, 20:00 — 21:30
Лектор: Александр Румянцев
LDAP. Централизованная авторизация и аутентификация.
Что такое LDAP и зачем нужен. Разбираем базовую настройку LDAP на примере.
29 июня, 20:00 — 21:30
Лектор: Александр Румянцев
SELinux - когда все запрещено.
Разбираемся, что такое SELinux
3 июля, 20:00 — 21:30
Лектор: Александр Румянцев
Мониторинг производительности
Мониторим занятые ресурсы: CPU, память, диск, сеть.
Изучаем инструменты ps, top , sar, htop, atop, netstat, ss, vmstat, iostat, iotop, pidstat
Смотрим, что находится в /proc
Узнаем, что делать с неотзывчивой системой
6 июля, 20:00 — 21:30
Лектор: Александр Румянцев
Сбор и анализ логов.
Разбираем настройку логгирования с помощью rsyslog и logrotate.
Знакомимся с модными система логгирования - ELK, graylog
10 июля, 20:00 — 21:30
Лектор: Алексей Цыкунов
Мониторинг и алертинг
Изучаем Zabbix. Знакомимся с Prometheus
13 июля, 20:00 — 21:30
Лектор: Алексей Цыкунов
Резервное копирование.
Обсуждаем политики и методики резерного копирования. Работаем с инструментами rsync, tar, dd и bacula.
17 июля, 20:00 — 21:30
Лектор: Алексей Цыкунов
Сервисы на базе Linux
Мы научимся как запускать настраивать и поддерживать в Linux такие сервисы как WEB, почта, файловые хранилища, базы данных
Web сервера
Изучаем протоколы HTTP/HTTPS, HTTP 2.0
Разбираемся с SSL
Устанавливаем и настраиваем Apache и Nginx
Настраиваем vhosts
20 июля, 20:00 — 21:30
Динамический веб контент
разбираем CGI/FCGI/WSGI/mod_xxx
настраиваем uwsgi/php_fpm
разбираемся с python/perl/php/ruby
24 июля, 20:00 — 21:30
Mysql
Учимся администрировать mysql
Устанавливаем, запускаем, мониторим
Создаем схемы, делаем простые запросы
Учимся делать бэкап и репликацию
27 июля, 20:00 — 21:30
PostgreSQL
Учимся администрировать PostgreSQL
Установка, настройка, создаем пользователей и роли
выдаем права, создаем базы,
мониторим, делаем бэкапы
31 июля, 20:00 — 21:30
Redis, Memcached, RabbitMQ
Разбираем что это такое и зачем нужны эти сервисы.
Устанвливаем и настраиваем их
Запускаем в работу.
3 августа, 20:00 — 21:30
Почта: SMTP, IMAP, POP3
разрабираем почтовые протоколы.
Устанавливаем и настраиваем Postfix и Dovecot
7 августа, 20:00 — 21:30
Почта: безопасность и другие задачи
10 августа, 20:00 — 21:30
Файловые хранилища - NFS, SMB, FTP
Строим файловое хранилище на основе Linux
14 августа, 20:00 — 21:30
Asterisk и FreePBX
Разюираем протоколы SIP, RTP
Строим офисную АТС на базе Asterisk
Овновные понятия Asterisk - extensions, trunks, inbound/outbound routes
Обсуждаем как решать типичные проблемы - нет слышимости, NAT, совместимость кодеков
17 августа, 20:00 — 21:30
Лектор: Алексей Цыкунов
Проектная работа
Будем учится строить высокодоступные кластера, настраивать балансировщики, динамические адреса, общие хранилища.


В течении модуля делаем курсовой проект. Создаем скрипты деплоя HA кластера на виртуалках. На кластере разворачиваем либо собственный веб проект, либо веб проект коллег с других курсов. Также приветствуются разворачивание любых систем, например: gitlab, wordpress, youtrack, bigbluebutton и других на ваш выбор
строим кластер - Pacemaker, Corosync, Heartbeat
21 августа, 20:00 — 21:30
VRRP и динамический DNS
разбираем методики и настройку для обеспечения HA
c диначеского IP и динамического доменного уровня (ConsulDNS)
24 августа, 20:00 — 21:30
Балансировка нагрузки на основе HAproxy
Настраиваем баласировку для вебсерверов и mysql базы
Разбираем конфиги
Проверяем работу балансировки на стенде
28 августа, 20:00 — 21:30
Распределнные файловые системы: GlusterFS и CEPH
31 августа, 20:00 — 21:30
ISCSI, multipath и класерные файловые системы: GFS2
настраиваем ISCSI
настраиваем multipath

Лабораторная работа: разбираем работу системы на стенде, 2 таргета, 2 клиента, общая файловая система
4 сентября, 20:00 — 21:30
Виртуализация - cgroups, LXC
7 сентября, 20:00 — 21:30
Виртуализация - KVM, Proxmox
11 сентября, 20:00 — 21:30
Итоговое занятие
обсуждение вопросов
обсуждение проекта
14 сентября, 20:00 — 21:30

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

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