Linux DevOps Tutorial для новичков

В IT-направлении навыки работы с консолью Linux ー базовое требование для работы с большинством технологий. Чтобы начать развиваться в DevOps, новичку обязательно уметь работать на Unix-ядре ー скорее всего, большинство рабочих задач вы будете выполнять на этом сервере. 

В свою очередь, Linux для DevOps ー абсолютный мастхэв. И Junior System Administrator, и Junior Software Developer (равно как и специалисты Middle и Senior), которые приходят в девопс, работают на этой ОС. К примеру, установка и настройка сервера входит в функциональные обязанности Junior System Administrator, который легко может вырасти до девопса. Связь между DevOps и Linux довольно тесная, поэтому мы подготовили краткий Linux DevOps Tutorial для начинающих специалистов Linux и DevOps engineer.

Дистрибутивы и Linux Shell

Linux превалирует на большинстве встроенных систем, серверов и облаков, кроме десктопов и мейнфреймов. Экосистема продолжает расти благодаря свободным лицензиям, а также высокому уровню защиты локальных систем. А DevOps с хорошими навыками программирования может даже пофиксить код программы.

Дистрибутивы

Дистрибутив ー своеобразный установочный пакет для развертывания ОС Линукс на пользовательском оборудовании. Включает в себя ядро, утилиты GNU, специально настроенные программы, диспетчер пакетов. 

У Линукс есть более шестисот разных дистрибутивов. Наиболее популярные ー Debian, openSUSE, Arch, RHEL, SLED, Fedora, Ubuntu, Calculate, NixOS, Gentoo. Или, к примеру, дистрибутив от компании Red Hat Red. 

В некоторых идет упор на корпоративную инфраструктуру, другие берут универсальностью или, наоборот, узкой специализацией для рабочих станций, роботов, медиацентров. И сетевой администратор, и SRE, и DevOps Engineer выбирают подходящий дистрибутив для своих рабочих задач.

Что такое Linux Shell?

Для связи user и системы нужен программный интерфейс, уровень, обеспечивающий ввод команд и parameters ー shell (или оболочка). Самые популярные оболочки: sh (Bourne shell), bash (Bourne Again), ksh ー Korn shell, csh (синтаксис C programming language), tcsh (версия C shell). Можно использовать несколько shell для отдельных пользователей. Чтобы проверить оболочку, выполняем одну из команд:
echo $SHELL
echo $0
ps -ef | grep $ | grep -v grep
Легче запомнить, что Shell ー та же CLI, командная строка, консоль или терминал. Это более привычные термины, которые можно услышать от коллег.

Linux Best Practices

Линукс ー мощная, гибкая и максимально функциональная ОС, которую можно адаптировать для множества задач в разработке. Работа на Unix-ядре и применение Linux Best Practices будут вашей основой для развития в DevOps или другом IT-направлении. Делимся некоторыми Linux Best Practices, которые пригодятся начинающему специалисту.

Backups. В вашей зоне ответственности определить, как часто вы будете делать бэкап и каким способом. Можно бэкапить важные файлы на файловом сервере или локальных дисках. Храните энергонезависимые файлы не на машине, а на любом цифровом носителе с копией на диске компьютера. 

Security. Если нет необходимости в использовании SSH-соединения, отключайте его. Рекомендуем отключить SSH для входа через root. Эта учетка самая уязвимая, поэтому обезопасьте ее от внешнего доступа. 

Firewall. Убедитесь, что в системе есть Firewall. Для большинства дистрибутивов Линукс используют iptables. Не разрешайте соединение с неизвестными источниками. 

Учетные записи. Для учетной записи root установите сложный пароль, не менее 10 символов. Для администрирования используйте только root user через команду su к root. Минимум раз в год удаляйте или закрывайте неиспользуемые учетные записи и меняйте пароли для активных пользователей.

Следите за обновлениями. Подпишитесь на рассылки поставщиков ПО, которое используете. Следите за изменениями в правилах безопасности, версионности и рекомендациями по усилению секьюрности.

Linux From Scratch

Не можем не упомянуть о книге Герарда Бикманса Linux From Scratch, которая заинтересует более опытных пользователей. Автор рассказывает, как собрать свой дистрибутив на Линукс. Это пошаговая инструкция сборки собственного дистрибутива с нуля. 

Вы сможете создать свою систему, избавившись от зависимостей, оптимизировав ее под процессор и выбрав нужные компоненты. 

Также узнаете о принципах работы ядра Unix, что будет полезно для наращивания опыта. Раз в полгода выходят обновления ー автор рекомендует периодически заглядывать на официальный сайт проекта.

Linux в работе DevOps

У современного Линукс и DevOps много общего ー они ориентированы на масштабируемость, функциональность, расширение возможностей и постоянные улучшения. Если вы решили развиваться в DevOps, умение работать с этой операционной системой обязательно. Рекомендуем начать с Linux Tutorials на официальном сайте проекта.

Кроме работы с парой дистрибутивов, начните изучение основ networking, комбинации Linux/Windows, принципов работы web servers (NGINX, Apache), настройки DNS и MySQL серверов. Научившись свободно работать в Линукс, можете переходить к изучению DevOps практик и освоению Linux DevOps commands. Потому что Linux — лучшая ОС для DevOps.

Знание ядра Unix ー требование для развития практически в любой технологии. Сильные навыки работы с Линукс ー база роста в том числе и для DevOps. DevOps инженер должен иметь понимание хотя бы пары дистрибутивов Линукса и уметь выбрать удобный для своих рабочих задач. Неплохо уметь администрировать Unix-подобные системы, если этот стек в работе превалирующий. Невозможно навязать DevOps инженеру работу на конкретной ОС, но умение работать с разными технологиям ー несомненный плюс для высококлассного специалиста.

Начинающему девопсу нужно, как минимум, иметь навыки работы с терминалом. С каким дистрибутивом работать особо не имеет значения, главное со свежей версией. Попробуйте разобраться с работой ядра, например, пройдитесь по «Linux from Scratch». Узнав, что происходит в самом «центре Вселенной», вам будет проще разобраться с администрированием операционки и скриптами ー эти требования часто встречаются в вакансии DevOps

Все современные проекты используют базы данных, поэтому DevOps обязательно с ними столкнется. Точнее, без умения работать с базами данных в DevOps не пустят. Можно пройти базовый курс по работе с databases, или открыть документацию PostgreSQL и самостоятельно осваивать этот путь. Научитесь писать запросы SQL, разберитесь с index и explain, пройдитесь по NoSQL-решениям. Выучите, как создавать бэкапы и настраивать репликацию. 

В DevOps приходят не только из эксплуатации, поэтому разработчикам полезно разобраться с сетями перед освоением девопс-философии. Без понимания работы сети сложно разрабатывать онлайн-сервисы. Будущему девопсу потребуется изучить основы работы TCP/UDP, IP и протоколов, к примеру, HTTP. Почувствовать себя сетевым инженером поможет, например, GNS3. Изучайте, пробуйте настраивать сетевое оборудование и наращивайте опыт, столь необходимый девопсу.

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

Часто девопсы проводят паралель между Linux и DevOps ー в обоих случаях превалирует гибкость, адаптивность и широкий выбор инструментов. В современном IT-мире сложно представить технологию, в которой не столкнешься с этой операционкой. Есть исследования Linux Foundation и Redhat, что около 90% рабочих процессов в публичном облаке обрабатываются на этом ядре. Пингвин популярен в корпоративном секторе, где поддерживается и развивается философия DevOps.

Если вы решили стать DevOps-инженером, работать с Линукс ー это must have. Хорошему специалисту нужно как минимум работать в терминале, разбираться, какой дистрибутив лучше всего подходит для его рабочих задач, и не помешает покопаться в самом ядре. Это поможет понять суть работы операционной системы, что, в свою очередь, даст ответы на многие неочевидные вещи в работе Development & Operations.

Для работы с сервисами AWS разработана Amazon Linux 2 ー операционная система для работы с Amazon Web Services. В системе доступна среда приложений с доступом к последним инновациям экосистемы. Преимуществом будет безопасность, стабильная, высокопроизводительная работа, что идеально для облачных приложений в корпоративном секторе. Есть Amazon Linux AMI ー образ для использования в EC2 (Amazon Elastic Compute Cloud). Amazon Linux AMI обеспечивает простую интеграцию с AWS и доступ к библиотекам и инструментам Amazon Web Services.

error: Контент защищен.