Проходил 2 апреля 2018 года в 20:00

Открытый вебинар
Linux: Рабочие показатели системы, инструменты мониторинга и отладки

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

В рамках открытого вебинара мы с вами рассмотрим причины, по которым система становится неотзывчива, выявим их основания, поговорим об основных инструментах анализа работы системы (на примере top/atop/sar/strace etc.) и научимся формировать правильные выводы.
Вебинар будет интересен практикующим системным администраторам.
Преподаватель
Александр Румянцев

Запись

О курсе

Администратор Linux
60 000 ₽
5 месяцев
Начало 23 апреля
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
  • {% safe_chunk 'lessons:visit_card_center-15' %}
...
Программа курса
Модуль 1
Архитектура Linux
Модуль 2
Управление, безопасность и мониторинг
Модуль 3
Linux и сеть
Модуль 4
Сервисы на базе Linux
Модуль 5
Проектная работа
Архитектура Linux
В этом модуле будут разбираться базовые компоненты OS Linux. Будем разбирать, что такое ядро и его модули, загрузчик, процессы, дисковая и файловая системы, inodes и daemons.
Научимся устанавливать и обновлять и восстанавливать OS, управлять загрузкой, создавать и изменять RAID массивы, управлять логическими томами

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

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

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

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

MBR и GPT. Команды gdisk/fdisk/parted/partprobe.

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

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

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

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

* на нашей куче дисков попробовать поставить btrfs/zfs - с кешем, снэпшотами - разметить здесь каталог /opt
Bash, awk, sed, grep и другие
Изучаем основные рабочие инструменты системного администратора. Базовое программирование. Переменные, условия, циклы, однострочники.
Знакомимся с командами интерпретатора bash.
Знакомимся с командами awk/sed/grep/egrep/cut/find/sort/uniq и другими

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

Желательно чтобы в скрипте были:
циклы
условия
регекспы
awk
наличие в скрипте трапов и функций
Управление процессами
Рассмотрим, что такое процесс, его атрибуты, жизненный цикл процесса.
Чем потоки отличаются от процессов.
Узнаем как мониторить процессы, в каком они состоянии, понимать чем они сейчас заняты.
Рассмотрим команды 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. Как собирать из исходников. Репозитории, yum и rpm.
Docker как средство дистрибьюции, преимущества и недостатки.

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

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

Лабораторная работа: прописываем в grub несколько конфигураций с разными ядрами. Ставим хук в initrd
14 мая, 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 и SysV.
Учимся писать сценарии автозагрузки демонов. Изучаем разницу между systemd и SysV. учимся обращаться с systemctl и journalctl.

Лабораторная работа: сценарии автозапуска под systemd и Sys.V
17 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Systemd. 1. Написать сервис, который будет раз в 30 секунд мониторить лог на предмет наличия ключевого слова. Файл и слово должны задаваться в /etc/sysconfig
2. Из epel установить spawn-fcgi и переписать init-скрипт на unit-файл. Имя сервиса должно так же называться.
3. Дополнить юнит-файл apache httpd возможностьб запустить несколько инстансов сервера с разными конфигами
4*. Скачать демо-версию Atlassian Jira и переписать основной скрипт запуска на unit-файл
Управление, безопасность и мониторинг
В этом модуле мы рассмотрим задачи и рабочие инструменты для управления системой, обеспечения безопасности, контроля прав и доступов. Также мы рассмотрим инструменты для мониторинга, логгирования и анализа проблем производительности и сбоев. Будем учится решать проблемы и производить ретроспективный анализ.
Автоматизация администрирования. Ansible.
Автоматизируем рутинные задачи администрирования. Изучаем ansible - хосты, модули, плейбуки, роли, переменные. Знакомися с другими инструментами - chef/puppet/salt.

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

