Я пытался создать манифест для установки postgres 9.1 с помощью марионетки на сервере Centos 5. Я пытался адаптировать инструкции на http://wiki.postgresql.org/wiki/YUM_Installation чтобы добиться этого, и когда я прохожу ручной процесс, я смог.
Мне кажется, что марионеточный манифест, содержащий
package { 'postgresql91-server':
ensure => installed,
source => 'http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm'
}
однако при попытке применить этот манифест я получаю
err: /Stage[main]//Package[postgresql91-server]/ensure: change from absent to present failed: Could not find package postgresql91-server
Есть ли опытные кукловоды, способные мне помочь?
Добавьте репо в yum (конечно, используя марионетку), затем укажите ресурс репо как зависимость пакета. Это упростит обновление в дальнейшем. См. Документацию по марионетке на ням репо для получения дополнительной информации.
Спасибо за помощь Стива и Пола. Последний код, который я использовал, это
yumrepo { "postgres":
baseurl => "http://yum.postgesql.org/9.1/redhat/rhel-5x86_64/",
descr => "Postgres 9.1 repository",
enabled => 1,
gpgcheck => 1
}
package { 'postgresql91-server' :
ensure => installed,
}
Это трюк!
В соответствии с http://docs.puppetlabs.com/references/stable/type.html#package, источник зависит от поддерживающего его поставщика пакетов. Насколько мне известно, yum не допускает произвольных URL-адресов - вы должны указать репо (как упомянул Стив Уиллс).
Вы можете обойти это, указав 'provider => "rpm"' только для этого ресурса пакета, но я сам не пробовал.