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 появились новые флаги, которые могут помочь с отладкой вывода.