0

我正在尝试使用 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添加更多文件(如) 。如果我在 tomcat 之前创建了文件夹,这就是我下面的清单正在做的事情,tomcat 将不会部署 Solr。/var/lib/tomcat6/webapps/solr/ solr.war/var/lib/tomcat6/webapps/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],
  }


}
4

1 回答 1

2

您实际上并不需要将这些附加文件添加到 solr war 文件中。通常最好让战争保持原状。这些文件可以添加到您的 solr_home,它也位于应用程序服务器之外的其他地方。由于您提到了一个 jar 文件,因此您可以在 .jar 文件中配置 jar 的路径solrconfig.xml。这样,它们将在启动时从 Solr 加载。也看看这个页面

于 2012-10-09T18:10:58.833 回答