FreeIPA клиент на Ubuntu 20.04

freeipa client img

Обычная аутентификация на современных системах под управлением ОС Linux, как правило, подразумевает использование файлов /etc/passwd и /etc/shadow, в которых содержится информация о пользователях и их паролях. Однако, недра операционной системы Linux поддерживают с помощью механизма PAM гораздо больше возможностей по аутентификации и авторизации пользователей. PAM (Pluggable Authentication Modules) – низкоуровневые библиотеки, работающие на уровне операционной системы, позволяющие задействовать различные способы идентификации пользователей. Сценарии использования модулей PAM в операционной системе Ubuntu 20.04 находятся в директории – /etc/pam.d/. Другим важным компонентом операционной системы, задействованным в вопросах аутентификации является Name Service Switch. С помощью данного сервиса ОС в том числе определяет источник данных для пользователей и их паролей. Конфигурация данной службы находится в файле – /etc/nsswitch.conf.

FreeIPA клиент в Linux позволяет интегрировать отдельные операционные системы серверов и виртуальных машин в общую управляемую среду с централизованной базой пользователей и правил безопасности. Центральной частью всей подобной системы, безусловно, является сервер FreeIPA, который требует отдельной установки и настройки. Непосредственно на клиентских операционных системах кроме самого freeIPA клиента необходим также System Security Services Daemon (SSSD), который напрямую интегрируется с модулями PAM. При этом сервис SSSD может задействовать различные способы идентификации и аутентификации пользователей – такие как LDAP, Kerberos. Конфигурация демона SSSD находится в файле /etc/sssd/sssd.conf.

Читать далее «FreeIPA клиент на Ubuntu 20.04»

Небольшие лайфхаки с Proxmox

proxmox_lifehacks

Система виртуализации Proxmox, работающая на базе гипервизора KVM – неплохое Open Source решение, которое позваляет создавать кластеры, аналогичные VMware. Установка и использование данного продукта в целом не вызывает лишних сложностей и отличается последовательностью и логичностью. Однако, в процессе эксплуатации, нужно быть готовым к небольшим доработкам и донастройкам самой системы виртуализации. Небольшие лайфхаки, которые приходилось использовать в практике, хотелось бы опубликовать в этой статье. Они позволят избежать очевидных небольших “недоработок” в системе при ее использовании с чистого листа. Информация изложенная в статье актуальна для версии Proxmox-VE 6.2.

Читать далее «Небольшие лайфхаки с Proxmox»

Разносим данные по hdd и ssd в CEPH

ceph hdd vs ssd

Кластер CEPH по умолчанию представляет собой один общий массив хранения данных, в котором объекты распределяются по всем имеющимся дискам в соответствии с их весом. Но зачастую этого бывает недостаточно. SSD диски уже давно не являются экзотикой, и используются на большинстве серверов, да и обычных десктопах и ноутбуках. Как распределить данные на кластере CEPH таким образом, чтобы SSD диски использовались строго для определенных категорий данных, а HDD для других категорий? Об этом хочется рассказать в этой статье. О CEPH уже писал в своем блоге – Установка кластера CEPH. Однако, тематика данной программно-определяемой системы хранения данных мне кажется благодатной, да и в русскоязычном сегменте Интернета полезных статей о ней не так много.

Читать далее «Разносим данные по hdd и ssd в CEPH»

Информация о дисках в системе Linux

hdd_info

Периодически любому, кто соприкасается профессионально с аппаратным обеспечением IT систем, приходится сталкиваться с вопросами оценки работоспособности жестких дисков. В свое время плотно занимался системами хранения данных EMC. И опыт эксплуатации даже этих самых продвинутых стораджей корпоративного уровня показывает, что после трех – пяти лет их использования, жесткие диски начинают выходить из строя с неотвратимой регулярностью. Эти компоненты серверов, СХД или даже обычных компьютеров с моей точки зрения представляют собой расходный материал, которые нужно быть готовым менять постоянно в долгосрочной перспективе. Если использование корпоративных стораджей по своей философии предполагает постоянную покупку сервисов технической поддержки, и соответственно замену дисков вендором в случае проблем с ними. То в случае использования серверных решений на базе стандартных операционных систем Linux или Windows, вопросом обслуживания жестких дисков нам придется заниматься полностью самим.

