Puppet - это немного чудовище, чтобы научиться думать, поэтому учиться на примерах не так уж и плохо. В приведенном ниже я предполагаю, что вы используете модули - пожалуйста, скажите в комментарии, если вы не или если вам нужно больше деталей о том, как собрать модуль вместе.
Допустим, вы запускаете новый модуль с именем mymodule. В домашнем каталоге puppet (обычно /etc/puppet) на puppet master вы должны создать каталог манифестов и файлов модуля:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Затем создайте файл в этом каталоге с именем init.ppи введите:
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Затем поместите datas.xlsфайл в filesкаталог модуля - в этом примере в modules/mymodule/files/. (Обратите внимание, что также может быть templatesкаталог для шаблонов ).
В этом manifests/site.ppфайле вам нужно импортировать модуль и включить класс, выполнив что-то вроде:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Убедитесь, что все ваши узлы наследуются от базы, и это должно быть все, что вам нужно сделать. Начиная с версии 0.25 вы можете использовать регулярные выражения в имени узла, например:
node server[0-9] inherits base {}
Дайте мне знать в комментариях, если вам нужны дополнительные разъяснения.
Настройка клиента для общения с мастером кукол
На клиенте нужно сделать:
sudo apt-get install puppet
Затем отредактируйте /etc/default/puppetи измените START=noна START=yes.
Также отредактируйте /etc/puppet/puppet.confи добавьте строку в [main]раздел, чтобы указать, где найти мастера кукол:
server=puppet.mydomain.com
Тогда мы можем сделать тестовый прогон с sudo puppetd --test. Если вы получили ошибки в ключах, вам может потребоваться перейти на главный сервер puppet и подписать ключ клиента. Чтобы проверить точное имя, которое вы можете сделать, sudo puppetca --listа затем sudo puppetca --sign server1.mydomain.com(или любое другое имя сервера было из команды list).
Теперь начните службу кукол с, sudo service puppet startи вы должны быть вдали. Служба кукол запускается каждый час, поэтому, если вы обновите свои рецепты кукол, все ваши клиенты также будут обновлены.
Удаление файлов
В исходном вопросе отмечу, что вы хотели знать, как удалять файлы. Вы бы отредактировали, manifests/init.ppчтобы быть
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Другие полезные советы
Если у вас возникли проблемы, есть несколько вещей, которые вы можете сделать. На любой машине с установленным Puppet вы можете проверить свой синтаксис, запустив
puppet --parseonly --ignoreimport myfile.pp
или проверить всю партию, сняв --ignoreimportфлаг, хотя это может привести к некоторым забавным сообщениям об ошибках, которые на самом деле не являются ошибками, которые я обнаружил. Вы также можете запустить Puppet Live на компьютере клиента Puppet, выполнив:
sudo puppetd --test
который показывает различный полезный вывод, с ошибками и предупреждениями, выделенными разными цветами. Если вы хотите еще больше деталей, вы можете запустить:
sudo puppetd --test --debug
но это, как правило, генерирует так много выходных данных, что трудно пройти через них, так что делайте это только в том случае, если вы уже пробовали предыдущие шаги и застряли, и вам нужно увидеть, что все делается.
Обратите внимание, что это основано на Puppet 0.25.x, который я сейчас использую на работе, а также версия в Ubuntu 10.04. Код puppet в главном разделе определенно будет работать, но в более поздних версиях puppet появились новые флаги, которые могут помочь с отладкой вывода.