ServerAdmin.ru
28.2K subscribers
248 photos
32 videos
10 files
2.58K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​🎓 Предлагаю вашему вниманию немного необычную тему для обучения: Основы документирования сетей с помощью серии бесплатных уроков на youtube. Документированию уделяется очень мало внимания в современных курсах. Я, к примеру, вообще ничего подобного не видел ни в одном из курсов по разным направлениям, которые проходил. Будь то сети или администрирование. Каждый рисует схемы как считает правильным и нужным.

Курс будет полезен следующим категориям:
Сетевые инженеры, администраторы
Системные администраторы, девопсы
Проектировщики

Умение качественно документировать свою работу очень важно, хотя это не всем очевидно. Помню, как мне один директор показал документацию от одного из ушедших админов. Я сразу оценил уровень специалиста. Собственно, как и директор. Он хорошо понимал, что это очень ценный кадр, поэтому и привёл его в пример.

📌 Список уроков курса:

Введение
Чем рисовать? Visio
Чем рисовать? Diagrams.net
Структурная схема сети
L3 схема сети
L2 схема сети
Расположение оборудования в стойке
IP-план
Описание настроек
Заключение

▶️ https://www.youtube.com/playlist?list=PLcDkQ2Au8aVPmWZ2vXcby73Tl8SA7fp97

#обучение #бесплатно
​​🎓 У компании RedHat есть большое количество бесплатного обучающего материала в том числе в виде интерактивных уроков, где они воспроизводят полностью рабочую среду разработчика или devops инженера. Живёт всё это тут:

https://developers.redhat.com/learn

Интерактивные уроки в самом низу страницы (All interactive lessons). Для прохождения достаточно обычной учётной записи. Я, вроде бы, как developer зарегистрирован. Уже не помню точно, давно дело было. Никаких санкций и ограничений RedHat не вводил. У меня и учётка жива, хотя там указано, что я живу в Москве, и все бесплатные лицензии, что они дают, активны.

Напомню, что они всем выдают 16 лицензий на RHEL. Я одну систему погонял на тесте и удалил за ненадобностью. Очевидно, что пользоваться сейчас этой лицензией плохая идея. Но если вам хочется посмотреть, что это за система, у которой столько форков, то никаких проблем. Регистрируйтесь, получайте лицензии, устанавливайте и смотрите. Единственное, что особенно понравилось - там красивое брендирование оболочки, если будете её ставить. Стильно выглядит окружение.

Я прошёл один из уроков под названием DevOps and CI/CD with automation controller. Сделано прикольно. Для вас готовят отдельный стенд в браузере, где в виде отдельных вкладок реализован интерфейс VSCode, Jenkins, Gitea, Ansible Automation controller. И вам по шагам предлагают выполнить деплой условного приложения, работая в этих системах.

Обучением это можно назвать с натяжкой, потому что думать не надо. Все шаги расписаны и показаны, вам надо повторить. Так что это скорее развлечение и возможность посмотреть настоящее рабочее окружение для решения какой-то задачи.

Уроков там много, разбиты на категории (Devops, Linux, GitOps и т.д.) Вот пример некоторых уроков по Devops:
DevOps and CI/CD with automation controller
Build applications into container images
Installing Software using Package Managers
Linux commands for beginners
Run your first Ansible Playbook
Deploy containers with Podman
и т.д.

#обучение #бесплатно
​​Давно не затрагивал игровые или детские темы. Решил немного посмотреть, не появилось ли чего-то нового. А оно появилось. Я уже рассказывал про компанию Luden.io, у которой очень классные игры для детей на русском языке с уклоном в обучение программированию. Да и не только для детей. Игры реально классные, красочные, увлекательные. Прочитайте мою заметку, там много информации.

У них появилась новая игра Craftomation 101. Она ещё не полностью доделана, но вполне играбельна. Можно бесплатно скачать и поиграть. По ссылке в конце дистрибутив под Windows, Linux, Mac. На винду установка не требуется. Просто скачиваете и играете. Можно выбрать русский язык в настройках. Перевод качественный, так как создатели русскоязычные.

Я немного поиграл, примерно час. Дошёл до появления роботов и их программирования. Запрограммировал их на выполнения некоторых действий. Игра реально красивая и увлекательная. Интересно и самому поиграть. Показал сыну (9 лет), сразу заинтересовался. Поиграл немного, научился роботов программировать. Сразу всех задействовал, автоматизировал рутину. В общем, ничего так игра, рекомендую.