Все современные нормальные жесткие диски и диски SSD имеют на борту систему мониторинга S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology или SMART). Если такой поддержки на имеющихся у Вас дисках нет, то стоит задумать сразу же о целесообразности их использования. Система SMART встроена в микросхемы контроллера диска и содержит в себе информацию о показателях жизнедеятельности данного драйва. Что хорошо, так это то, что из операционной системы сервера или компьютера, где установлены диски, можно легко получить доступ к данным этой системы. Это позволяет администратору быть постоянно в курсе состояния используемых драйвов. Также с помощью имеющейся информации можно проводить заблаговременно замену дисков, там где находятся критически важные данные.

Читать далее «Информация о дисках в системе Linux»

Отказоустойчивость доступа к сети в Linux

linux net

Те, кто занимается сетевыми технологиями, наверняка знает множество различных способов обеспечения отказоустойчивости компьютерных сетей. При этом есть как общеиспользуемые стандартизированные решения на L2 или L3 уровнях, так и узкие специализированные наработки. Сервера Linux также обладают всем необходимым функционалом, чтобы обеспечить выживаемость сервера в случае выхода из строя сетевой карты или отдельного коммутатора. Для этого используется функционал бондинга (bonding), который позволяет объединять в один общий виртуальный линк несколько физических интерфейсов. Данная возможность присутствует в различных дистрибутивах операционной системы Linux и может отличаться небольшой спецификой в настройке. Разные дистрибутивы используют свои конкретные механизмы настройки сети. Однако, непосредственные технические возможности по обеспечению сетевой отказоустойчивости остаются идентичными.

С помощью бондинга мы можем объединять несколько Ethernet интерфейсов в один виртуальный линк. При этом с противоположной стороны могут находиться как несколько различных коммутаторов, так и одно сетевое устройство. Так в случае использования протокола LACP мы можем объединить и одновременно использовать неисколько интерфейсов одновременно. Это позволяет обеспечить не только отказоустойчивость, но и повысить скорость доступа к сети в случае такой необходимости. Но для этого мы должны подключать все интерфейсы в один коммутатор, который поддерживает протокол LACP. Если же мы подключаем сетевые интерфейсы к различным коммутаторам, то можем использовать режим бондинга active-backup, который использует только один активный линк в данное конкретное время, но позволяет переключаться на резервные в случае выхода из строя основного.

Читать далее «Отказоустойчивость доступа к сети в Linux»

Импорт kvm виртуалок в Proxmox


Система виртуализации на базе Proxmox все больше набирает популярность при создании IT инфраструктуры в последнее время. Данное решение объединяет в себе черты профессиональной системы виртуализации с возможностью создания кластеров и централизованного управления с одной стороны. А также все свойства Open Source продукта с другой стороны. При миграции на данную систему управления виртуализации Вам скорее всего придется столкнуться с задачами импортирования виртуальных машин как из среды VMware, так и работающих под управлением гипервизора kvm. Как это сделать легко и просто со вторым типом виртуальных машин, используемых в open source среде хочется рассказать поподробнее.

Читать далее «Импорт kvm виртуалок в Proxmox»

Отправка email с серверов

sending email from servers (pic)

На вопрос нужно или нет отправлять почту с работающих серверов – для меня ответ всегда был положительным. Здесь конечно же идет речь не об отправке различного рода спама в Интернете, а об использовании электронных писем с различными оповещениями из IT систем на серверах. С помощью электронной почты всегда можно было доставлять нужные сообщения администраторам и программистам, уведомляя их о тех или иных событиях в работе IT систем. Да, сейчас есть ряд альтернативных способов доставки сообщений о происшествиях в программном обеспечении и оборудовании. Это, например, SMS или мессенджер Telegram. Такие способы, как правило, используются в системах мониторинга, позволяя оперативно сообщать о критических инцидентах. Однако, с моей точки зрения, использование электронной почты актуально и полезно и сегодня. Функции сортировки электронных писем позволяют эффективно анализировать тренды и выявлять проблемы в работе IT систем.

Для того, чтобы наш сервер стал способным отправлять почтовые сообщения, мы должны установить и настроить на нем MTA агент. MTA – Mail Transfer Agent (Агент передачи электронной почты). Программное обеспечение, выполняющее функцию MTA, занимается пересылкой электронных писем по протоколу SMTP. На основе него строятся серьезные почтовые сервера, которые способны обслуживать тысячи и миллионы пользователей. Нам в общем случае такой функционал избыточен. Наиболее популярные MTA в операционной системе Linux – Postfix, Sendmail, Qmail, Exim. Я предпочитаю работать с Linux системами на серверах, поэтому затрагивать тему использования MTA на платформах Windows не буду. Мне хотелось бы показать как быстро установить и настроить пакет Exim4, для целей доставки почтовых уведомлений с конкретного сервера. Его компактность, надежность и наличие всего необходимого просто идеально подходят для этой цели.