Домашнее задание считается принятым, если:
- предоставлен Vagrantfile и готовый playbook/роль ( инструкция по запуску стенда, если посчитаете необходимым )
- после запуска стенда nginx доступен на порту 8080
- при написании playbook/роли соблюдены перечисленные в задании условия
Пользователи и группы. Авторизация и аутентификация
рассмотрим механизмы авторизации и аутентификации. Узнаем какие бывают права у пользовталей. Научимся управлять правами с помощью sudo, umask. sgid, suid и более сложными инструментами как PAM и ACL, PolicyKit

Лабораторная работа: даем пользователю A возможность запускать скрипт, принадлежащий пользователю B
24 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
PAM. 1. Запретить всем пользователям, кроме группы admin логин в выходные и праздничные дни
2. Дать конкретному пользователю права рута
LDAP. Централизованная авторизация и аутентификация.
Что такое LDAP и зачем нужен. Разбираем базовую настройку LDAP на примере.
28 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
LDAP. 1. Установить FreeIPA
2. Написать playbook для конфигурации клиента
3*. Настроить авторизацию по ssh-ключам

В git - результирующий playbook
Мониторинг производительности
Мониторим занятые ресурсы: CPU, память, диск, сеть.
Изучаем инструменты ps, top , sar, htop, atop, netstat, ss, vmstat, iostat, iotop, pidstat
Смотрим, что находится в /proc
Узнаем, что делать с неотзывчивой системой
31 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Linux Troubleshooting. 1. Написать playbook для первоначальной настройки хоста после инсталляции по всем прошедшим лекциям
- установка нужных инструментов для анализа и траблшутинга
- избавление ядра и сетевых настроек от "десктопности"
- установка разнообразных параметров ядра под работу в качестве сервера
2. Опубликовать ссылку на плейбук в общем чатике
3. Взять любой опубликованный плейбук, прокомментировать.
SELinux - когда все запрещено.
Разбираемся, что такое SELinux
4 июня, 20:00 — 21:30
Сбор и анализ логов.
Разбираем настройку логгирования с помощью rsyslog и logrotate.
Знакомимся с модными система логгирования - ELK, graylog
7 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настраиваем центральный сервер для сбора логов. в вагранте поднимаем 2 машины web и log
на web поднимаем nginx
на log настраиваем центральный лог сервер на любой системе на выбор
- journald
- rsyslog
- elk
настраиваем аудит следящий за изменением конфигов нжинкса

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


* развернуть еще машину elk
и таким образом настроить 2 центральных лог системы elk И какую либо еще
в elk должны уходить только логи нжинкса
во вторую систему все остальное
Мониторинг и алертинг
Изучаем Zabbix. Знакомимся с Prometheus
11 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка мониторинга. Настроить дашборд с 4-мя графиками
1) память
2) процессор
3) диск
4) сеть

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

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

в качестве результата прислать скриншот экрана - дашборд должен содержать в названии имя приславшего
Резервное копирование.
Обсуждаем политики и методики резерного копирования. Работаем с инструментами rsync, tar, dd и bacula.
14 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настраиваем бэкапы. Настроить стенд Vagrant с двумя виртуальными машинами server и client.

Настроить политику бэкапа директории /etc с клиента:
1) Полный бэкап - раз в день
2) Инкрементальный - каждые 10 минут
3) Дифференциальный - каждые 30 минут

Запустить систему на два часа. Для сдачи ДЗ приложить list jobs, list files jobid=<id>
и сами конфиги bacula-*

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

Лабораторная работа: строим маршрутизацию между подсетями
18 июня, 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), который вагрант поднимает для связи
- при нехватке сетевых интервейсов добавить по несколько адресов на интерфейс



