Русский
Русский
English
Статистика
Реклама

Управление инфраструктурой

Установка и эксплуатация Rudder

15.10.2020 12:13:13 | Автор: admin

Предисловие

Наша "дружба" началась два года назад. Я пришел на новое место работы, где предыдущий админ непринужденно оставил мне в наследство данную софтину. В интернете кроме официальной документации найти ничего не получалось. Даже сейчас, если загуглить "rudder" то в 99% случаев будет выдавать: штурвалы кораблей и квадрокоптеры. Мне удалось найти к нему подход. Поскольку Комьюнити данного софта ничтожно мал, я решил поделиться своим опытом и граблями. Думаю кому-то это будет полезно.

Итак, Rudder

Rudder - это утилита для аудита и управления конфигурацией с открытым исходным кодом, которая помогает автоматизировать настройку системы. Работает она по принципу установки агента на каждого конечного пользователя. Через удобный интерфейс мы можем наблюдать на сколько наша инфраструктура соответствует всем заданным политикам.

Использование

Ниже я перечислю для чего использую Rudder.

  • Контроль файлов и конфигов: ./ssh/authorized_keys ; /etc/hosts ; iptables ; (а дальше куда фантазия заведет)

  • Контроль установленных пакетов: zabbix.agent или любой другой софт

Установка сервера

На днях обновился с 5 версии до 6.1, все прошло успешно. Ниже будут представлены команды для Deban/Ubuntu но также есть поддержка: RHEL/CentOS и Sles.

Спрячу установку в спойлеры, чтобы вас не отвлекать.

Spoiler

Зависимости

Для rudder-server требуется Java RE минимум 8 версии, можно установить из стандартного репозитория:

Проверяем не установлена ли она

java -version

если вывод

-bash: java: command not found

то устанавливаем

apt install default-jre

Сервер

Импортируем ключ

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Вот сам отпечаток

pub  4096R/474A19E8 2011-12-15 Rudder Project (release key) <security@rudder-project.org>      Key fingerprint = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Так как у нас нет платной подписки то добавляем следующий репозиторий

echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list

Обновляем список репозиториев и устанавливаем сервер

apt updateapt install rudder-server-root

Создаем юзера admin

rudder server create-user -u admin -p "Ваш Пароль"

В дальнейшем можем управлять юзерами через конфиг

Всё, cервер готов.

Настройка сервера

Теперь необходимо добавить в агент руддера ip адреса агентов или же целую подсеть, ориентируемся на политику безопасности.

Settings --> General

В поле "Add a network" Вписываем адрес и маску в формате x.x.x.x/xx . Для того чтоб разрешить доступ со всех адресов внутренней сети (Если конечно это тестовая сеть и вы находитесь за NAT) вписываем : 0.0.0.0/0

Важно - после добавления ip address не забыть нажать Save changes, в противном случае ничего не сохранится.

Порты

На сервере открываем следующие порты

  • 443 - tcp

  • 5309 - tcp

  • 514 - udp

С первоначальной настройкой сервера разобрались.

Установка Агента

Spoiler

Добавляем ключ

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Отпечаток ключа

pub  4096R/474A19E8 2011-12-15 Rudder Project (release key) <security@rudder-project.org>      Key fingerprint = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Добавляем репозиторий

echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list

Устанавливаем агент

apt updateapt install rudder-agent

Настройка агента

Укажем агенту ip address сервера политик

rudder agent policy-server <rudder server ip or hostname> #Без скобок. Можно также использовать доменное имя 

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

rudder agent inventory

Также можем принудительно запустить агент и он отправить запрос моментально

rudder agent run

Наш агент настроен, идем дальше.

Добавление агентов

Логинимся

https://127.0.0.1/rudder/index.html

В разделе "Accept new nodes" появится ваш агент, ставим галочку и нажимаем Accept

Должно пройти немного времени пока система проверит сервер на соответствие

Создание групп серверов

Создадим группу (то еще развлечение), без понятия почему разработчики сделали столь геморное формирование групп, но как я понял, по другому никак. Переходим в раздел Node management -> Groups и нажимаем на Create, выбираем статическую группу и название.

Фильтруем необходимый нам сервер по особым приметам, к примеру по ip address, и сохраняем

Группа настроена.

Настройка правил

Переходим в Configuration policy > Rules , и создаем новое правило

Добавляем группу подготовленную ранее группу (это можно сделать и позже)

И формируем новую директиву

Создадим директиву добавления публичных ключей в .ssh/authorized_keys. Я это использую в случае выходя нового сотрудника, или для перестраховки, например если кто-то выпилит случайно мой ключ.

Переходим в Configuration policy > Directives слева мы видим "Directive library" Находим "Remote access > SSH authorised keys", справа нажимаем Create Directive

Вписываем данные о юзере и добавляем его ключ. Далее выбираем политику применения

  • Global - Политика установленная по умолчанию

  • Enforce - Выполнить на выбранных серверах

  • Audit - Проведет аудит и скажет на каких клиентах есть ключ

Обязательно указываем наше правило

Затем сохраняем и все готово.

Проверяем

Ключ успешно добавлен

Плюшки

Агент отдает полную информацию о сервере. Списки установленных пакетов, интерфейсов, открытых портов и многое другое, что именно можете посмотреть на скриншоте ниже

Также можно устанавливать и контролировать софт не только на linux но и на windows, последнее я не проверял, не было необходимости..

От автора

Должно быть, вы спросите, зачем изобретать велосипед, если давно уже придуманы ansible и puppet?

Отвечаю: У Ансибла есть недостатки, например мы не видим в каком состоянии сейчас находится данный конфиг, или всем знакомая ситуация когда запускаешь role или playbook и полетели ошибки о краше, и начинаешь лезть на сервер и смотреть какой там пакет куда обновился. А с puppet я просто не работал..

Есть ли минусы у Rudder-a? Очень много .. Начиная от того, что отваливаются агенты и приходится их переинсталивать или использовать команду rudder reset. (но кстати в версии 6 я такого еще не видел), заканчивая крайне сложной настройкой и не логичным интерфейсом.

Есть ли плюсы? И плюсов тоже масса: В отличие от всем извесного ansible мы имеем веб интерфейс в котором видно примененный нами комплаенс. К примеру - торчат ли порты в мир, в каком состоянии firewall, установлены ли агенты безопасности или другие приблуды.

Данный софт отлично подойдет для отдела информационной безопасности, так как состояние инфраструктуры всегда будет перед глазами, и если какое-то из правил засветится красным, то это повод посетить сервер. Как я и говорил 2 года уже использую Rudder, и если его немного покурить, то жизнь становится лучше. Самое сложное в большой инфраструктуре, то что вы не помните в каком состоянии находится сервер, не пропустил ли джун установку агентов безопасности или правильно ли на настроил iptables , rudder же поможет вам быть в курсе всех событий. Осведомлён, значит вооружен! )

P.S. Вышло гораздо больше чем я планировал, не буду описывать как устанавливать пакеты, если вдруг будут просьбы то напишу вторую часть.

P.S.S Статья несет информационный характер, решил поделиться так как на просторах интернета очень мало инфы. Может-быть это будет кому-то интересно. Хорошего времени суток уважаемые друзья )


На правах рекламы

Эпичные серверы - это VPS на Linux или Windows с мощными процессорами семейства AMD EPYC и очень быстрыми NVMe дисками Intel. Спешите заказать!

Подробнее..

Автоматизация в центрах обработки данных

17.05.2021 12:14:39 | Автор: admin

В большинстве серверов HPE имеется встроенный контроллер управления Integrated Lights Out (iLO). Его первоначальное назначение удаленное управление сервером:
включение/выключение, перехват графической консоли, подключение медиа-устройств что и иллюстрирует название Lights-Out Свет выключен в ЦОД, где трудятся серверы HPE, администратору нет необходимости быть рядом. Все действия с серверами можно выполнить из любой точки мира. Функционал iLO постоянно расширялся и сейчас его можно назвать центром управления полетом сервера, фактически это мини-компьютер внутри большого компьютера. У iLO есть процессор, оперативная и флэш-память, Ethernet порт и, естественно, интерфейс управления: веб-браузер, командная строка, скрипты и программируемые интерфейсы REST API. Через REST API и осуществляется автоматизированное управление серверами HPE в соответствии со стандартом Redfish, пришедшим на смену устаревшему IPMI.

Следующий уровень управления инфраструктурой HPE программный продукт HPE OneView. Для стоечных и блейд-серверов c-Class это виртуальная машина (поддерживаются все основные гипервизоры), для платформы HPE Synergy это аппаратный модуль Composer. Управляется HPE OneView аналогично iLO: веб-интерфейс, скрипты и команды RESTful API / Redfish.

HPE OneView обеспечивает полное низкоуровневое управление серверной инфраструктурой: настройка BIOS, конфигурирование сетевых интерфейсов, подключение к SAN, создание томов на внешних системах хранения (HPE Primera, HPE Nimble, HPE 3PAR), контроль и обновление драйверов и микропрограмм. Все эти действия можно выполнять для одного или нескольких серверов, как используя консоль браузера, так и с помощью скриптов PowerShell или Python. Но самых интересных результатов можно достичь путем интеграции OneView со средствами развертывания операционных систем и приложений. В этом случае администратору вообще не нужно обращаться к OneView, все необходимые действия выполняются в вышестоящей консоли управления. Например, для среды VMware единой консолью служит vCenter, для Microsoft Windows Admin Center.

REST и Redfish

Если говорить о REST (Representational State Transfer), то он представляет собой обычный HTTP(s) запрос, передавая необходимые данные в качестве параметров запроса. В отличие от Redfish (более современной версии REST), REST никак не стандартизирован, он лишь является архитектурным стилем, позволяющим придерживаться определенных последовательностей, таких как запрос, тело запроса и параметры запроса. При этом какое дерево запроса, по какому стандарту передается тело запроса (JSON, XML или другой), каждый производитель решает на свое усмотрение. В итоге это привело к тому, что если пользователь работал с REST-интерфейсами от нескольких вендоров, то к ним требовался разный подход, а часто и разный набор кода, что не позволяло масштабировать решения основанные на REST-запросах.

В отличие от REST, Redfish является стандартизированным интерфейсом и позволяет работать пользователю с разными производителями с одинаковым подходом и тем самым, обеспечивать масштабируемость решения. В решениях HPE стандарт Redfish появился в ILO4 (v2.30) и более поздних продуктах.

Решение HPE по автоматизации (Deployment Automation Solution)

При преодолении определенной численности информационных систем и нарастании запросов со стороны бизнеса, сотрудники отдела сопровождения часто приходят к целесообразности автоматизации ежедневных, рутинных операций. Это помогает вводить и обслуживать информационные системы быстрее, а сотрудникам сконцентрироваться на более важных задачах. Обычно администраторы пытаются автоматизировать задачи собственными силами и привычными им средствами. В этом им помогает широкий набор инструментов (https://github.com/hewlettpackard/), таких как Ansible, Python, Puppet и других. При этом, как правило самостоятельно написанные скрипты приходится часто править, особенно при масштабировании решения в условиях продуктивной среды.

Deployment Automation Solution представляет собой услугу по настройке решения автоматизации ежедневных операций, построенного на открытом исходном коде, либо их коммерческих аналогов, которые уже используются на предприятии. Таким образом потребители решения смогут вносить правки, как в само решение, делая его более заточенным под конкретную организацию, так и добавлять в решение собственные наработки, тем самым расширяя функционал базового решения. Deployment Automation Solution основан на стандартных программных компонентах, таких как Ansible, для автоматизации и оркестрации, Nginx для предоставления библиотеки образов микрокодов, операционных систем и файлов конфигураций и GitLab как способ централизованной доставки скриптов и Ansible playbooks. Таким образом, использование стандартных отраслевых инструментов с помощью сценариев Ansible, связанных с базовым репозиторием кода и инфраструктурным конвейером DevOps с помощью GitLab делает подход системным, а масштабирование удобным. Большинство компонент работает в контейнерах, что дает возможность быстро развертывать и обновлять само решение.

Весь процесс взаимодействия построен на программно-определяемой инфраструктуре посредством использования существующих богатых функций OneView Ansible collection / REST API, предназначенных для среды управления HPE OneView, или Redfish / iLO для управляемых сред, без OneView, а также API-интерфейсов хранилищ данных. Также используются API конкретного программного производителя, например:

  • Ansible Playbooks от RHEL могут связываться с серверами Linux через SSH;

  • Подключение к VMware может осуществляться через REST API или SSH;

  • Связь с Windows может быть через WinRM.

Для удобства оркестрации решения и построения сложных рабочих процессов автоматизации используется AWX (https://github.com/ansible/awx, upstream project для Ansible Tower) или Ansible Automation Platform (https://www.ansible.com/integrations/infrastructure/hpe), для объединения и инкапсуляции атомарной инфраструктуры в виде базовых операций кода в рабочие процессы автоматизации для реализации задач выделения ресурсов и управления жизненным циклом. Этот модульный подход позволяет гибко настраивать интеграцию аппаратных и программных элементов решения. При этом AWX, или Ansible Automation Platform не является обязательным атрибутом. Все рабочие процессы доступны через REST API и могут быть вызваны из любого существующего решения, такого как HPE ServiceNow или Morpheus. решение достаточно гибкое, чтобы интегрироваться с порталом управления, выбранным каждым клиентом, и обеспечивает интеграцию с любым сторонним решением.

В базовом варианте решения HPE предоставляет два основных сценария использования:

  • Установка операционных систем, включая настройку аппаратных компонент: презентация томов СХД, настройка зонинга для SAN и т.д, а также программных компонент, включая настройки безопасности и манипуляции с ПО;

  • Обновление микрокодов, в том числе и без прерывания работы серверов.

При этом заказчик получит доступ к репозиторию с обновлениями playbooks для поддержки новых сценариев и компонент. Из коробки решение заточено под аппаратную платформу HPE, включая новейшие аппаратные ресурсы: DL Gen10, Synergy, Apollo и 3PAR / Primera / Nimble, однако открытый исходный код и поддержка разнообразных API позволит пользователям интегрировать решения сторонних производителей.

Заключение

Инфраструктура Hewlett Packard Enterprise предоставляет широкие возможности по автоматизации ежедневных ИТ-операций: подготовка и развертывание новых серверов, подключение к сетям передачи данных и системам хранения, установка операционных систем, контроль и обновление драйверов и firmware, реконфигурирование систем под изменяющиеся требования приложений. Заказчики сами выбирают уровень автоматизации: от простых сценариев групповых операций с iLO до решений Инфраструктура как код с HPE OneView и Ansible AWX / Automation Platform.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru