我有以下清单来配置 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
这表明 Augeas 正在尝试修改位于 的错误文件 ( ) /etc/tomcat7
。
在puppetlabs-tomcat GitHub我们可以读到:
tomcat::config::server:配置中的 Server 元素的属性
$CATALINA_BASE/conf/server.xml
。
$catalina_base
指定 Tomcat 安装的基本目录。
这表明我应该conf
在 Tomcat 基本文件夹 ( CATALINA_BASE
) 中有一个目录,但它不在那里,因为所有配置都单独存储在中/etc/tomcat7
。
看:Tomcat 文档。
模块是否puppetlabs-tomcat
有办法以某种方式正确处理 Tomcat 的默认安装实例?或者我应该创建一个符号链接?
答案1
看来该catalina_base
属性不正确,即已CATALINA_HOME
定义为 而不是CATALINA_BASE
。将其更改为/var/lib/tomcat7
并再次运行 puppet。