Напомню, что у меня есть подборка обучающих материалов для детей, которую я собрал на основе ваших отзывов.

#игра #обучение #дети
​​🎓 На днях на хабре был анонс на вид очень неплохого учебника для тестировщика под названием "The 100-Year QA-Textbook". Он собрал много просмотров, так что возможно многие из вас про него уже знают. К тому же предварительный релиз этого обучающего материала был давно, а сейчас вышло очередное обновление.

Вот информация о курсе от создателей:

Зачем появился бесплатный интерактивный «100-Year QA-textbook» на 700+ страниц для обучающихся тестированию

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

На вид материал выглядит качественным. Несмотря на то, что он анонсирован для тестировщиков, 2/3 курса это база, которая подойдёт для любой специальности в IT. Судя по содержанию это так и есть, потому что там разбирают:
СУБД и SQL запросы
База по ОС Linux (файловые системы, пользователи, процессы и т.д.)
Работа с сетью
Архитектура серверного ПО
Rest API, HTTP
Docker, GIT

К сожалению, не смог посмотреть раздел по Linux, потому что курс даёт возможность проходить материал последовательно. Пока не пройдёшь тест за предыдущий раздел, к следующему доступа нет.

Как я понял, курс сделан на базе онлайн школы тестировщиков. У меня есть любопытная история на этот счёт и общее мнение насчёт тестировщиков. Но чтобы не смешивать тематику, это будет вечером в отдельной публикации.

#обучение #бесплатно
​​🎓 Сегодня пятница, а пятница — это почти выходной, когда уже не хочется заниматься делами. Лучше это время потратить с пользой и заняться самообразованием. А в этом нам может помочь набор TUI программ для обучения в консоли.

https://github.com/learnbyexample/TUI-apps

Их тут несколько, и я начал с того, что мне показалось наиболее полезным - Linux CLI Text Processing Exercises. Это простенькая оболочка с вопросами на тему обработки текстовых файлов консольными утилитами в Linux. Поставил по инструкции:

# python3 -m venv textual_apps
# cd textual_apps
# source bin/activate
# pip install cliexercises
# cliexercises

Запускаю, первый же вопрос:
Display the first 5 lines for the input file ip.txt.
Для меня это просто. Отвечаю:
head -n 5 ip.txt
Ответ правильный и мне предлагают ещё вариант:
sed '5q' ip.txt
С sed часто работаю, но не знал, что с его помощью можно так просто вывести первые 5 строк. Записал сразу себе в шпаргалку.

Следующий вопрос посложнее, но тоже в целом простой:
Display except the first 5 lines for the input blocks.txt.
Выводим всё, кроме первых 5-ти строк:
tail -n +5 blocks.txt
Я ошибся и срезал только 4 строки. Поправился:
tail -n +6 blocks.txt
Утилита подтвердила, что мой вариант правильный. Честно говоря, я думал, что вряд ли в ней будет вариант с tail, поэтому взял именно его. Но она в виде правильных вариантов предложила как раз с tail и ещё с sed:
sed '1,5d' blocks.txt
Тоже сразу записал в шпаргалку. Решил ещё проверить вариант с awk. Я думал, что именно он и будет предложен, так как первый пришёл в голову:
awk 'NR>5' blocks.txt
Тоже помечен, как правильный. Возможно программа проверяет вывод, используя все доступные системные утилиты, так что правильным будет даже тот вариант, что отсутствует в её базе.

Таких заданий тут много. Конкретно в этой программе 68. Проходить увлекательно и полезно, так что рекомендую для самообразования и пополнения своей коллекции bash костылей. Можно в исходниках сразу всё посмотреть, но не рекомендую. Так ничего не запомнится. А если самому подумать, то лучше отложится в голове.

Вот примерчик из того, что будет ближе к концу:
From blocks.txt extract only the 3rd block. A line containing %=%= determines the start of a block.
То есть файл разделён на блоки, а разделитель блоков - символы %=%=, надо вывести 3-й блок. Для меня это уже сложно, чтобы что-то сходу придумать. Вот решение:
awk '$0 == \"%=%=\"{c++} c==3' blocks.txt

