[Слёрм] Администрирование Linux. Мега. Тариф Стандарт [Платон Платонов]

295

Продвинутая программа по Linux с практикой и траблшутингом от инженера Southbridge Платона Платонова.

Это однозначно практический курс. В нём будет много кейсов и примеров из моего опыта и опыта Southbridge. Я расскажу про установку Linux с помощью чёрной магии, приёмы ускорения работы в консоли, создание и применение bash-скриптов и многое другое.

Моя цель — передать вам свои знания и опыт эффективной работы с Linux. Даже в базовых темах я буду разбирать best practices и смотреть в глубину работы с Linux.

Курс в целом по Linux, а не по конкретному дистрибутиву. Он поможет углубить ваши знания в работе с ОС. Всё что мы разберём во время обучения, вы сможете сразу применять на практике.

Курс подойдёт, если сейчас:

1. Нет глубокого понимания Linux
2. Чувствую, что знания Linux хаотичны
3. Уверен в знаниях и знаком с best practices Linux

Содержание:

Модуль 1 — Процесс установки Linux
Вы узнаете, как проходит процесс установки, из чего состоит ОС, что такое LVM и зачем он нужен.

Теория:

  • Процесс установки Linux по этапам
  • Описание автоматической установки через графический инсталлятор
  • /dev
  • /sys
  • /proc
  • LVM

Практика:

  • Установить Linux без использования графического установщика
  • Тест на знание начинки и этапов установки.

Модуль 2 — Процессы и права
Вы поймёте, как работают процессы и права, научитесь манипулировать ими через консоль.

Теория:

  • Как работают процессы и права
  • Методы манипуляции процессами и правами
  • /proc
  • lsof (сущности, которые «держит» процесс)
  • attrs

Практика:

  • Выполнить манипуляции с процессами и файлами на стенде: повысить приоритет процесса, поставить процесс на паузу, через ACL выдать группе права на все файлы в директории.

Модуль 3 — Работа в консоли
Вы изучите приёмы ускорения работы в bash и разберёте необходимые в повседневности базовые утилиты. Научитесь быстро манипулировать текстом через консоль с помощью текстового редактора vi/vim или утилит grep, awk и sed.

Теория:

  • Основы работы c screen/tmux, watch
  • Потоки ввода/вывода/ошибок, cat, echo
  • Вывод потоков вывода через перенаправление, передача данных в поток ввода
  • Переменные окружения (env)
  • Работа с выводом, awk, grep, sed

Практика:

  • Заменить строку в ста файлах через sed
  • Получить из команды вывод в определенном формате через grep и awk
  • Привести команды vim, которой можно в файле изменить одну строку на другую
  • Тест на знание базовых команд vim.

Модуль 4 — Написание bash-скриптов
Научитесь писать bash-скрипты с циклами и условиями.

Теория:

  • Условия и циклы в bash
  • Как писать однострочники
  • Как писать файлы сценариев bash

Практика:

  • Написать bash-однострочник, который парсит большой файл
  • Написать bash-скрипт, который парсит логи Nginx в удобный вид.

Модуль 5 — Системные сервисы
Вы узнаете, как работают сервисы в Linux и как создавать свои. Разберёте, чем отличается Systemd от SysV/OpenRC, и поймёте, что лучше использовать в конкретной ситуации. Научитесь пользоваться crond и systemd.timer.

Теория:

  • Systemd (приоритетно) и SysV
  • Добавление сервисов в автозагрузку
  • Просмотр списка сервисов, получение их статуса
  • Crond
  • systemd. timer

Практика:

  • Создать простой сервис, запускающий в фоне программу
  • Создать systemd. timer задание, которое будет парсить логи Nginx раз в минуту и сохранять в файл.

Модуль 6 — Безопасность
Вы научитесь настраивать безопасность на уровне ОС и сети, разберётесь в основных принципах.

Теория:

  • SElinux (AppArmor)
  • iptables/firewalld/(ufw)
  • PAM
  • SSH и безопасность, двухфакторная аутентификация

Практика:

  • Выполнить задания на стенде — настроить безопасность.

Модуль 7 — Мониторинг и логирование
Вы узнаете, как получить логи на уровне системы, как посмотреть мониторинг ресурсов на уровне системы, как системы мониторинга есть и как они работают.

Теория:

  • journalctl
  • /var/log
  • top/htop/atop

Практика:

  • Посчитать количество запросов на Nginx по времени.

Модуль 8 — Работа с systemd-nspawn cgroups
Вы научитесь создавать systemd-контейнеры, узнаете, зачем они нужны и как работают.

Теория:

  • Создание контейнеров
  • Ограничение ресурсов

Практика:

  • Развернуть 2 nspawn-контейнера и запустить в них Nginx.

Модуль 9 — Отладка
Вы научитесь определять неполадки в ПО, запущенном на сервере. Изучите принципы работы бекапов: что нужно бекапить и зачем нужны бекапы.

Теория:

  • gdb
  • strace
  • сетевые неполадки (tcpdump) / wireshark

Практика:

  • Запустить на стенде программу с проблемой. Задача студента — определить проблему.