0

Puppetを使用してSolrをTomcatにデプロイしようとしています。にsolr.warコピーされると/var/lib/tomcat6/webapps/solr.war、Tomcatは新しく追加されたファイルに気づき、それをデプロイするのに少し時間がかかります。展開手順の1つは、.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 に答える