#обучение #terminal #bash
​​🎓 На прошлой неделе я рассказывал про репозиторий с обучающими TUI программами с популярными консольными утилитами. Хочу обратить внимание на тренажёр по awk. Я там увидел много полезных примеров с возможностями awk, про которые я даже не знал.

https://github.com/learnbyexample/TUI-apps/tree/main/AwkExercises

Например, я никогда не использовал awk для того, чтобы вывести строки с определёнными символами. Обычно использовал для этого grep, а потом передавал вывод в awk. Хотя в этом нет никакой необходимости. Awk сам умеет это делать:

# grep 'word' file.txt
# awk '/word/' file.txt

Команды делают одно и то же. Выводят строки со словом word. Понятно, что если задача стоит только в этом, то grep использовать проще. Но если нужна дальнейшая обработка, то уже не так однозначно. Например, нам надо вывести только первый столбец в строках со словом word.

# grep 'word' file.txt | awk '{print $1}'
# awk '/word/{print $1}' file.txt

Тут с awk уже явно удобнее будет. Ну и так далее. В программе много актуальных примеров обработки текста с awk, которые стоит посмотреть и какие-то записать к себе.

Например, поставить символ . (точка) в конце каждой строки:

# awk '{print $0 "."}' file.txt

Я не понял логику этой конструкции, но работает, проверил. На основе этого примера сделал свой, когда в начало каждой строки ставится знак комментария:

# awk '{print "#" $0}' file.txt

Это хороший пример, который можно совместить с выборкой по строкам и закомментировать что-то конкретное. Чаще для этого используют sed, но мне кажется, что с awk как-то проще и понятнее получается:

# awk '/word/{print "#" $0}' file.txt

Закомментировали строку со словом word. Удобно комментировать какие-то параметры в конфигурационных файлах.

#обучение #bash
​​🎓 По компьютерным сетям есть отличный курс "Компьютерные сети", Климанов М.М. от МФТИ (Московский физико-технический институт):
https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
Я уже упоминал про него ранее.

Есть не хуже, а может даже и лучше, если судить про просмотрам и активности в комментариях, курс "Компьютерные сети, учебный курс.", Созыкин Андрей:
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1

Там даётся база, азы сетей, поэтому заявлено, что он для программистов, так как сисадмины, по идее, и так должны всё это знать. Если не знаете, то этот курс вам отлично подойдёт. Для самообразования это будет базой для тех, кто не знаком с сетями. Сделан на основе классиков Таненбаум и Олиферы. Записан более 7-ми лет назад, но нисколько не потерял актуальность, так там база, практически неизменная с 80-х годов.

#обучение
У меня часто спрашивают, как начать свой путь в системном администрирование, или в IT в целом. Причём спрашивают очень разные люди. Это могут быть родственники или родители, чьи дети готовятся куда-то поступать после школы. Просят советы взрослые люди и начинающие специалисты. Если есть время, могу просто пообщаться и что-то рассказать. Были и платные консультации, когда мне сразу предлагали заплатить за содержательную беседу.

Последнее время всё больше понимаю, что я толком не знаю, что посоветовать. Я же не учитель, не коуч, не создатель курсов по развитию и т.д. Сам закончил институт 16 лет назад и не знаю, как сейчас преподают. Я просто системный администратор, который ведёт свой блог и иногда пишет тематические статьи. У меня нет каких-то системных знаний или исследований этого вопроса.

Условно я делю всех вопрошающих на 3 категории:
1️⃣ Старшеклассники.
2️⃣ Молодые специалисты после универа.
3️⃣ Люди 30-35+, пытающиеся войти в IT из другой специальности.

🟢 Несколько лет назад я написал статью для подростков: Куда поступить, чтобы выучиться на программиста или сисадмина. Я советовал сразу вкатываться в IT со школьной скамьи и идти в универ на заочку просто для корочки. Не уверен, что дал там подходящие советы, но на тот момент думал именно так. Более того, подтверждение своих советов позже увидел лично в одном знакомом школьнике, который после окончания 11-го класса уже фактически имел профессию программиста и мог зарабатывать наравне со своими родителями. И он не хотел идти в ВУЗ, чем очень расстраивал своего отца, который просил моего совета, как быть. Я успокоил и сказать, что у вас всё круто. Мало кому так повезло найти себя уже в школе. Так что со школьниками вопрос открыт. Сейчас есть крутые университеты, типа Иннополиса. Я бы хотел там отучиться, или отправить учиться детей, если захотят.