DNS/DHCP - настройка и обслуживание
Настраиваем DHCP
Узнаем как завести домен
Как управлять зонами (bind/powerdns)
Как обслуживать свой домен самостоятельно
Разбираем dig/host/nslookup
Лабораторная работа: настраиваем свой кеширующий днс (мастер/слейв) со своей локальной зоной
21 июня, 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
Фильтрация трафика
Углубляемся в iptables/firewalld
разбираем цепочки и таблицы
учимся правильно защищать свою сеть
строим NAT, проксируем трафик, пробрасываем порты
Лабораторная работа: защищаем веб сервер от DOS атак
25 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сценарии iptables. 1) реализовать knocking port
- centralRouter может попасть на ssh inetrRouter через knock скрипт
пример в материалах
2) добавить inetRouter2, который виден(маршрутизируется) с хоста
3) запустить nginx на centralServer
4) пробросить 80й порт на inetRouter2 8080
5) дефолт в инет оставить через inetRouter
Мосты, туннели и VPN
Разбираемся в терминах и протоколах - что такое мосты, туннели, VPN, PPP, PPTP, PPoE, IPoE, GRE, IPIP, IpSec, L2TP.
Строим VPN между линуксами, разбираем нюансы подключения к Cisco и Mikrotik.
Лабораторная работа: VPN через openvpn
28 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
VPN. 1. Между двумя виртуалками поднять vpn в режимах
- tun
- tap
Прочуствовать разницу.

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

3*. Самостоятельно изучить, поднять ocserv и подключиться с хоста к виртуалке
Сетевые пакеты. VLAN'ы. LACP.
Изучаем UniCast/MultiCast/BroadCast/AnyCast.
Изучаем протокол LACP. Учимся аггрегировать интерфейсы через teaming и bonding.
Разбираемся что такое VLAN. Знакомимся с dot1q, macvlan
Осваиваем работу с nmcli
Лабораторная работа: аггрегируем интерфейсы в режиме active/active и failover
2 июля, 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 отключением интерфейсов

для сдачи - вагрант файл с требуемой конфигурацией
Разворачиваться конфигурация должна через ансибл

Статическая и динамическая маршрутизация
настраиваем простые маршруты с помощью route/ip/nmcli
разбираем что такое RIP/OSPF/BGP
настраиваем динамическую маршрутизацию с помощью bird и quagga
Лабораторная работа: настройка OSPF между 3мя сетями
5 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
OSPF. - Поднять три виртуалки
- Объединить их разными vlan
1. Поднять OSPF между машинами на базе Quagga
2. Изобразить ассиметричный роутинг
3. Сделать один из линков "дорогим", но что бы при этом роутинг был симметричным

Формат сдачи:
Vagrantfile + ansible
Сервисы на базе Linux
Мы научимся как запускать настраивать и поддерживать в Linux такие сервисы как WEB, почта, файловые хранилища, базы данных
Web сервера
Изучаем протоколы HTTP/HTTPS, HTTP 2.0
Разбираемся с SSL
Устанавливаем и настраиваем Apache и Nginx
Настраиваем vhosts
9 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Простая защита от DDOS. Написать конфигурацию nginx, которая даёт доступ клиенту только с определенной cookie.
Если у клиента её нет, нужно выполнить редирект на location, в котором кука будет добавлена, после чего клиент будет обратно отправлен (редирект) на запрашиваемый ресурс.

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

Для выполнения ДЗ понадобятся
https://nginx.org/ru/docs/http/ngx_http_rewrite_module.html
https://nginx.org/ru/docs/http/ngx_http_headers_module.html
Динамический веб контент
разбираем CGI/FCGI/WSGI/mod_xxx
настраиваем uwsgi/php_fpm
разбираемся с python/perl/php/ruby
12 июля, 20:00 — 21:30
Почта: SMTP, IMAP, POP3
разбираем почтовые протоколы.
Устанавливаем и настраиваем Postfix и Dovecot
16 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
установка почтового сервера. 1. Установить в виртуалке postfix+dovecot для приёма почты на виртуальный домен любым обсужденным на семинаре способом
2. Отправить почту телнетом с хоста на виртуалку
3. Принять почту на хост почтовым клиентом

Результат
1. Полученное письмо со всеми заголовками
2. Конфиги postfix и dovecot