Читать далее «Отправка email с серверов»

Netstat и аналоги


У каждого администратора, IT инженера или программиста наверняка есть несколько десятков базовых утилит или команд, которые постоянно применяются в работе. У меня также есть такой набор базовых инструментов, который является неотъемлемой частью моей профессии. Среди них можно назвать wget, curl, ping, vim, tree, git, ip ну и конечно же netstat. Последняя являлась незаменимой утилитой при работе на абсолютно разных платформах, начиная от всевозможных версий Linux, Unix, BSD и заканчивая MacOS, а так же Microsoft Windows. С помощью нее можно получать информацию о сетевых соединениях, интерфейсах, таблицах маршрутизации. Утилитка позволяет получать обширнейшую информацию, которая бывает полезна во время траублшутинга, дебагинга или настройки чего-то нового.

В последние несколько лет отчетливо прослеживается тенденция на замену утилиты netstat на более новые ее аналоги – ss и lsof. Так уже в Centos по умолчанию Вы не найдете netstat, Вам предлагается использовать уже именно ss, а также lsof. Можно конечно же устанавливать netstat из пакетов и не париться о новых его аналогах. Мне однако такой путь кажется не правильным. Время идет, технологии развиваются, и надо обязательно изучать новинки, даже если они на первый взгляд кажутся бесполезными. При написании этой статьи не ставил цели сделать какое-то наглядное пособие по использованию новых аналогов netstat. Хотел скорее показать, как безболезненно перейти на новые утилиты, расширив свой профессиональный кругозор и функциональные возможности.

Читать далее «Netstat и аналоги»

Сила инвентаря и переменных в Ansible


Хотелось бы поговорить в этой статье о такой важной составляющей в работе системы управления Ansible, как файлы инвентаря и соответствующие переменные. Большая часть логики в работе Ansible содержится в соответствующих ролях, которые несут основную нагрузку при выполнении плейбуков. Но для полноценного понимания, как работает Ansible, необходимы знания о правильной настройке инвентаря и переменных для групп и конкретных хостов. С помощью правильно настроенных переменных мы можем направлять выполнение ролей в том или ином направлении. Это позволяет сделать Ansible чрезвычайно гибким и мобильным, а создаваемые роли более универсальными. Хороший пример, где без этого просто не обойтись – установка и настройка различного рода кластерного программного обеспечения. Как правило, в кластере есть сервер, выполняющий Master роль, и прочие сервера, что требует небольшого различия в проводимых настройках. Также, зачастую, различные сервера требует различных конфигураций в настройках одного и того же софта.

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

Читать далее «Сила инвентаря и переменных в Ansible»

Базовая настройка сервера с помощью Ansible


Если раньше при установке любого сервера приходилось делать достаточно много рутинной работы по базовой настройке ручками. Теперь с помощью ролей Ansible или похожих инструментов эти задачи сводятся к минимуму с точки зрения затрат времени и усилий. Многие считают, что использование Ansible – это прерогатива DevOps инженеров. С моей точки зрения, на сегодняшний день это базовый инструмент, который должен быть в арсенале любого IT специалиста. Как установить нужные пакеты в операционной системе Linux, а также как сделать базовые настройки в ней с помощью Ansible покажу на примере, который я постоянно использую в реальной жизни. Сама роль из данного примера предельно простая. Этот код может служить в том числе и для учебных целей. С помощью нее можно начать создавать свои собственные конструкции в процессе обучения системе управления конфигурациями Ansible.

В своем блоге уже несколько раз поднимал тему Ansible. Это были статьи – Разворачиваем Django с Ansible, а также Тестируем Ansible роли с Molecule. В них мы рассмотрели практические аспекты использования Ansible, а также его вспомогательные инструменты. Автоматизация задач по администрированию и развертыванию настолько плотно входит в работу ITшников, что использование функционала Ansible становится рутинной процедурой. Давно уже сам для себя решил, что буду выкладывать в общий доступ на GitHub свои личные наработки. Начну с этой Ansible роли, которая доступна по ссылке – https://github.com/andreyuzb/ansiblerole-linux-common. Дальше по тексту мы разберем ее функционал, а также то, как работает сам Ansible при этом.

Читать далее «Базовая настройка сервера с помощью Ansible»