Назад | Перейти на главную страницу

Какой правильный путь catalina_base для Tomcat, установленного из пакета?

У меня есть следующий манифест для настройки Tomcat для использования вместо этого порта 8983:

include java
class { 'tomcat': install_from_source => false }

tomcat::instance {'default': package_name => 'tomcat7'} ->
  tomcat::service  {'default':
    use_jsvc => false, use_init => true, service_name => 'tomcat7'
  }->
  tomcat::config::server { 'tomcat7':
    catalina_base => '/usr/share/tomcat7',
    port          => 8983,
  }

Однако при запуске возникают следующие ошибки:

$ sudo puppet apply -vd tomcat-test.pp
debug: Augeas[server-/usr/share/tomcat7](provider=augeas): Augeas version 1.3.0 is installed
debug: Augeas[server-/usr/share/tomcat7](provider=augeas): sending command 'set' with params ["/files/usr/share/tomcat7/conf/server.xml/Server/#attribute/port", "8983"]
debug: Augeas[server-/usr/share/tomcat7](provider=augeas): Closed the augeas connection
err: /Stage[main]//Tomcat::Config::Server[tomcat7]/Augeas[server-/usr/share/tomcat7]: Could not evaluate: Save failed with return code false

Это означает, что Авгий пытается изменить не тот файл (/usr/share/tomcat7/conf/server.xml) который в /etc/tomcat7.

В puppetlabs-tomcat GitHub мы можем прочитать:

tomcat :: config :: server: Настраивает атрибуты для элемента Server в $CATALINA_BASE/conf/server.xml.

$catalina_base Задает базовый каталог для установки Tomcat.

что предполагает, что я должен был conf dir в базовой папке Tomcat (CATALINA_BASE), но его там нет, так как вся конфигурация хранится отдельно в /etc/tomcat7.

Видеть: Документация Tomcat.

Есть ли способ, чтобы puppetlabs-tomcat модуль может как-то правильно обрабатывать установленный по умолчанию экземпляр Tomcat? Или я должен создать символическую ссылку?

Похоже, что catalina_base атрибутировать его неверно, т.е. CATALINA_HOME был определен вместо CATALINA_BASE. Измените это на /var/lib/tomcat7 и снова запустите марионетку.