Всё это сложить в git, ссылку прислать в "чат с преподавателем"
Почта: безопасность и другие задачи
19 июля, 20:00 — 21:30
PostgreSQL
Учимся администрировать PostgreSQL
Установка, настройка, создаем пользователей и роли
выдаем права, создаем базы,
мониторим, делаем бэкапы
23 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
PostgreSQL. - Настроить hot_standby репликацию с использованием слотов
- Настроить правильное резервное копирование

Для сдачи присылаем postgresql.conf, pg_hba.conf и recovery.conf
А так же конфиг barman, либо скрипт резервного копирования
PostgreSQL cluster
настраиваем кластер PostgreSQL
26 июля, 20:00 — 21:30
Mysql
Учимся администрировать mysql
Устанавливаем, запускаем, мониторим
Создаем схемы, делаем простые запросы
Учимся делать бэкап и репликацию
30 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
развернуть базу из дампа и настроить репликацию. В материалах приложены ссылки на вагрант для репликации
и дамп базы bet.dmp
базу развернуть на мастере
и настроить чтобы реплицировались таблицы
| bookmaker |
| competition |
| market |
| odds |
| outcome

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

варианты которые принимаются к сдаче
- рабочий вагрантафайл
- скрины или логи SHOW TABLES
* конфиги
* пример в логе изменения строки и появления строки на реплике
MySQL - бэкап, репликация, кластер
Настраиваем политику инкрементального бэкапа
Настраиваем GTID репликацию и кластер с proxysql
Настраиваем NDB кластер
2 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
простая связь через sip/pjsip. установить астериск на сервере
для ус тановки воспользоваться ролью https://github.com/erlong15/tls-asterisk14-ansible
при установке создаются 3 номер 1100, 1101, 1102
подключить два телефона (можно использовать transport-tls, transport-udp, transport-tcp)
сделать звонок
в качестве ДЗ принимается лог SIP сессии

при использовании вагранта и внешних телефонов можно использовать варианты
- виртуалки с телефонами в одной приват сети с астериском
- бридж интерфейс для проброса во вне
Redis, Memcached, RabbitMQ
Разбираем что это такое и зачем нужны эти сервисы.
Устанавливаем и настраиваем их
Запускаем в работу.
6 августа, 20:00 — 21:30
Файловые хранилища - NFS, SMB, FTP
Строим файловое хранилище на основе Linux
9 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Vagrant стенд для NFS или SAMBA. NFS или SAMBA на выбор:

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

* Настроить аутентификацию через KERBEROS
Проектная работа
Будем учится строить высокодоступные кластера, настраивать балансировщики, динамические адреса, общие хранилища.


В течении модуля делаем курсовой проект. Создаем скрипты деплоя HA кластера на виртуалках. На кластере разворачиваем либо собственный веб проект, либо веб проект коллег с других курсов. Также приветствуются разворачивание любых систем, например: gitlab, wordpress, youtrack, bigbluebutton и других на ваш выбор
Балансировка нагрузки на основе HAproxy и VRRP (keepalived)
Изучаем протокол VRRP
Изучаем работу с haproxy
Настраиваем балансировку для вебсерверов
Разбираем конфиги
Проверяем работу балансировки на стенде
строим кластер - Pacemaker, Corosync, Heartbeat
ISCSI, multipath и кластерные файловые системы: GFS2
настраиваем ISCSI
настраиваем multipath

Лабораторная работа: разбираем работу системы на стенде, 2 таргета, 2 клиента, общая файловая система
Распределенные файловые системы: CEPH
Распределенные файловые системы: GlusterFS
Контейнеры - cgroups, LXC, docker
Docker
разбираем как писать Dockerfile
создаем docker-compose
запускаем docker swarm
Итоговое занятие
обсуждение вопросов
обсуждение проекта
Защита проектных работ
Домашние задания: 1
ДЗ
Проектная работа.

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

Александр Румянцев
Postgres Professional
Database administrator в компании Postgres Professional. Большой опыт руководства отделами администраторов в Wikimart, Rambler и Ru-Center. В отрасли более 15 лет: из них 10 – в highload и более 5 лет на позиции руководителя
Преподаватель курсов:
Администратор Linux