Мы находимся в процессе исследования реализации управления конфигурацией / системами, и мы провели довольно много демонстраций Puppet. Puppet, кажется, преуспевает в том, что «убедитесь, что этот пакет установлен, этот файл конфигурации существует и эта служба запущена».
Кажется, я не могу найти хороший реальный пример управления программным обеспечением, которое не работает так хорошо. Некоторые примеры:
Какой подход использовали пользователи Puppet для интеграции подобного программного обеспечения в свои среды?
Я обслуживаю сервер с локально созданными файлами и сам делаю пакеты .deb или .rpm для таких программ.
В некоторых случаях, когда я ничего не удосужился с этим сделать, я exec wget
чтобы скачать файл, и exec
с методом экстракции, каким бы он ни был, с creates
атрибут, указывающий на основной двоичный файл. Однако он не будет обрабатывать обновления.
Чтобы обработать обновление, сделайте установку exec
а refreshonly => true
, и поставить notify
на exec
для wget
.
Образец:
exec { "/usr/bin/wget http://fileserver.domain/jboss/jboss-${version}.prd.tar.gz -O /tmp/jboss.tgz":
creates => '/tmp/jboss.tgz',
require => Package['wget'],
alias => 'wget_jboss',
}
exec { '/bin/tar xzvf /tmp/jboss.tgz':
cwd => '/opt',
creates => "/opt/jboss-${version}/bin",
user => 'jboss',
group => 'jboss',
require => [ User['jboss'], Exec['wget_jboss'], File["/opt/jboss-${version}"], ],
before => Service['jboss'],
alias => 'untar_jboss',
}
В exec
resource - это своего рода универсальный инструмент для управления всем, что не вписывается ни в один из других типов пакетов.
Если вы можете заставить что-то работать без присмотра в командной строке, и вы можете проверить наличие файла, чтобы подтвердить установку, тогда вы сможете заставить марионетку обработать это.
В одном из ваших примеров, VMware Tools, есть модуль на сайте создания марионеточных модулей, Вот. Как видно из файла init.pp (Вот), процесс установки выполняется в основном через exec
Ресурсы.
Что ж, вы можете просто запустить программу install на одной машине и поместить установленные файлы в tar / rpm / deb. Конечно, иногда бывает непросто.