Курс обучения DevOps

Logo

Каждая тема включает в себя теоретические знания, вопросы к ним и практические задания

Вернуться к главной странице, списку всех тем

1. Linux, Bash-скрипты и текстовые редакторы

IT — это работа с информацией: её хранение, изменение, извлечение пользы или распространение, а помогают нам в этом программы – это инструменты, которые принимают данные (вход), обрабатывают их и выдают результат (выход)

Вот несколько примеров программ:

По своей сути все сайты, банки, игры — это набор таких маленьких приложений, которые каждое делают свою функцию (вам не нужно держать в голове всю картину их взаимодействия)

Программы появляются в результате этапов:

  1. Анализ требований — бизнес говорит образно какая ему нужна программа, сайт или сервис
  2. Проектирование — архитектор проектирует, как всё будет работать
  3. Написание кода — разработчики создают программы
  4. Тестирование — тестировщики, еще называют их QA, проверяют, что все программы работают вместе как нужно
  5. Внедрение и поддержка — инженеры мониторинга смотрят, чтобы программы не ломались, инженеры SRE чинят программы в случае поломки

DevOps способствует автоматизации с 3-го по 5-й этапов, что, в свою очередь, ускоряет и упрощает процесс создания и поддержки программ. О том, как именно это происходит и какие инструменты для этого используются, мы узнаем позже. Кроме того, DevOps улучшает взаимодействие между теми, кто проектирует, пишет код и тестирует программы

Подготовка места для запуска программ, Linux

Сервера, на которых мы будем запускать программы, работают на ядре Linux. Это такая специальная программа, которую устанавливают на сервер в первую очередь. Она помогает нашим программам общаться с «железками» компьютера при помощи драйверов (программа, в которой описано, как общаться с тем или иным устройством). Например, она объясняет нашей программе, как записывать данные на диск или выводить картинку на экране

Основные «железные» ресурсы сервера, с которыми работают наши программы:

Уроки для просмотра и конспектирования

  1. Уроки с 3-го по 20-й - 4 часа
  2. Уроки с 3-го по 5-й - 1 час

Начало работы в IT

  1. У вас должен быть ноутбук с Ubuntu или если у вас Windows, установите WSL и Ubuntu
  2. Установить Visual Studio Code и запустить, посмотреть как выглядит. Эта программа нужна для редактирования файлов конфигурации или написания кода, в ней очень удобно работать если ты IT специалист
  3. Установить Яндекс Браузер — в этом браузере есть инструменты, которые упростят нам работу, например, исправление ошибок в выделенном тексте
  4. Установить и не трогать, они нам понадобятся в будущем: Docker Desktop и Lens
  5. Активно начать пользоваться ботом: GigaChat который ответит на любые вопросы (например спросите у него Расскажи как ребенку, зачем DevOps нужен Kubernetes)
  6. Зарегистрироваться на сайтах:
    • GitHub - Сайт, на котором множество разработчиков размещают бесплатно код своих программ или, например, размещен этот курс
    • Habr - Русскоязычный сайт с кучей статей по DevOps, разработке и автоматизации

Задание к уроку - сделать скриншоты или записать результат вывода комманд

Знакомство с Linux и его терминалом — это то самое черное окно, в котором пишут хакеры и через которое ты можешь отдавать команды (что сделать) системе

  1. Что такое sudo, как используется?
  2. Как сделать так, чтобы при выполнении команды sudo у нас не спрашивался каждый раз пароль?
  3. Что такое systemd-сервис?
  4. Как проверить состояние systemd-сервиса?
  5. Что такое сокет?
  6. Какие есть kill-сигналы?
  7. Как завершить запущенный процесс в Linux?
  8. Что такое ядро Linux, из чего состоит?
  9. Что такое системные вызовы?
  10. Перейди в /tmp директорию.
  11. Вернитесь обратно в директорию, в которой были первоначально.
  12. Перейди в домашнюю директорию пользователя.
  13. Перейди в вышестоящую директорию.
  14. Перейди в корень (что такое корень?).
  15. Выполни команду cd ~, куда вы попали?
  16. Выведи на экран полный путь к директории, где ты сейчас находишься.
  17. Создай два файла с именами config и binary.
  18. Создай директорию app.
  19. Перемести файлы config и binary в директорию app.
  20. Создай в директории app подпапки temp/info/users одной командой.
  21. Вернись на директорию выше и удали директорию app.
  22. Объяснить, какие данные будут выведены на экран в команде top.
  23. Какой командой можно посмотреть использование оперативной памяти?
  24. Посмотреть, сколько места занято на диске / и насколько он нагружен.
  25. Выполните команду uptime, что такое load average?
  26. Какие основные директории есть в / «корне»?
  27. Чем отличается директория /proc от остальных директорий?
  28. В чём разница между файлами JSON и YAML?
  29. Что такое разметка Markdown и для чего она используется?
  30. Как заменить одно слово на другое в файле?

Установка и обновление программ в Linux

  1. Как обновить уже установленные программы с помощью apt?
  2. Установить git, htop, curl, nano, jq и проверить работоспособность каждой из них, запустив ее из терминала

Создание скрипта для перезаписи времени и даты в файле на текущее каждую минуту

Создайте скрипт, который будет записывать в файл current_time.txt текущую дату и время. Запускайте скрипт каждую 1 минуту с помощью crontab

Работа с фоновыми процессами (демонами) в linux

  1. Выполните команду systemctl list-units --type=service и выберите любой сервис (они все работают в фоне), узнайте, что он делает
  2. Найдите информацию о том, что такое SSH и какую роль играют клиент и сервер
  3. Установите OpenSSH Сервер себе на компьютер
  4. После установки убедитесь, что сервер работает в фоне, и перезапустите его через systemctl команду

Текстовые редакторы, создание, просмотр и редактирование файла

  1. Создайте файл text.txt. Запишите в него Hello world с помощью команды nano
  2. Вывести все имена файлов из папки /etc, в содержимом которых есть имя вашего пользователя
  3. Как вывести количество строк, которые чаще всего повторяются в файле?
  4. Как в большом текстовом файле вывести первые 10 строк или последние 10?

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

  1. Создать скрипт, который:
    1. Может запускать только текущий пользователь
    2. Установит через apt (только если еще не установлены):
      • curl — выполнять HTTP-запросы
      • git — система для контроля за версиями, может заливать их в публичный репозиторий
      • jq — для работы с файлами JSON, чтобы удобно искать в них или отображать