🟡 Для начинающих специалистов у меня обычно другой совет. Денег там чаще всего ещё нет, так что рекомендую устроиться хоть куда за любые деньги, лишь бы была практика. Браться за любую работу, пробовать. По ходу дела вникать в отрасль и решать, что тебе в ней больше нравится. Параллельно изучать бесплатные курсы, материалы, статьи, в общем, всё что есть по понравившейся теме. Семьи ещё нет, времени много. Например, можно бесплатно попасть в какой-то инкубатор или интенсив и ударно там потрудиться. Такие мероприятия обычно организуют крупные вендоры, типа Tinkoff или VK. Там же можно и предложение по работе получить. Тоже таких знаю.

🔴 Для третьей категории рекомендую ещё раз хорошо подумать и если решение твёрдое, то идти на какие-то курсы. Времени на самообразование обычно уже нет, да и голова после 30 начинает хуже соображать. Тут уже нет времени сидеть самому, вникать и тыкаться наугад. Надо, чтобы помогли. Да и деньги к этому времени уже хоть какие-то есть, так что можно себе позволить где-то отучиться. К тому же из-за возраста подход по-любому будет основательный и взвешенный. Есть мотивация, в том числе и финансовая. Больше посоветовать нечего. Если честно, я не знаю, как тут вырулить в итоге. Чем и как нужно впечатлить нанимателей, убедив их, что джун 35-ти лет хороший вариант для их вакансии, если там ещё 50 таких же, только 23-х летних после универа. Если у кого-то есть практические советы на этот счёт, то поделитесь своим мнением. Уверен, среди читателей есть люди, которые вкатились в IT после 30-ти.

Кстати, вот моя заметка про современные онлайн курсы.

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

#мысли #обучение
Решил собрать в единый список известные мне бесплатные курсы и материалы, которые можно посоветовать для базового изучения тем, кто хочет начать движение в сторону системного администрирования Linux и DevOps от простого к сложному.

🎓 Базовое администрирование Linux:
▪️ Основы GNU/Linux и подготовка к RHCSA — автор в качестве хобби создаёт хорошие курсы для новичков. Причём как в текстовом виде, так и в виде записанных уроков. Качество материала высокое.
▪️ Базовое администрирование Linux-серверов — бесплатный курс по основам от Слёрм.
▪️ Введение в Linux — большой и масштабный бесплатный курс по Linux на платформе Stepik.
▪️ Администрирование Linux — совместный курс в виде лекций на youtube от команды VK Team на базе МФТИ.
▪️ Администрирование базового уровня (LPIC-1) - курс на youtube от известного Семаева Кирилла, который к сожалению больше не в состоянии записывать курсы.

🎓 Сети:
▪️ Сети для самых маленьких — очень качественный, структурированный материал по сетям от самых основ до более сложных вещей. Написано, как я понимаю, энтузиастами-сетевиками из подкаста Linkmeup.
▪️ Компьютерные сети, Климанов М.М., Компьютерные сети, учебный курс, Созыкин Андрей — база по сетям от преподавателей МФТИ.
▪️ Основы документирования сетей — серия уроков на youtube по документированию сетей.

🎓 GIT:
▪️ Git для начинающих — бесплатный курс по основам от Слёрм.
▪️ Oh My Git! — одна из самых известных и популярных игр на тему изучения Git.

🎓 Базы данных:
▪️ Введение в базы данных - бесплатный курс на Stepik.
▪️ Интерактивный тренажер по SQL - тоже курс на Stepik.

🎓 DevOps:
▪️ 90DaysOfDevOps — сборник из 90 шагов, разбитых на 90 дней для развития в области DevOps. Язык материала - английский.
▪️ Как стать DevOps Инженером с Нуля, что учить и в каком порядке —интересное видео от человека, который вкатился в DevOps в 30+ лет. Рассказывает свой опыт.
▪️ Онлайн тренажёры от RedHat — интерактивные уроки, где воспроизводят полностью рабочую среду разработчика или devops инженера. 

🎓 Docker:
▪️ Основы Docker - хорошее обучающее видео по Docker для новичков.
▪️ Play-with-docker - онлайн тренажер для изучения Docker.

🎓 Kubernetes:
▪️ Полный видеокурс по Kubernetes из 22 обучающих уроков - там вообще всё от нуля до мониторинга и деплоя приложений.
▪️ Play-with-k8s - онлайн платформа для изучения Kubernetes.

