Каталог статей

Как изучить Linux Shell Scripting для DevOps?

Как изучить Linux Shell Scripting для DevOps?

Для начинающих инженеров DevOps очень важно знать shell Scripting или bash scripting. В этом руководстве по shell-сценариям для DevOps я поделюсь своими советами и ресурсами для правильного изучения shell-сценариев Linux.

Я уже говорил о важности shell-сценариев в своем руководстве “Как стать инженером DevOps”. Это руководство предназначено для тех, кто хочет изучить shell-сценарии правильным способом, который может помочь вам в повседневной работе и на собеседованиях DevOps. Очень важно иметь терпение и дисциплину в процессе обучения.

Если вы тот, кто хочет просто добиться результата, то Google и Stackoverflow более чем достаточно .

Вот что мы рассмотрим в этом блоге.

Оглавление

Shell Scripting для DevOps

Первый вопрос, который может возникнуть у вас, – насколько важны сценарии оболочки для инженера DevOps? Я получал этот вопрос как от новичков, так и от опытных ИТ-специалистов.

Ответ таков: это очень важно. На следующем изображении показан опрос Stackoverflow 2021, где 27% респондентов ответили, что используют shell-сценарии.

Но чаще всего меня спрашивают, мол, сейчас существует множество инструментов автоматизации, нужно ли нам все еще изучать и писать shell-сценарии? Ответ – да. Мы больше не создаем сценарии оболочки для полноценной автоматизации, но мы используем сценарии вместе со средствами автоматизации и для специальных задач.

Например, если вы используете опцию AWS user data, есть вероятность, что вы будете использовать сценарий оболочки внутри нее. Другой пример – при создании образов AMI с помощью упаковщика вы в конечном итоге будете использовать сценарий оболочки для конфигурации AMI. Кроме того, у меня были случаи, когда мне приходилось использовать сценарии оболочки с инструментами управления конфигурацией, контейнерами и т.д. Подробнее об этом мы поговорим в следующих разделах.

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

Самое главное, что практическое выполнение сценариев и программирование становятся обязательными в предварительных раундах собеседования на DevOps-интервью. Поэтому это еще одна важная причина, по которой вам следует изучить shell scripting.

Как начать работу с Shell Scripting?

Необходимым условием для начала работы с shell-сценариями является практический опыт работы с Linux. Поэтому, прежде чем приступить к изучению shell-сценариев, вы должны уметь работать с командами Linux.

Если вы совсем новичок в мире Linux, вы можете начать с создания нескольких Linux-серверов локально с помощью Vagrant или на облачных платформах, таких как AWS, Google Cloud и др. Каждая платформа предлагает бесплатные кредиты для новичков. Вы также можете воспользоваться бесплатным кредитом в 100 долларов от Digital Ocean. Начать работу не составит труда.

Если вам кажется, что вы хорошо знакомы с Linux, вы можете начать с базовых учебников по Shell scripting. Кроме того, я хочу, чтобы вы сделали следующее.

Создайте репозиторий на Github, создайте папки для каждой изучаемой концепции и зафиксируйте все свои рабочие скрипты. Неважно, доступен ли сценарий в Интернете. Создайте собственную документацию. В разделе README вы можете добавить ссылки и ссылки на веб-сайты/блоги. По окончании обучения вы можете поделиться им на Linkedin. Поверьте, это поможет вам сохранить знания и поможет другим.

Какие лучшие бесплатные ресурсы для изучения Shell Scripting?

Вам не нужно платить за дорогие курсы, чтобы изучить shell scripting в Linux. Существует слишком много маркетинга вокруг курсов, которые обещают сделать из вас ниндзя в области сценариев оболочки DevOps. Однако я не имею ничего против курсов; если вам удобно учиться на платных курсах, соглашайтесь. Я также добавлю эти ресурсы.

Я перечислил лучшие бесплатные ресурсы по shell-сценариям, чтобы вы могли начать. Просмотрите все ресурсы по одному разу, выберите один ресурс, с которым вам удобно работать, и пройдите материал от начала до конца. Как я уже говорил, освоение технологий требует терпения и дисциплины.

Далее следуют бесплатные ресурсы. Здесь есть веб-контент, интерактивные учебники, бесплатные курсы и материалы в формате pdf.

    [Web] [Web] [Web] [Web] [Web] [Web] [Udemy] [PDF] [Web] [Web] [PDF] [PDF] [PDF] [PDF].

Но если вы скажете: “Эй, я человек, который любит курсы с руководством”, то вот несколько моих рекомендаций.

    – Образовательный – Pluralsight – Pluralsight

Реальные примеры использования Shell Scripting в реальном мире

Предположим, что вы изучили все концепции сценариев оболочки и, возможно, написали и выполнили сценарии оболочки в учебных целях. Следующий вопрос, который может возникнуть у любого, – как изучить реальные примеры использования shell-сценариев?

Если вы работаете в компании, вы можете найти проектную документацию и коды автоматизации инфраструктуры, где существующие проекты используют shell-сценарии.

Если у вас нет доступа к проектной документации и коду, вот что вы можете сделать.

Найдите на Github репозиторий наиболее распространенных базовых образов docker, например, базовый образ Nginx.

Там вы найдете папку entrypoint с несколькими скриптами или файл скрипта entrypoint.sh. Вот пример с nginx

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

Это не ограничивается только репозиториями Docker, вы можете найти сценарии во многих репозиториях сообщества с открытым исходным кодом.

Shell Scripting в реальном времени

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

  1. Напишите функцию сценария оболочки для поиска и уничтожения всех зомби-процессов.
  2. Найти первые 10 самых больших файлов в файловой системе и записать вывод в файл.
  3. Shell-скрипт для изящного размонтирования диска.
  4. shell-скрипт для отправки электронной почты
  5. Shell-скрипт для мониторинга использования процессора, памяти и диска и отправки результатов в файл в формате таблицы.
  6. Shell-скрипт для поиска созданных файлов и их размеров. Он должен принимать количество дней в качестве входных данных. Или формат даты от и до в качестве входных данных.
  7. Написать сценарий оболочки для составления списка пользователей, вошедших в систему по дате, и записи его в выходной файл.
  8. Shell-скрипт для рекурсивного копирования файлов на удаленные хосты
  9. Shell-скрипт, отображающий количество неудачных попыток входа в систему по IP-адресу и местоположению.
  10. Shell-сценарий для разбора файла журнала и пересылки определенного значения с меткой времени в выходной файл.

Убедитесь, что вы включили следующие понятия в сценарии оболочки, которые вы пишете.

  1. определения переменных
  2. Использование cut, awk и grep
  3. Обработка перенаправления ввода/вывода/ошибок.
  4. Условия/операторы If else
  5. Скрипты с оператором Case
  6. Циклы (For/Do-While)
  7. Статус существования
  8. Аргументы командной строки

Языки сценариев оболочки

Прежде всего, не существует специальных языков сценариев оболочки. Когда речь идет о shell-сценариях, подразумеваются sh, bash, csh, tcsh. Здесь мы в первую очередь говорим о shell-сценариях bash. Bash – это интерпретируемый язык сценариев для систем на базе Unix.

Сценарий оболочки – это компьютерная программа, предназначенная для выполнения интерпретатором командной строки – оболочкой Unix.

Википедия

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

Вопросы для собеседования по Shell Scripting DevOps

Вопросы на собеседовании по Shell scripting DevOps отличаются в зависимости от компании.

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

В настоящее время большинство компаний предоставляют такие платформы, как Hackerank, для проверки ваших навыков написания сценариев. Поэтому необходимо практиковаться в написании сценариев shell для решения проблем.

Ниже приведены некоторые вопросы по shell-скриптам для интервью DevOps.

  1. Shell-скрипт для обратного преобразования строки
  2. Разобрать журнал в нужном формате и найти все вхождения слова
  3. Скрипт оболочки для отправки первых десяти строк файла в другой файл.
  4. Слияние (контаминация) двух файлов и запись вывода в третий файл.
  5. Найти все дубликаты строк в файле и заменить их на другие строки
  6. Найти все IP-адреса из лог-файла и записать их в другой файл.

В ближайшее время я дополню этот список более общими вопросами для интервью.

Часто задаваемые вопросы по Shell Scripting

Ниже приведены некоторые из часто задаваемых вопросов по shell-сценариям начинающими инженерами DevOps.

Насколько сложно изучить shell-сценарии Linux?

Изучение shell-сценариев похоже на изучение любой другой технологии. Если у вас есть хорошие базовые знания Linux, вы сможете легко изучить shell-сценарии, если будете следовать дисциплинированному пути обучения.

Требуются ли сценарии для инженеров DevOps?

Да. Знание сценариев очень важно для инженера DevOps. Для среды разработки и производства инженеру DevOps, возможно, придется создавать полезные утилиты с помощью сценариев.

Какой язык сценариев лучше всего подходит для DevOps?

Это зависит от проекта. Но Bash, Powershell и python – это наиболее часто используемые языки сценариев в проектах DevOps. Groovy необходим, если проект использует Jenkins.

Используется ли Shell Scripting для автоматизации?

С появлением многих инструментов DevOps отпала необходимость писать полноценную автоматизацию на shell-сценариях. Однако shell-сценарии используются как часть этих инструментов автоматизации для поддержки некоторых функций. Классическим примером может служить использование shell-сценариев в Hasicorp Packer для создания образов виртуальных машин.

Заключение

Надеюсь, вам понравилось это руководство по изучению Shell-сценариев для инженеров DevOps.

Теперь я хотел бы услышать от вас: Какой метод или ресурс из сегодняшнего руководства вы собираетесь опробовать первым?

Начнете ли вы с основ Linux? Или сфокусируетесь на вопросах, задаваемых на собеседовании

Exit mobile version