我正在尝试使用Puppet在Tomcat上部署Solr。将solr.war
复制到/var/lib/tomcat6/webapps/solr.war
时,Tomcat需要一些时间来注意新添加的文件并进行部署。其中一个部署步骤涉及将.war
文件扩展到/var/lib/tomcat6/webapps/solr/
目录。
问题:我想在tomcat部署apache-solr-dataimporthandler-3.6.1.jar
之后,在/var/lib/tomcat6/webapps/solr/
中添加更多文件(例如solr.war
)并创建了这个结构。如果我在tomcat之前创建了文件夹/var/lib/tomcat6/webapps/solr/
,这就是我下面的清单所做的,tomcat将不会部署Solr。
在将文件添加到新创建的目录之前,是否可以让Puppet等待tomcat部署solr?
清单
class solr {
file { '/var/lib/tomcat6/webapps/solr.war':
ensure => present,
owner => root,
group => root,
mode => 644,
source => 'puppet:///modules/solr/apache-solr-3.6.1.war',
notify => Service['tomcat'],
}
file { '/usr/share/solr':
ensure => present,
source => 'puppet:///modules/solr/solr',
recurse => true,
require => File['/var/lib/tomcat6/webapps/solr.war'],
notify => Service['tomcat'],
}
$solr_dirs = [ "/var/lib/tomcat6/webapps/solr/", "/var/lib/tomcat6/webapps/solr/WEB-INF/",
"/var/lib/tomcat6/webapps/solr/WEB-INF/lib/"]
file { $solr_dirs:
ensure => "directory",
}
file { '/var/lib/tomcat6/webapps/solr/WEB-INF/web.xml':
ensure => present,
owner => root,
group => root,
mode => 644,
source => 'puppet:///modules/solr/web.xml',
require => File[$solr_dirs],
}
file { '/var/lib/tomcat6/webapps/solr/WEB-INF/lib/apache-solr-dataimporthandler-3.6.1.jar':
ensure => present,
owner => root,
group => root,
mode => 644,
source => 'puppet:///modules/solr/apache-solr-dataimporthandler-3.6.1.jar',
require => File[$solr_dirs],
}
}
答案 0 :(得分:2)
您真的不需要将这些附加文件添加到solr war文件中。通常情况下离开战争会更好。这些文件可以添加到solr_home,它也是应用程序服务器之外的其他位置。由于您提到了jar文件,因此您可以在solrconfig.xml
中配置jar的路径。这样他们将在启动时从Solr加载。也请查看this page。