У меня есть следующий манифест для настройки 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
и снова запустите марионетку.