Каков самый простой способ установить Tomcat7 через Марионетку с зависимостями?

Я пытаюсь создать простой Марионеточный рецепт как указано ниже:

package { 'openjdk-7-jre-headless' :  ensure => installed, }
package { 'tomcat7-common' :          ensure => installed, }
package { 'tomcat7' :                 ensure => installed, require  => Package['tomcat7-common'],}
package { 'tomcat7-admin' :           ensure => installed, require  => Package['tomcat7-common'], }

Однако, когда выполнено sudo puppet apply -v tomcat7.pp, У меня есть все еще эти ошибки:

допустите ошибку: / Этап [основной]//Пакет, [tomcat7-общие] / удостоверяются: изменение от очищенного для представления отказавший: Выполнение '/usr/bin/apt-get-q-y-o DPkg:: Опции:: = - сила-confold устанавливают tomcat7-общие' возвращенные 100: Чтение списков пакета...

Следующие пакеты не встретили зависимости: tomcat7-распространенный:

Зависит: libtomcat7-java (> = 7.0.28-4+deb7u1), но это не будет установленным

E: Не мог исправить проблемы, Вы держали поврежденные пакеты.

И каждый раз, когда я добавляю новые пакеты, мой файл выращивает создание помех читать. Я должен действительно указать все зависимости от Tomcat вручную? Или есть ли какой-либо более простой способ сделать его?

0
задан 29 March 2015 в 18:15
1 ответ

Puppet должен обрабатывать зависимости автоматически, поэтому простой манифест, который должен работать, выглядит следующим образом:

package { [ 'tomcat7', 'tomcat7-admin' ]: ensure => installed, }

Однако в зависимости от проблем (например, при наличии старого Tomcat или сломанных зависимостей) эти проблемы следует решать вручную. Например, вручную запустив apt-get tomcat7 и проверив, что его блокирует (например, « Следующие пакеты будут УДАЛЕНЫ раздел»).

Используя Puppet, можно найти следующее обходное решение. :

package { "tomcat7":
  ensure  => latest,
  require  => Exec['apt-get update'],
}

Или путем определения отсутствует (или очищено ), например:

package { [ 'tomcat6', 'tomcat6-common', 'libtomcat6-java','solr-tomcat' ]:
  ensure => absent
}

, чтобы гарантировать, что конфликтующие пакеты не установлены на машине.

2
ответ дан 4 December 2019 в 13:51

Теги

Похожие вопросы