Это всё, что нашёл более ли менее целостное и полезное. Если есть чем дополнить, поделитесь в комментариях. Я публикацию буду обновлять и в будущем ссылаться на неё.

#обучение #подборка
На днях перебирал свои старые записи, в которых собирал на мой взгляд полезную информацию. Нашёл реальный список вопросов на собеседовании Middle DevOps, который выложил человек после собеса. По сути они все админские. Сейчас админов не осталось, все девопсами стали.

Проверьте себя по списку. Очень кратко к каждому вопросу напишу ответ. Так или иначе ответы почти на все вопросы знал, но где-то точные формулировки не помнил, где-то конкретные названия забыл. Это не полный список из-за ограничение длины заметки.

Какие бывают системы инициализации в Linux. В чём преимущества наиболее популярной?

В прошлом популярны SysV и Upstart, сейчас - Systemd. Основные преимущества - гибкие настройки сервисов и интеграция с системными настройками и компонентами, единая система инициализации для всех популярных дистрибутивов.

Что такое systemd unit, для чего он нужен, в каком каталоге создают файлы юнитов?

Unit - объект systemd, который служит для описания запуска и работы сервиса. Обычно в /etc/systemd/system.

Какие потоки ввода/вывода существуют в Linux, их нумерация?

0 (stdin), 1 (stdout) и 2 (stderr)

Как перенаправить поток вывода ошибок в стандартный вывод, зачем это может пригодиться?

# command 2>&1
Пригодится, чтобы собрать в один лог файл и результаты работы команды, и ошибки.

Есть приложение, которое пишет лог-файл, он занял почти всё свободное место на диске. Приложение останавливать нельзя, каким образом правильно освободить место на диске?

Очистить лог, к примеру, с помощью truncate, или cat /dev/null > log_file не удаляя сам файл. Либо удалить/переместить лог и дать команду приложению на reload, если он подобное поддерживает. Например, nginx reload, kill -USR1 `cat /var/run/nginx.pid`, smb reload, postfix reload и т.д. Если что-то напутали, файл удалили, но место не освободилось, то смотрим удалённые файлы через lsof +L1 и удаляем окончательно.

Что такое файловый дескриптор?

Это число-идентификатор потока ввода/вывода, который связан с файлом. Процессы имеют свои таблицы файловых дескрипторов, с которыми работают. Для ввода/вывода данных процесс обращается к ядру через системный вызов, передавая номер дескриптора.

Какой утилитой можно посмотреть файлы связанные с определенным потоком ввода-вывода?

Если не ошибаюсь, то lsof. В данном случае не понимаю, что подразумевается под определённым потоком. Файловые дескрипторы процесса смотрим так: lsof -p <pid>

Что такое интернет сокет в Linux?

Абстракция в виде файла, которая позволяет двум процессам взаимодействовать друг с другом. Файл нужен как точка входа в сокет и инструмент управления доступом. Все данные хранятся и обрабатываются в памяти ядра напрямую.

Какая встроенная утилита есть в Linux для ротации логов, какой тип ротации бывает?

Logrotate. Ротация по размеру, по времени жизни файла. Если делаем ротацию по размеру, не забываем настроить частый запуск logrotate.

Как проверить доступность порта, слушает ли соединение сервер?

# ss -tulnp

Был ли опыт конфигурирования Nginx, почему его используют как точку входа перед Backend?

Используют для распределения соединений/нагрузки между бэкендами, для удобства управления и контроля за соединениями.

Можно ли удалить default.conf из Nginx, в чем его ключевая фишка?

Можно удалить. Там прописан параметр default_server, его можно перенести в другой виртуальный хост. С этим параметром он будет собирать все запросы по ip адресу и несуществующим доменам.

Где локально в Linux прописать соответствие IP - DNS, как это может помочь в отладке конфигурации Nginx?

В файле /etc/hosts. Как может помочь в отладке - не знаю. Иногда нужно на бэкенде прописать соответствие IP адреса бэкенда доменному имени сайта, чтобы некоторые запросы выполнялись локально, а не ходили на прокси.

В чем принципиальное отличие виртуализации от контейнеризации?

Виртуальная машина — полноценный экземпляр ОС со своим ядром. Контейнеры используют ядро хостовой машины.

Ответы писал сам. Если ошибся, прошу поправить.

#обучение