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

Puppet 3. Быстрый старт

Доброго времени суток всем! Много написано о Puppet, хочу рассказать о быстрой установке 3й версии. Puppet версии 3 существенно отличается от 2.x версии в плане набора консольных команд. За большинство действий сейчас отвечает команда puppet <подкоманда>.
Puppet позволит вам удалённо ставить пакеты, менять права доступа, менять содержимое файлов и делать другие полезные вещи на Linux системах. Руководство подразумевает использование Debian 6. Итак, приступим!

1. На debian server устанавливаем свежую версию puppet: apt-get install puppetmaster && wget apt.puppetlabs.com/puppetlabs-release-squeeze.deb && dpkg -i puppetlabs-release-squeeze.deb && apt-get update && apt-get upgrade && apt-get install puppetmaster
2. На debian client apt-get install puppet && wget apt.puppetlabs.com/puppetlabs-release-squeeze.deb && dpkg -i puppetlabs-release-squeeze.deb && apt-get update && apt-get upgrade && apt-get install puppet
Либо можно выполнить скрипт:

#!/bin/bash
cd /tmp
apt-get install -y puppet
wget apt.puppetlabs.com/puppetlabs-release-squeeze.deb
dpkg -i puppetlabs-release-squeeze.deb
rm /tmp/puppetlabs-release-squeeze.deb
pt-get update -y
apt-get upgrade -y
apt-get install -y puppet
echo [agent] >> /etc/puppet/puppet.conf
echo server=master.home >> /etc/puppet/puppet.conf
echo listen = true >> /etc/puppet/puppet.conf
sed -i '/START=no/d' /etc/default/puppet
echo START=yes >> /etc/default/puppet

3. После установки самой свежей версии для нашего дистрибутива ( выше) приступаем к настройке. Важно чтобы хосты знали друг друга по dns именам.
4. В конфиг клиента (/etc/puppet/puppet.conf) добавляем ( скрипт уже сам добавил):
[agent]
server=master.home # указываем мастера
listen = true # указываем puppet клиенту работать как сервис и слушать порт 8139
/etc/default/puppet меняем START=no на START=yes
5. На клиенте – связываемся с сервером ( обмен сертификатами): puppet agent master.home --test --waitforcert 60
6. На сервере: выводим список запросов на сертификат puppet cert list и подписываем командой puppet cert sign slave ( slave – клиент). В /etc/puppet/fileserver.conf описываем файловый ресурс:
[files]
path /etc/puppet/modules
allow *
Установка и настройка закончены!
7. Пример: создаём манифест на сервере: nano /etc/puppet/manifest/mnl.pp и пишем в него:
package {'htop': ensure => latest }
package {'mc': ensure => latest }
package {'sudo':ensure => latest }
После выполнения этого манифеста на клиенте будут установлены пакеты mc, htop и sudo.
Так можно сменить права доступа на файл на клиентах:
file { "/etc/timezone":
owner => «root»,
group => «bin»,
mode => 644,
}
Так можно передавать файлы клиентам:
file { '/root/.bashrc':
force => true,
replace => true,
source => 'puppet://master.home/files/bashrc',
}
bashrc нужно положить в /etc/puppet/modules
8. По умолчанию клиент опрашивает сервер на наличие новых манифестов и задач каждые 30 минут. Вручную это можно проделать командой puppet agent --verbose –test. Удаление сертификата на клиенте: find /var/lib/puppet -type f -print0 |xargs -0r rm

Надеюсь что это руководство послужит отправным пунктом в изучении puppet!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.