Документация по ОС FreeBSD Суббота, 04.05.2024, 22:50
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Puppet: настройка Puppet fileserver для отдачи файлов и директорий [2010]
Что такое Puppet fileserver?

Puppet fileserver – сервис позволяющий забирать с Puppetmaster`a файлы и папки, используемые в вашей конфигурации. С помощью файлсервера, к примеру, вы можете передавать на сервера файл /etc/resolv.conf содержимое которого будет зависеть от $hostname. Лично я использую fileserver для кастомного софта, который не могу установить из репозитория или собирать пакет слишком долго.

Более подробно о возможностях file server можно почитать в официальной документации к Puppet http://projects.puppetlabs.com/projects/puppet/wiki/File_Serving_Configuration

Настройка

Для настройки файлсервер нужно открыть/создать файл fileserver.conf в папке конфигурации Puppet (по умолчанию /etc/puppet/fileserver.conf) и вбить в него следующие данные:

[files1]
path /var/puppet/files1
allow *.domain.com
 
[files2]
path /var/puppet/files2
# needed to allow local puppetd
allow 127.0.0.1
allow 192.168.1.0/24

Мы объявили две секции «files1″ и «files2″, параметр path указывает в какой папке нужно искать нужные файлы, параметры allow и deny отвечают за настройки безопасности файл серрвера.

Безопасность

Доступ к секции, по умолчанию, запрещен со всех серверов. Для того чтобы разрешить серверу доступ к секции нужно добавить опцию allow с именем, IP или подсетью. Параметр deny всегда весомее чем параметр allow, т.е. если у вас есть сервер с IP 192.168.0.1 и именем myhost.com то такая конфигурация не позволит вам забрать файлы из файлсервера:

[files3]
path /var/puppet/files/
allow 192.168.0.0/24
deny myhost.com

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

Для использования file server вам нужно использовать тип file:

# Smartfox license
file{"smartfox_license":
   path => "/opt/Smartfox/Server/licence.sfl",
   source => "puppet://puppet/files/smartfox/licenses/$fqdn/licence.sfl",
}

Так я передаю файлы лицензий для сокет-сервера Smartfox на целевые машины. Т.е. у меня объявлена секция [files], локальный путь /var/puppet/files. По этому пути я создал папку «smartfox/licenses», внутри сделал папки с именами хостов (переменная $fqdn содержит полное имя целевого сервера, к примеру smartfox.domain.com), в каждой папке лежит файл с лицензией licence.sfl. Т.е. на целевой сервер smartfox.domain.com в папку /opt/Smartfox/Server/ попадает файл licence.sfl с puppetmaster сервера из папки /var/puppet/files/smartfox/licenses/$fqdn/

Пример выше позволяет передавать только один файл, вот так можно передавать целую папку:

# Smartfox server bins
 file{"smartfox_bin":
        path => "/opt/Smartfox/Server/",
        source => "puppet://puppet/files/smartfox/Server/",
        ensure => directory,
        recurse => true,
        sourceselect => all,
}

Главное здесь параметры recurse – говорит о том что мы передает всю папку и подпапки и sourceselect – говорит о том что мы передаем все файлы

recurse => true,
sourceselect => all,

Все, можно пользоваться, но помните – если вы используете стандартный Puppetmaster (т.е. он работает не через nginx или Apache а через написанный на Ruby веб сервер Webrick) передача папки большого размера может вызвать подъем LA на сервере.


Источник: http://stproject.info/blog/?p=808
Категория: Net | Добавил: oleg (10.09.2010)
Просмотров: 1135 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024