Eu tenho o seguinte manifesto para configurar o Tomcat para usar a porta 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,
}
No entanto, ao executar, recebo os seguintes erros:
$ 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
O que indica que o Augeas está tentando modificar o arquivo errado ( /usr/share/tomcat7/conf/server.xml
) que está em /etc/tomcat7
.
No puppetlabs-tomcat GitHub podemos ler:
tomcat::config::server: Configura atributos para o elemento Server em
$CATALINA_BASE/conf/server.xml
.
$catalina_base
Especifica o diretório base para a instalação do Tomcat.
o que sugere que eu deveria ter conf
dir na pasta base do Tomcat ( CATALINA_BASE
), mas não está lá, pois toda a configuração está armazenada separadamente em /etc/tomcat7
.
Consulte: Documentação do Tomcat .
Existe alguma maneira de o puppetlabs-tomcat
módulo manipular adequadamente a instância instalada padrão do Tomcat? Ou devo criar um link simbólico?
Parece que o
catalina_base
atributo está incorreto, ou seja, oCATALINA_HOME
foi definido em vez deCATALINA_BASE
. Altere para/var/lib/tomcat7
e execute o fantoche novamente.