Я установил puppetmaster в Ubuntu 11.04 и установил puppet во всех моих клиентах. Я присоединился ко всем своим кукольным клиентам с мастером кукол. Можно ли скопировать файл для всех этих клиентов Puppet из Puppet Master?
Например:
У меня есть файл с именем datas.xls на моем рабочем столе (Puppet Master). Как мне скопировать эти файлы на все мои кукольные клиенты в следующем месте (/ home / operator1 / Desktop / Backup /)?
puppet:///modules/module_name/datas.xls
файл для копирования находится в этом месте /etc/puppet/modules/mymodule/manifests/datas.xls
? root@testing:~# puppetd --test
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
[ 116] Ошибка 2 на клиенте: root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/
Как применить этот модуль ко всем узлам? Так что файл будет скопирован на все узлы.
Марионетка является немного монстром для получения головы вокруг, таким образом учение примером не является никакой плохой вещью. В ниже я предполагаю, что Вы используете модули - скажите в комментарии, если Вы не или если Вам нужно больше деталей о том, как соединить модуль.
Скажем, Вы запускаете новый названный модуль mymodule
. В марионеточном корневом каталоге (обычно /etc/puppet
) на марионеточном ведущем устройстве необходимо создать каталог деклараций и файлов модуля:
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/
. (Примечание может также быть a 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
. Если Вы получаете ключевые ошибки, Вы, возможно, должны перейти к марионеточному главному серверу и подписать клиентский ключ. Для проверки точного имени, можно сделать sudo puppetca --list
и затем sudo puppetca --sign server1.mydomain.com
(или независимо от того, что имя сервера было от команды списка).
Теперь запустите марионеточный сервис с sudo service puppet start
и необходимо отсутствовать. Марионеточная услуга будет работать каждый час, поэтому при обновлении марионеточных рецептов затем, все клиенты будут также обновлены.
Я отмечаю в исходном вопросе, который Вы хотели знать, как удалить файлы. Вы отредактировали бы manifests/init.pp
быть
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Если Вы испытываете затруднения существует несколько вещей, которые можно сделать. На любой машине с марионеткой установил Вас, может проверить Ваш синтаксис путем выполнения
puppet --parseonly --ignoreimport myfile.pp
или проверьте всех путем вынимания --ignoreimport
флаг, хотя это может привести к некоторым забавным сообщениям об ошибках, которые не являются действительно ошибками, которые я нашел. Можно также выполнить марионетку, живую на марионеточной клиентской машине путем выполнения:
sudo puppetd --test
который показывает различный полезный вывод с ошибками и предупреждениями, выделенными в различных цветах. Если Вы хотите еще больше детали, Вы могли бы работать:
sudo puppetd --test --debug
но это обычно генерирует такой вывод, что трудно пробраться через, настолько только сделайте, что, если Вы уже попробовали предыдущие шаги и застреваете и должен видеть, что все сделано.
Обратите внимание, что это основано на марионетке 0.25.x, который является тем, что я в настоящее время использую на работе, и также версия в Ubuntu 10.04. Марионеточный код в основном разделе будет определенно все еще работать, но более поздние версии марионетки имеют новые флаги, которые могут помочь с отладочной информацией.