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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзья сайта  

 Набор утилит dtools. Управляем множеством UNIX-систем

Архив номеров / 2014 / Выпуск №6 (139) / Набор утилит dtools. Управляем множеством UNIX-систем

Рубрика: Администрирование /  How To

Набор утилит dtools
Управляем множеством UNIX-систем

В подчинении сисадмина обычно находится не один, а несколько серверов. Давать команды каждому по отдельности неэффективно, на помощь приходят специализированные инструменты – Fabric, pyDSH, dtools и другие

Первые два основаны на Python и при необходимости вполне могут заменить более сложные инструменты; dtools (Distributed tools [1]) написан на bash и по идеологии и подходу ближе к классическому shell, а поэтому очень прост в понимании и использовании. При необходимости dtools легко расширяется. В репозиториях дистрибутивов Linux dtools обычно не встречается, но его установка проста.

$ sudo apt-get install git

$ git clone https://github.com/ajdiaz/dtools.git

$ cd dtools

$ sudo cp dt dthost dtstatus /usr/bin

$ sudo cp -r lib /usr/lib/dtools

$ sudo cp -r doc/man/ /usr/share/man/man1

Все операции выполняются с помощью bash скрипта dt, cинтаксис выглядит просто:

dt pattern command arguments

Шаблоны представляют собой фильтр-выборку целевых хостов. Сами узлы описываются в базе, по умолчанию это файл ~/.dtdb, но с помощью параметра -D/--db можно указать любой другой файл (или, как вариант, изменить значение переменной DTOOLS_DB=~/.dtdb в самом скрипте). Каждый узел описывается в отдельной строке, после которой указываются тэги, которым он будет соответствовать.

localhost www smtp mysql

host1 www mysql wp

host2 www pg wp

Пример самый простой, на самом деле тэгов и узлов может быть много, и, таким образом, можно описать все возможные варианты для подачи команд. Как и принято в UNIX, названия регистрозависимы, то есть mysql и MySQL – это разные тэги.

Чтобы просмотреть список узлов для определенного тэга, необходимо использовать параметр list:

$ dt tag:www list

Возможна выборка узлов с несколькими тэгами. Например, выберем все хосты, у которых есть тэги mysql или wp:

$ dt tag:mysql+tag:wp list

Или нам нужны только узлы, у которых присутствуют оба тэга одновременно:

$ dt tag:mysql:tag:wp list

Все шаблоны описаны файлами в /usr/lib/dtools/patterns (в ~/.dtools/patterns шаблоны может создавать сам пользователь). Кроме указанных, есть также и операция отрицания, например, все тэги, кроме wp, можно отобрать с помощью tag:wp:not::, и другие шаблоны all (все), nil (по сути, пустышка), ec2 (узлы AWS EC2), out (внешний URL), и использование регулярных выражений.

Выборку возможно производить с помощью нескольких шаблонов. Но результат лучше вначале протестировать с помощью list или специального ключа -p/--pretend.

Для удобства можно использовать три парсера (dthost, dtstatus, dtcompact), выводящие результат в разной форме.

$ dt exp:.* list | dthost

Узлы в ~/.dtdb можно заносить вручную, но, когда список большой, это становится неудобно. Здесь проще использовать команду add. Добавим host3 с тэгом mysql:

$ dt sys:host3 add mysql

Операции производятся через SSH. Вначале следует подключиться по ssh к удаленной системе, и узел будет автоматически добавлен ~/.ssh/known_hosts. Это можно сделать и самому:

ssh-keyscan host >> ~/.ssh/known_hosts

Все должно работать автоматически. Но здесь есть нюансы. По умолчанию для аутентификации используется открытый ключ, а не логин/пароль, а поэтому в зависимости от ситуации будет выдаваться ошибка. Удобнее скопировать открытый ключ на удаленные системы, это можно сделать вручную или с помощью команды ssh-copy-id. Но в обычном режиме это вряд ли получится, поэтому следует использовать интерактивный (-i), вводя пароль к каждому узлу:

$ dt -i exp:.* ssh-copy-id ~/.ssh/id_dsa.pub

Здесь есть тонкость, не описанная в документации, – подключение производится с помощью текущей учетной записи, и как-либо указать иную нельзя. Но выход найти просто – узлы базы следует прописывать в стиле ssh, как user@host. Команды, которые может выполнять dtools, – это именно «внутренние» команды, а не команды ОС. Хотя для удобства они созвучны.

  1. Сайт dtools – http://ajdiaz.me/dtools.

Подготовил Сергей Яремчук


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

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

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

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

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