Master of Puppets. Или как повелевать всеми машинками, тихо как ниндзя.

puppet

Доброго всем времени суток. Сегодня я расскажу вам про такое чудо как Puppet. Собственно у софта этого крайне огромный потенциал ограниченный только умением писать скрипты под него (я далеко не мастер в этом, так что не пинайте сильно), но об этом позже. Вкратце, что же это за зверь такой? А зверь это интересный, ибо дает возможность установки/удаления пакетов, изменения файлов, проверки параметров, выполнения некоторых процедур и т. д. и т. п на множестве как однотипных так и разномастных машин (не только десктопов, но и серверов) одномоментно. Теперь о задаче, которую некогда мне надо было решить, собственно она (задача) и познакомила меня с этой системой, которую я сейчас использую довольно часто:

1. Установить на все машинки (linux) в сети один пакет.

2. С помощью этого пакета завести все машинки в домен.

Кратенько и понятненько, собственно если у вас машинок не так уж и много, то заморачиваться с подобной системой я бы не советовал (много времени уйдет на чтение документации, написание и отлаживание скрипта и т. д.), но если у вас тачек эдак 50-100, то тут все решено! Надо брать.

Давай те же приступим к установки самого сервера Puppet, как и всегда я использую CentOS 6 x86_64 minimal

Для начала нам потребуется Ruby на котором и написан сам puppet

Добавим репозиторий puppetlabs, для получения актуальной версии puppet (проблема версионности у puppet крайне остра, без соответствия версии на сервере и клиенте, вы не сможете работать)

Ставим сам puppet

Стартуем

Ставим необходимый нам в дальнейшем модуль, подробнее о нем тут.

Отключаем selinux

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

Так же вам придется под редактировать файл.

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

Собственно для организации работы нам нужен подписанный сертификат на клиенте. (выполныем на стороне клиента)

Теперь, нам необходимо подписать сертификат на сервере.

(выполняем на сервере)

Для просмотра всех запросов на подписание сертификата, на стороне сервера вы можете выполнить след.

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

И там отметить выборку по маске, в моем случае это (к примеру ST001)

Ну а если вам совсем плевать на безопасность, то можно и просто

Также по данному вопросу советую ознакомиться вот с этой статьей.

На этом часть про установку, можно завершить и приступить к части про сам скрипт. iptables? atrollface

Наш файл конфигурации находится тут

Собственно его мы и будем редактировать, я советую вам поставить какой нибудь текстовый редактор с подсветкой кода (слышал что под vim есть плагин для puppet, но так как я сам не пользуюсь vim… то)

Я сразу хоче извиниться, за поехавшую табуляцию. Если кому надо могу выслать сам файл целеком на почту. Для введения машин в домен я использовал PBIS-Open

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

 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Перед отправкой формы:
Human test by Not Captcha