fbpx

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

Каталог статей для размещения статей информационного характера

Как выучить

Как изучить 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? Или сфокусируетесь на вопросах, задаваемых на собеседовании

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *