Slack – автоматизируем настройку сервисов::Журнал СА 2.2009
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

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

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

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

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6417
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7120
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4399
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3086
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3882
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3898
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6388
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3234
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3530
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7364
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10726
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12446
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14097
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9193
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7142
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5447
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4683
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3497
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3213
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3449
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3091
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Slack – автоматизируем настройку сервисов

Архив номеров / 2009 / Выпуск №2 (75) / Slack – автоматизируем настройку сервисов

Рубрика: Администрирование /  Продукты и решения

 АЛЕКСЕЙ КОРОБКИН

Slack – автоматизируем настройку сервисов

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

Несколько дней назад я настраивал один из вспомогательных серверов, на котором должна работать реплика LDAP, вспомогательный контроллер Kerberos и запасной IRC-сервер. После того как завершилась установка Linux, я запустил такую команду:

# slack ldapslave kdcslave ircserver

Когда эта команда закончила работу, настройка сервера была полностью завершена. Другими словами, всю работу за меня сделал slack [1] – простой, но мощный инструмент управления настройками. Slack экономит бесценное время системного администратора, позволяя автоматизировать установку и настройку сервисов и сосредоточиться на более творческой работе.

Принцип действия

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

Настройку программного обеспечения slack производит в три шага:

  • Шаг 1. Скрипт preinstall выполняет всю подготовительную работу. Например, устанавливает необходимые пакеты из дистрибутива Linux, создает локальную учётную запись, корректирует настройки других сервисов.
  • Шаг 2. Slack берет из своего репозитория и раскладывает по нужным местам заранее подготовленные администратором файлы. Скажем, заполненный файл конфигурации веб-сервера помещается в /etc/apache2, а логотип фирмы – в /var/www/images.
  • Шаг 3. Скрипт postinstall выполняет завершающую настройку. Например, накладывает патчи на установленные файлы, определяет IP-адрес сервера и вписывает его в конфигурационный файл, открывает нужные порты на брандмауэре или настраивает crontab.

Как видите, алгоритм работы slack очень прост. Скрипты могут быть написаны на любом языке и представлять собой любой исполняемый файл, от bash-сценария до бинарного файла C++, slack в этом никак вас не ограничивает. Файлы с сервера копируются при помощи rsync. Какой именно транспорт будет использовать rsync, также зависит только от ваших предпочтений.

Почему именно slack?

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

Ответ: потому что создание собственного пакета – слишком трудоёмкий процесс. В большинстве случаев удобнее установить стандартный пакет и чуть-чуть модифицировать его под свои нужды, нежели тратить время на написание манифеста пакета, создание правил установки, цифровую подпись и прочую «бюрократию».

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

Безусловно, slack не может конкурировать с профессиональными пакетами наподобие IBM Tivoli Automation, но его простоту наверняка оценят администраторы ферм веб-серверов и Linux-кластеров, которым нужна максимально простая и надёжная автоматизация.

Название slack происходит от «Sysadmins" Lazy Auto-Configuration Kit» и не имеет отношения к дистрибутиву Linux Slackware.

Установка

Выберите сервер, который будет хранить файлы конфигураций – в терминологии slack он называется slack-мастер. Удобно завести для него псевдоним slack-master в DNS.

На slack-мастер установите rsync. Выделите отдельный каталог, например /var/slack, в котором будут храниться настройки каждого сервиса. Эти настройки slack называет ролями. К примеру, в начале статьи я установил на сервер три роли: ldapslave, kdcslave и ircserver. Подумайте, каким образом вы хотели бы получать файлы из этого каталога: по ssh, rsh или непосредственно по протоколу rsync. Если вы предпочитаете последний вариант, настройте модуль slack в /etc/rsyncd.conf.

[slack]

    path = /var/slack

    comment = my slack repo

На клиентах нужно установить slack. Почти во всех дистрибутивах есть соответствующий пакет, но и собрать из исходных кодов его совсем несложно. Архив с исходными кодами можно скачать на страничке проекта [1].

В файле конфигурации /etc/slack.conf достаточно отредактировать только переменную SOURCE, которая указывает, где находится репозиторий slack. Она заполняется согласно стандартному синтаксису rsync [2].

Например, если вы настроили модуль slack в rsyncd.conf, как описано выше, то правильная строка может выглядеть так:

SOURCE=slack-master::slack

или так:

SOURCE=slack-master:/var/slack

Остальные переменные можно оставить со значениями по умолчанию.

Slack-роль

В качестве примера сделаем slack-роль, которая будет устанавливать IRC-клиент irssi, добавлять пользователя ircbot и копировать стандартный файл конфигурации клиента irssi в домашний каталог этого пользователя. Роль безыскусно назовём ircbot.

Шаг 1. Строим иерархию файлов на сервере. Наш сервер называется slack-master, файлы находятся в /var/slack. Внутри /var/slack есть каталог roles, в нём каталог роли ircbot. Иными словами, на сервере у нас все файлы роли ircbot хранятся в папке /var/slack/roles/ircbot (см. рис. 1).

Иерархия файлов на slack-мастере

Рисунок 1. Иерархия файлов на slack-мастере

Структура этого каталога такова:

  • подкаталог files с файлами, которые будут скопированы на целевую машину.

Внутри каталога files в будущем домашнем каталоге пользователя ircbot сделаем подкаталог .irssi, а в нём создадим файл config.

# cd /var/slack/roles/ircbot/files

# mkdir -p home/ircbot/.irssi

# touch home/ircbot/.irssi/config

В этот файл поместим обычные настройки IRC-клиента irssi. Содержимое файла не имеет значения, это просто пример:

# cd /var/slack/roles/ircbot/files

# cat home/ircbot/.irssi/config

settings = {

    core = {

           real_name = "IRC Bot";

           user_name = "ircbot";

           nick = "+ircbot+";

    };

};

Вообще в каталоге files файлы располагаются так, как бы они располагались на целевой файловой системе, начиная с корневого каталога / и с учётом всех подкаталогов. Например, у роли веб-сервера содержимое каталога files может быть таким:

  • etc/apache2/apache2.conf;
  • etc/apache2/conf.d/security;
  • etc/init.d/apache2;
  • etc/cron.daily/apache2;
  • usr/share/doc/apache2/README.patched.

Шаг 2. Создаем скрипт preinstall, запускаемый перед копированием файлов. Поскольку мы будем устанавливать новые пакеты и создавать учётные записи, скрипт будет выполняться с правами root.

#!/bin/sh

# Обновить список пакетов

apt-get update

# Установить irssi

apt-get install irssi

# Создать свою группу для учётной записи ircbot

groupadd ircbot

# Создать учётную запись ircbot, домашний каталог для неё, добавить в группу ircbot

useradd -g ircbot -c "IRC Bot" -m -d /home/ircbot ircbot

Этот скрипт slack выполнит перед началом копирования файлов.

Шаг 3. Создаем скрипт postinstall, который будет запущен после копирования файлов. Этот скрипт выполняет финальные шаги установки и настройки роли ircbot.

#!/bin/sh

# Исправить права на каталог .irssi

chown -R ircbot:ircbot /home/ircbot/.irssi

# Отчитаться о завершении установки

echo "IRC Bot installation has been done."

Обратите внимание: именно скрипты preinstall и postinstall – основной инструмент slack. Поскольку они выполняются на целевой машине, у вас есть уникальная возможность прочитать её локальные параметры, настроить установленное ПО индивидуально для данной машины и данного сетевого окружения.

Примените свою фантазию и напишите сценарии установки так, чтобы от вас не требовалось ни нажатия клавиши, ни ввода каких-то аргументов вручную, тем более что из командной строки slack может принимать только названия ролей и свои встроенные параметры. Пишите на том языке сценариев или программирования, который лучше всего знаете, – slack просто запускает файлы preinstall и postinstall с помощью вызова exec(), так что ограничений никаких нет.

Проверка

На целевой машине запускаем:

# slack ircbot

В зависимости от транспорта, которым пользуется rsync, slack может запросить пароль для соединения со slack-мастером. В документации к slack можно прочитать, как настроить беспарольную аутентификацию для rsync и ssh при помощи сертификатов.

После ввода пароля slack скопирует со slack-мастера все файлы роли ircbot во временный каталог, запустит скрипт preinstall, потом перенесёт файлы из временного каталога на их постоянные места и следом запустит postinstall. Полный алгоритм работы slack при установке роли показан на рис. 2.

 Алгоритм работы slack

Рисунок 2. Алгоритм работы slack

Всё, пакет установлен, учётная запись создана, и в домашнем каталоге ircbot лежит заранее настроенный файл конфигурации с правильными правами доступа к нему. Просто, не правда ли?

Простота slack – его сильная и в то же время слабая сторона. Slack делает только то, что вы сами напишете в скриптах preinstall и postinstall. Контроль зависимостей, ошибок, повторных установок, неожиданных сред окружения – это всё вы должны реализовать сами, если чувствуете в этом необходимость. В любом случае не забывайте тщательно тестировать роль перед использованием. При установке роли slack сохраняет резервные копии файлов, которые он сам перезаписывает, но ваши скрипты никак не проверяет и возможность отката роли сам по себе не предоставляет.

Применение

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

В какой-то момент вы даже можете решить включить slack в процедуру автоматической установки операционной системы, чтобы вообще не подходить к серверу после запуска установки ОС. Запущенный без списка ролей, slack прочитает подготовленный вами файл conf/roles.conf в своём репозитории и по имени компьютера определит, какие роли следует установить.

Slack никак не привязан ни к платформе, ни к дистрибутиву, и одна и та же роль вполне может сначала проверять, на каком дистрибутиве она запустилась, а потом устанавливать rpm, deb или любые другие пакеты. Slack написан на языке Perl и может с успехом применяться в смешанной среде FreeBSD, Linux и Solaris.

Настройка репозитория на slack-мастере – тоже творческая задача. Применяя контроль версий файлов и резервное копирование, вы сделаете создание slack-ролей удобным и приятным для ваших коллег из IT-отдела.

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

  1. Страница проекта slack – http://code.google.com/p/slack.
  2. Документация проекта rsync – http://samba.org/rsync/documentation.html.

Комментарии отсутствуют

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

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

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru