Commit 5ee59f99 authored by Stefan Galinski's avatar Stefan Galinski 🎮
Browse files

[TASK] Complete refactoring for the new solr version

parent bff51cd1
Description Description
=========== ===========
**This is alpha software! It is used in production, but it is not guaranteed to work with your setup!***
This chef cookbook is based on the shell-scripts which are distributed with the EXT:solr (thank you Ingo Renner!). The This chef cookbook is based on the shell-scripts which are distributed with the EXT:solr (thank you Ingo Renner!). The
cookbook offers two LWRPs which should be enough to setup a solr app with unlimited solr cores. cookbook offers two LWRPs which should be enough to setup a solr app with unlimited solr cores.
Since version 2.0 the cookbook works only with the TYPO3 Solr 7+.
Requirements Requirements
============ ============
...@@ -15,15 +15,6 @@ Platform: ...@@ -15,15 +15,6 @@ Platform:
The following Opscode cookbooks are dependencies: The following Opscode cookbooks are dependencies:
* tomcat
If you want to user this cookbook with EXT:solr >= 3.0 you have to install java 7 on your system. When using the
java-cookbook, you need to override this attribute:
```ruby
node[:java][:jdk_version] = "7"
```
Attributes Attributes
========== ==========
...@@ -70,22 +61,47 @@ typo3_solr_core "de-TestWeb-123-de_DE" do ...@@ -70,22 +61,47 @@ typo3_solr_core "de-TestWeb-123-de_DE" do
end end
``` ```
Important information Integration Example
===================== ===================
The TYPO3 solr project has moved the sources to github. So we also need to fetch the information from github. ``` ruby
We only handle this if you use the extension in version 3.1 or higher. if node['typo3_site']['solr']['init']
include_recipe 'java'
For the older versions we just use the files from forge.typo3.org. include_recipe 'typo3_solr'
typo3_solr_app 'solr' do
solr node['typo3_site']['solr']['version_solr']
extension node['typo3_site']['solr']['version_extension']
tika_server node['typo3_site']['solr']['version_tika_server']
plugin_access node['typo3_site']['solr']['version_plugin_access']
plugin_utils node['typo3_site']['solr']['version_plugin_utils']
plugin_lang node['typo3_site']['solr']['version_plugin_lang']
languages node['typo3_site']['solr']['languages']
end
node['typo3_site']['solr']['cores'].each do |core_data|
typo3_solr_core core_data['name'] do
language core_data['language']
app 'solr'
action :add
end
end
execute 'solr-updateConnections' do
command "php #{node['typo3_site']['webroot']}/#{node['typo3_site']['hostname']}/#{node['typo3_site']['web_directory']}/typo3/cli_dispatch.phpsh solr updateConnections || true"
user 'vagrant'
group data_bag['groupId']
action :run
end
end
```
License and Author License and Author
================== ==================
Author: Stefan Galinski (<stefan@sgalinski.de>)
Author: Philipp Bergsmann (<p.bergsmann@opendo.at>) Author: Philipp Bergsmann (<p.bergsmann@opendo.at>)
Copyright: 2014 opendo GmbH (http://opendo.at)
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
......
if node['platform_version'] == '16.04' default['java']['jdk_version'] = 8
default['tomcat']['base_version'] = 8
default['java']['jdk_version'] = 8
else
default['tomcat']['base_version'] = 6
default['java']['jdk_version'] = 7
default['java']['install_flavor'] = 'oracle'
default['java']['oracle']['accept_oracle_download_terms'] = true
end
default['tomcat']['base_instance'] = "tomcat#{node['tomcat']['base_version']}" default['typo3_solr']['solr']['solr_home'] = '/opt/solr'
default['tomcat']['packages'] = ["tomcat#{node['tomcat']['base_version']}"] default['typo3_solr']['solr']['tika_home'] = '/opt/tika'
default['tomcat']['deploy_manager_packages'] = ["tomcat#{node['tomcat']['base_version']}-admin"]
default['tomcat']['user'] = "tomcat#{node['tomcat']['base_version']}"
default['tomcat']['group'] = "tomcat#{node['tomcat']['base_version']}"
default['tomcat']['home'] = "/usr/share/tomcat#{node['tomcat']['base_version']}"
default['tomcat']['base'] = "/var/lib/tomcat#{node['tomcat']['base_version']}"
default['tomcat']['config_dir'] = "/etc/tomcat#{node['tomcat']['base_version']}"
default['tomcat']['log_dir'] = "/var/log/tomcat#{node['tomcat']['base_version']}"
default['tomcat']['tmp_dir'] = "/tmp/tomcat#{node['tomcat']['base_version']}-tmp"
default['tomcat']['work_dir'] = "/var/cache/tomcat#{node['tomcat']['base_version']}"
default['tomcat']['context_dir'] = "#{node['tomcat']['config_dir']}/Catalina/localhost"
default['tomcat']['webapp_dir'] = "/var/lib/tomcat#{node['tomcat']['base_version']}/webapps"
default['typo3_solr']['solr']['solr_home'] = '/srv/solr'
default['typo3_solr']['solr']['tika_home'] = '/srv/tika'
default['typo3_solr']['solr']['systemd'] = '/lib/systemd/system' default['typo3_solr']['solr']['systemd'] = '/lib/systemd/system'
\ No newline at end of file
...@@ -4,10 +4,8 @@ maintainer_email 'stefan@sgalinski.de' ...@@ -4,10 +4,8 @@ maintainer_email 'stefan@sgalinski.de'
license 'All rights reserved' license 'All rights reserved'
description 'Installs/Configures TYPO3 EXT:solr' description 'Installs/Configures TYPO3 EXT:solr'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '1.3.0' version '2.0.0'
recipe 'typo3_solr::default', 'Installs/Configures TYPO3 EXT:solr'
issues_url 'https://gitlab.sgalinski.de/chef-cookbooks/typo3_solr/issues' issues_url 'https://gitlab.sgalinski.de/chef-cookbooks/typo3_solr/issues'
source_url 'https://gitlab.sgalinski.de/chef-cookbooks/typo3_solr' source_url 'https://gitlab.sgalinski.de/chef-cookbooks/typo3_solr'
depends 'apt' depends 'apt'
depends 'tomcat', '~> 1.3.0'
\ No newline at end of file
use_inline_resources use_inline_resources
action :add do action :add do
uri = URI.parse("https://raw.githubusercontent.com/TYPO3-Solr/ext-solr/release-#{new_resource.extension}.x/README.md") # Install requirements
package 'lsof'
request = Net::HTTP.new(uri.host, uri.port) # Create the solr user
request.use_ssl = true user 'solr' do
request.verify_mode = OpenSSL::SSL::VERIFY_NONE comment 'Solr User'
response = request.request_head uri.request_uri home node['typo3_solr']['solr']['solr_home']
shell '/bin/bash'
if response.code.to_i == 200 # openssl passwd -1 "mypassword"
remote_branch = "release-#{new_resource.extension}.x" password '$1$YwUKq1QX$qIVeFlybWqOKJjRLed29j'
else
remote_branch = 'master'
end
resources_path = 'Resources/Solr'
ext_solr_uri = "https://raw.githubusercontent.com/TYPO3-Solr/ext-solr/#{remote_branch}/#{resources_path}"
plugin_uri = "https://github.com/TYPO3-Solr/solr-typo3-plugin/releases/download/release-#{new_resource.plugin}"
tika_server_uri = "http://mirror.dkd.de/apache/tika"
service 'tomcat' do
service_name node['tomcat']['base_instance']
supports :restart => true, :reload => true, :status => true
end end
# Fetch and unpack the wanted solr release from our deploy server
# TODO Add a fallback to an official server if the release is not available on our server
bash 'Fetch Solr' do bash 'Fetch Solr' do
user 'vagrant' user 'vagrant'
timeout 3000000 timeout 3000000
action :run
only_if { only_if {
not ::File.exists?("#{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}.tar.gz") not ::File.exists?("#{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}.tar.gz")
} }
...@@ -37,245 +28,98 @@ action :add do ...@@ -37,245 +28,98 @@ action :add do
--no-o --no-g deploy@deploy.sgalinski.de:~/solr/solr-#{new_resource.solr}.tgz \ --no-o --no-g deploy@deploy.sgalinski.de:~/solr/solr-#{new_resource.solr}.tgz \
"#{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}.tar.gz"; "#{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}.tar.gz";
EOF EOF
action :run
end
execute "decompress-solr-archive - #{new_resource.name}" do
cwd Chef::Config['file_cache_path']
command "tar -xzf apache-solr-#{new_resource.solr}.tar.gz"
creates "#{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}/dist/apache-solr-#{new_resource.solr}.war"
end
# copy solr war-file
execute "rename-solr-dir - #{new_resource.name}" do
cwd Chef::Config['file_cache_path']
command "mv solr-#{new_resource.solr} apache-solr-#{new_resource.solr}"
creates "#{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}"
end
execute "copy-solr-app - #{new_resource.name}" do
cwd Chef::Config['file_cache_path']
command "cp apache-solr-#{new_resource.solr}/dist/solr-#{new_resource.solr}.war #{node['tomcat']['webapp_dir']}/#{new_resource.name}.war"
creates "#{node['tomcat']['webapp_dir']}/#{new_resource.name}.war"
end end
execute "copy-solr-libs - #{new_resource.name}" do # Move solr and adjust permissions to the final destination
cwd Chef::Config['file_cache_path'] bash 'Move Solr' do
command "cp apache-solr-#{new_resource.solr}/example/lib/ext/*.jar #{node['tomcat']['home']}/lib/" user 'vagrant'
only_if { Gem::Version.new(new_resource.solr) >= Gem::Version.new('4.0.0') } timeout 3000000
end action :run
only_if {
execute "chmod - #{new_resource.name}" do not ::File.exists?("#{node['typo3_solr']['solr']['solr_home']}/README.txt")
command "chmod -R 777 #{node['tomcat']['home']}/lib/" }
end
execute "copy-log4j-properties - #{new_resource.name}" do
cwd Chef::Config['file_cache_path']
command "cp apache-solr-#{new_resource.solr}/example/resources/log4j.properties #{node['tomcat']['home']}/lib/log4j.properties"
creates "#{node['tomcat']['home']}/lib/log4j.properties"
only_if { Gem::Version.new(new_resource.solr) >= Gem::Version.new('4.0.0') }
end
directory "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf" do
owner node['tomcat']['user']
group 'root'
mode 0775
action :create
recursive true
end
execute "copy-solr-files - #{new_resource.name}" do
cwd Chef::Config['file_cache_path']
command "cp -r apache-solr-#{new_resource.solr}/example/solr/* #{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/"
creates
end
new_resource.languages.each do |language|
directory "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf/#{language}" do
owner node['tomcat']['user']
group 'root'
mode 0775
action :create
end
%w{ protwords.txt schema.xml synonyms.txt }.each do |file|
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf/#{language}/#{file}" do
source "#{ext_solr_uri}/typo3cores/conf/#{language}/#{file}"
action :create_if_missing
owner node['tomcat']['user']
mode 0644
end
end
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf/#{language}/_schema_analysis_stopwords_#{language}.json" do
source "#{ext_solr_uri}/typo3cores/conf/#{language}/_schema_analysis_stopwords_#{language}.json"
action :create_if_missing
owner node['tomcat']['user']
mode 0644
end
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf/#{language}/german-common-nouns.txt" do
source "#{ext_solr_uri}/typo3cores/conf/#{language}/german-common-nouns.txt"
action :create_if_missing
owner node['tomcat']['user']
mode 0644
only_if { language === 'german' }
end
end
%w{ elevate.xml general_schema_fields.xml general_schema_types.xml solrconfig.xml }.each do |file|
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf/#{file}" do
source "#{ext_solr_uri}/typo3cores/conf/#{file}"
action :create_if_missing
owner node['tomcat']['user']
mode 0664
end
end
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3cores/conf/currency.xml" do
source "#{ext_solr_uri}/typo3cores/conf/currency.xml"
action :create_if_missing
owner node['tomcat']['user']
mode 0644
only_if { Gem::Version.new(new_resource.extension) >= Gem::Version.new('2.8.0') }
end
file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/solr.xml" do code <<-EOF
action :delete cd #{Chef::Config['file_cache_path']};
tar -xzf apache-solr-#{new_resource.solr}.tar.gz;
mv solr-#{new_resource.solr} #{node['typo3_solr']['solr']['solr_home']};
chown solr:root -R #{node['typo3_solr']['solr']['solr_home']};
EOF
end end
template "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/solr.xml" do # Add systemd starter script
source 'solr.xml.erb' template "#{node['typo3_solr']['solr']['systemd']}/solr.service" do
#variables(:cores => node['typo3_solr'][:cores][new_resource.extension]) source 'solr.service.erb'
owner node['tomcat']['user'] variables(:app => new_resource.solr)
mode 0644 mode 0644
cookbook 'typo3_solr' cookbook 'typo3_solr'
end end
execute 'systemctl enable solr'
%w{ bin conf data }.each do |directory| # Fetch the solr TYPO3 extension
directory "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/#{directory}" do bash 'Fetch Solr' do
action :delete user 'vagrant'
recursive true timeout 3000000
end action :run
end only_if {
not ::File.exists?("#{Chef::Config['file_cache_path']}/ext-solr-#{new_resource.extension}.tgz")
file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/README.txt" do }
action :delete
end
template "#{node['tomcat']['context_dir']}/#{new_resource.name}.xml" do code <<-EOF
source 'tomcat_solr.xml.erb' rsync --delete -auvz --progress -e "ssh -o StrictHostKeyChecking=no" \
variables(:app => new_resource.name) --no-o --no-g deploy@deploy.sgalinski.de:~/solr/ext-solr-#{new_resource.extension}.tgz \
owner node['tomcat']['user'] "#{Chef::Config['file_cache_path']}/ext-solr-#{new_resource.extension}.tgz";
mode 0644 EOF
cookbook 'typo3_solr'
end end
directory "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/dist" do # Unpack and copy directories to the final location
action :create bash 'Move Solr' do
mode 0775 user 'vagrant'
end timeout 3000000
action :run
only_if {
not ::File.exists?("#{Chef::Config['file_cache_path']}/ext-solr/README.md")
}
execute "copy-dist - #{new_resource.name}" do code <<-EOF
command "cp -r #{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}/dist #{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/" cd #{Chef::Config['file_cache_path']};
tar -xzf ext-solr-#{new_resource.extension}.tgz;
cd #{node['typo3_solr']['solr']['solr_home']};
rm -rf server/solr/configsets/ && cp -a #{Chef::Config['file_cache_path']}/ext-solr/Resources/Private/Solr/configsets server/solr/configsets/;
cp -a #{Chef::Config['file_cache_path']}/ext-solr/Resources/Private/Solr/solr.xml server/solr/;
cp -a #{Chef::Config['file_cache_path']}/ext-solr/Resources/Private/Solr/cores server/solr/;
chown solr:root -R #{node['typo3_solr']['solr']['solr_home']};
EOF
end end
execute "copy-contrib - #{new_resource.name}" do # start solr
command "cp -r #{Chef::Config['file_cache_path']}/apache-solr-#{new_resource.solr}/contrib #{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/" execute 'systemctl start solr'
end
directory "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3lib" do # Setup Tika server
directory node['typo3_solr']['solr']['tika_home'] do
owner 'root'
group 'root'
mode 0770
action :create action :create
mode 0775
end end
# old typo3 solr plugin remote_file "#{node['typo3_solr']['solr']['tika_home']}/tika-server-#{new_resource.tika_server}.jar" do
source "http://mirror.dkd.de/apache/tika/tika-server-#{new_resource.tika_server}.jar"
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3lib/solr-typo3-plugin-#{new_resource.plugin}.jar" do mode 0550
source "#{plugin_uri}/solr-typo3-plugin-#{new_resource.plugin}.jar" owner 'root'
mode 0644 only_if {
notifies :restart, 'service[tomcat]', :immediately not ::File.exists?("#{node['typo3_solr']['solr']['tika_home']}/tika-server-#{new_resource.tika_server}.jar")
only_if { Gem::Version.new(new_resource.plugin) > Gem::Version.new('0.0.0') } }
end
# new typo3-solr plugins
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3lib/solr-typo3-access-#{new_resource.plugin_access}.jar" do
source "http://www.typo3-solr.com/fileadmin/files/solr/Solr4x/solr-typo3-access-#{new_resource.plugin_access}.jar"
mode 0644
notifies :restart, 'service[tomcat]', :immediately
only_if { Gem::Version.new(new_resource.plugin_access) > Gem::Version.new('0.0.0') }
end
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3lib/solr-typo3-utils-#{new_resource.plugin_utils}.jar" do
source "http://www.typo3-solr.com/fileadmin/files/solr/Solr4x/solr-typo3-utils-#{new_resource.plugin_utils}.jar"
mode 0644
notifies :restart, 'service[tomcat]', :immediately
only_if { Gem::Version.new(new_resource.plugin_utils) > Gem::Version.new('0.0.0') }
end
remote_file "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}/typo3lib/commons-lang3-#{new_resource.plugin_lang}.jar" do
source "http://www.typo3-solr.com/fileadmin/files/solr/Solr4x/commons-lang3-#{new_resource.plugin_lang}.jar"
mode 0644
notifies :restart, 'service[tomcat]', :immediately
only_if { Gem::Version.new(new_resource.plugin_lang) > Gem::Version.new('0.0.0') }
end end
# tika server
template "#{node['typo3_solr']['solr']['systemd']}/tika-server.service" do template "#{node['typo3_solr']['solr']['systemd']}/tika-server.service" do
source 'tika-server.service.erb' source 'tika-server.service.erb'
variables(:app => new_resource.tika_server) variables(:app => new_resource.tika_server)
mode 0644 mode 0644
cookbook 'typo3_solr' cookbook 'typo3_solr'
end end
execute 'systemctl enable tika-server'
remote_file "#{node['typo3_solr']['solr']['tika_home']}/tika-server-#{new_resource.tika_server}.jar" do # done
source "#{tika_server_uri}/tika-server-#{new_resource.tika_server}.jar"
mode 0550
owner node['tomcat']['user']
only_if { Gem::Version.new(new_resource.tika_server) > Gem::Version.new('0.0.0') }
end
execute "enable tika-server" do
command "systemctl enable tika-server.service"
end
# reset directory access restrictions
execute "chown - #{new_resource.name}" do
command "chown -R #{node['tomcat']['user']}:#{node['tomcat']['group']} #{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name} && chmod -R o+rw #{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}"
end
new_resource.updated_by_last_action(true)
end
action :remove do
service 'tomcat' do
service_name node['tomcat']['base_instance']
supports :restart => true, :reload => true, :status => true
end
directory "#{node['typo3_solr']['solr']['solr_home']}/#{new_resource.name}" do
action :delete
recursive true
end
file "#{node['tomcat']['context_dir']}/#{new_resource.name}.xml" do
action :delete
end
file "#{node['tomcat']['webapp_dir']}/#{new_resource.name}.war" do
action :delete
end
directory "#{node['tomcat']['webapp_dir']}/#{new_resource.name}" do
action :delete
recursive true
notifies :restart, 'service[tomcat]', :immediately
end
new_resource.updated_by_last_action(true) new_resource.updated_by_last_action(true)
end end
\ No newline at end of file
...@@ -2,24 +2,14 @@ use_inline_resources ...@@ -2,24 +2,14 @@ use_inline_resources
action :add do action :add do
new_resource.updated_by_last_action(false) new_resource.updated_by_last_action(false)
# execute "#{node['typo3_solr']['solr']['solr_home']}/bin/solr create -c #{new_resource.name}"
status_url = "http://127.0.0.1:8080/#{new_resource.app}/admin/cores?action=STATUS&core=#{new_resource.name}&wt=json" create_url = "http://localhost:8983/solr/admin/cores?action=CREATE&name=#{new_resource.name}&configSet=#{new_resource.config_directory}&schema=#{new_resource.language}/schema.xml&dataDir=dataDir=../../data/#{new_resource.name}"
puts status_url
status_response = Net::HTTP.get_response(URI.parse(status_url))
status = JSON.parse(status_response.body)
#unless status['status'][new_resource.name].has_key?('dataDir')
create_url = "http://127.0.0.1:8080/#{new_resource.app}/admin/cores?action=CREATE&name=#{new_resource.name}&instanceDir=typo3cores&schema=#{new_resource.language}/schema.xml&dataDir=data/#{new_resource.name}"
puts create_url puts create_url
Net::HTTP.get_response(URI.parse(create_url)) Net::HTTP.get_response(URI.parse(create_url))
new_resource.updated_by_last_action(true) new_resource.updated_by_last_action(true)
#end
end end
action :remove do action :remove do
delete_url = "http://127.0.0.1:8080/#{new_resource.app}/admin/cores?action=UNLOAD&core=#{new_resource.name}&deleteIndex=true" execute "#{node['typo3_solr']['solr']['solr_home']}/bin/solr delete -c #{new_resource.name}"
Net::HTTP.get_response(URI.parse(delete_url))
new_resource.updated_by_last_action(true) new_resource.updated_by_last_action(true)
end end
\ No newline at end of file
#
# Cookbook Name:: typo3_solr
# Recipe:: default
#
# Copyright sgalinski Internet Services
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
include_recipe 'tomcat'
directory node['typo3_solr']['solr']['solr_home'] do
owner node['tomcat']['user']
group 'root'
mode 0770
action :create
end
directory node['typo3_solr']['solr']['tika_home'] do
owner node['tomcat']['user']
group 'root'
mode 0770
action :create