Parus16.ru

Парус №16
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Средства системного администратора Linux

Средства системного администратора Linux

Совсем недавно (5-8 лет назад) системный администратор Linux был ограничен в средствах администрирования и автоматизации. Где-то можно было обойтись самописными скриптами на bash, Python, Perl, а где-то уже требовалось решение уровня энтерпрайз от таких гигантов, как IBM, Oracle или RedHat.

С развитием Open Source стала развиваться и автоматизация в администрировании. На замену самописным скриптам и программам пришли готовые решения. Эти средства появились не на пустом месте. Это были решения по автоматизации существующих задач любого системного администратора. Зачастую это решения, развиваемые по принципу KISS (акроним для «Keep it simple, stupid»), которые получали большие перспективы развития и распространения.

Конечно, лет 5-10 назад средства централизованного администрирования в Windows были развиты лучше, чем в Linux. Это было небезосновательно, т.к. Windows был широко распространён как среди домашних пользователей, так и в офисной/серверной среде. Microsoft, похоже, не предполагала что когда-то будет соперничать с Linux в серверном сегменте. Но не будем здесь углубляться в эти застойные времена для Microsoft, когда главой корпорации был Стив Балмер.

Администрирование

Одним из часто используемых средств администрирования мною и коллегами до появления ansible/puppet/chef был cssh (Cluster SSH).

Скриншот работы cssh

Cluster SSH в работе

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

Sportmaster Lab , Санкт-Петербург , От 170 000 до 250 000 ₽

Одно из наиболее распространённых средств автоматизации в администрировании — Ansible. Оно позволяет автоматизировать практически любые задачи системного администратора. Для работы достаточно SSH доступа к хостам. На сайте есть обзорная статья про Ansible, как его настроить и работать. Проект развивался независимо и вскоре был куплен компанией RedHat.

Мониторинг

После настройки сервера и введения его в эксплуатацию для обеспечения SLA и не только необходимо уделить внимание мониторингу.

Мы часто разделяем мониторинг на два отдельных компонента:

  • мониторинг с оповещениями,
  • статистика по показателям.

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

    /Nagios/Icinga — используем для получения событий агентами и уведомлений по триггерам. + InfluxDB — в эту связку входят также Chronograf, Kapacitor, Telegraf.
      — time series база данных, принимает на вход данные с различных источников. Имеет широкий функционал возможностей для работы с данными. — веб-панель с дашбордами и система управления Influxdb, Kapacitor. — обработчик событий. — агент, отправляет данные с удалённых систем. — всем известная система построения дашбордов/графиков.

    Схема компонентов InfluxDB

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

    Netdata — это «швейцарский нож» в системе мониторинга, обладает широкой функциональностью, поддержкой модулей на Python, Go и не только.

    Скриншот дашборда Netdata

    Централизованное управление пакетами

    В качестве централизованного управления набором ПО и его обновлениями мы использовали RedHat Spacewalk.

    Скриншот интерфейса RedHat Spacewalk

    Интерфейс RedHat Spacewalk

    С выходом RHEL 7 RedHat провели обновление, вследствие чего заменили Spacewalk на RedHat Satellite, который во многом напоминает Foreman. Для перехода на RedHat Satellite необходимо было бы перенастраивать уже работающие с RedHat Spacewalk системы, отлаживать новое решение (RedHat Satellite) и почти гарантированно бороться с новыми проблемами.

    Зачастую в госструктурах и энтерпрайзе широко использовались решения RedHat. И тут со второго плана выходит компания Oracle, которая занималась развитием дистрибутивов Oracle Enterprise Linux/Oracle Unbreakable Enterprise Kernel.

    Это продукты, основанные на кодовой базе RedHat Enterprise Linux, но с большим количеством доработок под собственные нужды, в которые том числе входило создание и поддержка среды для, наверное, основного продукта компании Oracle — Oracle Databases.

    Но, в отличие от RedHat, дистрибутив которого скачать можно было только по подписке (лицензировании), не говоря уже об обновлениях, Oracle предоставляет это бесплатно. Именно Oracle взялся поддерживать и продолжать развитие Oracle Spacewalk, который вскоре был обновлён в Oracle Linux Manager.

    Логирование

    С увеличением количества обслуживаемых хостов возникает необходимость централизованного сбор логов. Для этих задач отлично подходят уже готовые Open Source решения, которые мы используем:

    Агенты — rsyslog, syslog-ng (доступны в большинстве дистрибутивов)

    • Loki (Prometheus),
    • Graylog2,
    • Logstash,
    • ELK.

    При небольшом количестве администрируемых хостов можно обойтись syslog-ng как централизованным хранилищем для файлов логов, который будет принимать сообщения на 514 UDP порт. Он умеет раскладывать сообщения по директориям в зависимости от источника (FQDN/IP-адреса), сервиса, дате и прочее.

    Резервное копирование

    Для резервного копирования выбор достаточно прост. Где-то достаточно rsync + tar (синхронизации и сжатия), а где-то требуется Bacula/Bareos.

    Схема работы Bareos

    В резервном копировании есть достаточно хорошие проприетарные решения, например, «Veeam backup». Если вы используете виртуализацию VMWare, то здесь Veeam упрощает резервное копирование и предоставляет поддержку.

    Также в своих решениях мы используем резервное копирование для /etc директории — etckeeper. Он позволяет автоматизировать сохранение содержимого каталога /etc в хранилище системы контроля версий (VCS), отслеживает, когда ваш пакетный менеджер сохраняет изменения в /etc при установке или обновлении пакетов.

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

    Иногда случается так, что подготовленный к установке/обновлению пакет программ может перезаписать существующие файлы в /etc , т.к. некоторые заказчики пользуются сторонними службами/пакетами. Etckeeper умеет фиксировать конфигурацию перед установкой пакетов и после, что значительно облегчает работу.

    Постскриптум

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

    Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей

    Глава 26. Управление учетными записями пользователей

    Прочитав данную главу, вы научитесь использовать утилиты useradd , usermod и userdel для создания, модификации и удаления учетных записей пользователей.

    Вам понадобятся привилегии пользователя root в системе Linux для выполнения действий, описанных в данной главе.

    Управление учетными записями пользователей

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

    Другим вариантом является использование таких инструментов с интерфейсом командной строки , как useradd, usermod, gpasswd, passwd и других. Администраторы серверов с большой вероятностью используют именно эти инструменты, так как они им знакомы, а также поставляются в неизменном виде в составе различных дистрибутивов. В данной главе будут рассматриваться именно эти инструменты с интерфейсом командной строки.

    Третий довольно радикальный способ управления учетными записями пользователей заключается в непосредственном редактировании локальных файлов конфигурации с помощью текстового редактора vi (или vipw/vigr). Не пытайтесь делать это при работе системами, находящимися в промышленной эксплуатации, в том случае, если вы не обладаете соответствующими знаниями!

    Файл /etc/passwd

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

    Пользователь root

    Утилита useradd

    Как видно из примера, пользователь с именем yanina получил идентификатор 529, а также идентификатор основной группы 529.

    Файл /etc/default/useradd

    Утилита userdel

    Утилита usermod

    Создание домашних директорий пользователей

    Простейший способ создания домашней директории пользователя заключается в передаче параметра -m утилите useradd (вполне вероятно, что данный параметр передается по умолчанию в вашем дистрибутиве Linux).

    Директория /etc/skel/

    Удаление домашних директорий пользователей

    Командная оболочка, используемая для входа в систему

    Утилита chsh

    Учтите, что в дистрибутиве Debian не существует параметра -l упомянутой утилиты, а также в данном примере предполагается, что командные оболочки ksh и csh установлены в системе.

    Практическое задание: управление учетными записями пользователей

    1. Создайте учетную запись пользователя с именем serena и описанием (или комментарием) «Serena Williams» , а также домашнюю директорию этого пользователя. Выполните необходимые действия в рамках одной команды.

    2. Создайте учетную запись пользователя с именем venus , указанием на необходимость использования командной оболочки bash и описанием «Venus Williams» , а также домашнюю директорию этого пользователя с помощью одной команды.

    3. Убедитесь в том, что обоим пользователям соответствуют корректные записи в файлах /etc/passwd , /etc/shadow и /etc/group .

    4. Проверьте корректность создания домашних директорий пользователей.

    5. Создайте учетную запись пользователя с именем einstime и утилитой /bin/time в качестве стандартной командной оболочки.

    6. Что случится, если вы войдете в систему под именем пользователя einstime ? Можете ли вы сделать предположение о реальной ситуации, в которой было бы полезно заменить стандартную командную оболочку пользователя на приложение?

    7. Создайте файл с именем welcome.txt и убедитесь в том, что каждый новый пользователь будет обнаруживать данный файл в своей домашней директории.

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

    9. Измените стандартную командую оболочку для входа в систему пользователя serena на командную оболочку /bin/bash . Осуществите необходимые проверки перед изменением командной оболочки и после него.

    Корректная процедура выполнения практического задания: управление учетными записями пользователей

    1. Создайте учетную запись пользователя с именем serena и описанием (или комментарием) «Serena Williams» , а также домашнюю директорию этого пользователя. Выполните необходимые действия в рамках одной команды.

    2. Создайте учетную запись пользователя с именем venus , указанием на необходимость использования командной оболочки bash и описанием «Venus Williams» , а также домашнюю директорию этого пользователя с помощью одной команды.

    3. Убедитесь в том, что обоим пользователям соответствуют корректные записи в файлах /etc/passwd , /etc/shadow и /etc/group .

    4. Проверьте корректность создания домашних директорий пользователей.

    5. Создайте учетную запись пользователя с именем einstime и утилитой /bin/time в качестве стандартной командной оболочки.

    6. Что случится, если вы войдете в систему под именем пользователя einstime ? Можете ли вы сделать предположение о реальной ситуации, в которой было бы полезно заменить стандартную командную оболочку пользователя на приложение?

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

    7. Создайте файл с именем welcome.txt и убедитесь в том, что каждый новый пользователь будет обнаруживать данный файл в своей домашней директории.

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

    9. Измените стандартную командую оболочку для входа в систему пользователя serena на командную оболочку /bin/bash . Осуществите необходимые проверки перед изменением командной оболочки и после него.

    Уроки Linux

    Linux для начинающих / Урок #1 – Что такое дистрибутивы, Bash Shell и Ubuntu?

    Linux для начинающих / Урок #1 – Что такое дистрибутивы, Bash Shell и Ubuntu?

    Видеоурок

    ОС Linux

    Данная операционная система была разработана Линусом Торвальдсом. Его идея создать открытую операционную систему стала культовой и уже с первых дней Linux обрел множество поклонников. На момент её создания, а это 1991 год, главным конкурентом была ОС Windows.

    ОС Windows сейчас и ранее проповедует идею закрытой ОС, что должна покупаться по отдельности для каждого ПК. И в таком контексте новая, полностью открытая ОС не могла не произвести фурора. Линус Торвальд в то время еще шутил: «В мире без стен – окна не нужны». Крутая отсылка на продукт от Microsoft ✔

    Идея ОС Линукс в её открытости.

    • ОС полностью бесплатная. Такой она была с первых дней своего существования.
    • Linux имеет полностью открытий исходный код, а это дает разработчику возможности создать все что-угодно на основе ядра Линукс.

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

    Простой пример

    На Виндовс у вас всегда есть один экран. Это главный экран, на котором можно открывать приложения. В Unix системах вы всегда можете иметь множество окон и на каждом из них может быть выполнена своя определенная работа.

    Кстати, операционная система Mac OS разработана на основе семейства Unix. Считается, что как раз этот фактор позитивно выделяет всю систему и делает ее более плавной и удобной в сравнении с Виндовс.

    Почему Линукс выбирают программисты?

    Windows обогнала Linux и стала общепризнанным стандартом по причине своей портативности. Её легко можно установить и она идеально подходит для ежедневного использования.

    Проблема Windows в том, что она является закрытой системой. Вы можете делать приложения под Виндовс или под Mac, но все эти ОС будут ограничивать вас, не давая доступа к некоторым функциям. При разработке под Linux вы имеете такую свободу, какую только можете себе представить.

    В Линукс полностью открытое ядро, а это означает что вы можете создавать новые операционные системы на основе уже готового ядра.

    Разница в том, что на Windows или Mac вы можете создать программу. Она будет великолепной, но все же программой. На Линукс вы можете создать свою операционную систему, а позже для неё можете создать еще и программу.

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

    Что такое дистрибутивы?

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

    Дистрибутивов существует невероятно большое количество. Среди популярных можно выделить:

    • Ubuntu
    • Mint
    • Elementary
    • Manjaro
    • Debian
    • Kodi
    • Kubuntu
    • и многие другие. Рейтинг и описание можете найти здесь .

    Некоторые из них максимально схожи на Виндовс, например, Ubuntu или Mint. Другие же могут предоставлять только командный интерфейс, без графической оболочки.

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

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

    Windows, к сожалению, всем этим похвастаться не может. Windows – идеальный вариант, если вы не хотите мучаться с установкой и настройкой, а просто хотите получить готовую операционную систему.

    Как выбрать верный дистрибутив?

    Дистрибутивов действительно очень много и выбирать нужно исходя из ваших потребностей. Проще всего найти различные подборки дистрибутивов в интернете и посмотреть на что они способны и под какие задачи были разработаны.

    К примеру, если нам нужен легкий интерфейс для плавного входа в Линукс, то проще всего взять такие дистрибутивы как Ubuntu или же Mint.

    В самом начале мы предлагаем вам разобраться в одном из основных дистрибутивов – Ubuntu. Именно его мы будем устанавливать и именно с ним будем работать.

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

    Информация про Ubuntu

    Ubuntu – один из наиболее популярных дистрибутивов. По данным статистики им пользуются около 20 миллионов людей по всему миру. Ubuntu содержит удобный и красивый пользовательский интерфейс.

    Следующий фактор может показаться странным для Windows пользователей, но удобства Ubuntu в том, что большинство действий вы можете сделать при помощи мыши, а не при помощи написания команд в терминале.

    Ubuntu обладает схожими чертами с Виндовс и Мак одновременно.

    Скрипты Bash Shell

    Bash скрипт – файл, что содержит список команд для выполнения в ОС Линукс. При помощи Bash скрипта вы можете выполнять управление вашей операционной системой. Сам же Bash Shell является усовершенствованной вариацией командного терминала.

    Простой пример

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

    В ходе курса мы научимся прописывать Bash скрипты, что будут выполнять действия связанные с вашим ПК.

    План курса

    В курсе мы рассмотрим все тонкости по работе с Linux. Мы научимся её устанавливать, работать с графическим интерфейсом, познакомимся с различными командами из терминала, изучим работу с пакетным менеджером, научимся устанавливать программы внутри Linux и, конечно же, создадим несколько Bash скриптов для управления ПК.

    Перед прохождением курса вам не нужно иметь никаких дополнительных знаний. Все необходимое будет изучено в курсе.

    Администратор в Ubuntu, или что такое sudo

    В любой Linux системе обязательно есть один привилегированный пользователь — root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет.

    Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом, либо временно получить его права, используя команду su. Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее очень сложно) ограничивать административные привилегии только определённым кругом задач.

    Поэтому в современных дистрибутивах Linux заместо root аккаунта для администрирования используется утилита sudo.

    В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта.

    Что такое sudo

    sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo.

    Где используется sudo

    sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic — это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль.

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

    Запуск графических программ с правами администратора

    Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt+F2.

    Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, чтобы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести в диалоге запуска приложений команду

    Вместо gksudo можно подставить gksu. У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска

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

    Запуск программ с правами администратора в терминале

    Для запуска в терминале команды с правами администратора просто наберите перед ней sudo:

    У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и сделано в целях безопастности, просто вводите до конца и нажимайте Enter. После ввода пароля указанная команда исполнится от имени root.

    Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале

    Получение прав суперпользователя для выполнения нескольких команд

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

    После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данная команда по действию похожа на su, однако она не меняет домашний каталог на /root, что обычно очень удобно. Для того, чтобы при переходе под суперпользователя сменился так же и домашний каталог необходимо выполнить

    Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl+D.

    голоса
    Рейтинг статьи
    Читайте так же:
    Можно ли ставить ps4 вертикально без подставки
Ссылка на основную публикацию
Adblock
detector