Role that configures solr cores into a already deployed solr 4.x instance.

This commit is contained in:
Andrea Dell'Amico 2018-03-25 18:57:35 +02:00
parent 9ef7736f10
commit 222ca74268
5 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,32 @@
---
solr_http_port: 8983
tomcat_load_additional_default_conf: True
tomcat_version: 7
# solr needs a lot of time to start if it needs to rebuild its indices
tomcat_restart_timeout: 100000
solr_service: -solr
solr_config_name: hindex
solr_shards: 1
solr_instance: '{{ solr_service }}'
solr_log_level: INFO
solr_http_port_1: '{{ solr_http_port }}'
solr_zoo_port: 9983
solr_zoo_port_1: 9984
solr_zoo_port_2: 9985
solr_jmx_port_1: 8601
solr_user: '{{ tomcat_user }}'
solr_group: '{{ tomcat_user }}'
solr_outside_tomcat_dir: False
# We need to define this one because we are using the tomcat multiple instances role
solr_tomcat_instance_dir: '{{ tomcat_m_instances_base_path }}/{{ solr_http_port }}'
solr_data_dir: '{{ solr_tomcat_instance_dir }}/solr'
solr_collections_base_dir: '{{ solr_data_dir }}/data/solr'
solr_zookeeper_data_dir: '{{ solr_data_dir }}/zoo_data'
solr_install_collection1: False
# Define the following if you want a multicore installation
solr_multicore: False
solr_global_cores:
- collection1

Binary file not shown.

View File

@ -0,0 +1,4 @@
---
- name: tomcat solr restart
service: name=tomcat-instance-{{ solr_http_port }} state=restarted sleep=20

View File

@ -0,0 +1,25 @@
---
- block:
- name: Create the solr cores data directories
file: dest={{ solr_collections_base_dir }}/{{ item }} state=directory owner={{ solr_user }} group={{ solr_user }}
with_items: '{{ solr_cores }}'
- name: Install the solr cores data on a multicore system
unarchive: src={{ solr_data_dir }}/collection_data/solr_core_base.tar.gz dest={{ solr_data_dir }}/data/solr/{{ item }} copy=no
args:
creates: '{{ solr_data_dir }}/data/solr/{{ item }}/conf/solrconfig.xml'
with_items: '{{ solr_global_cores }}'
notify: tomcat solr restart
- name: Install the solr.xml file
template: src={{ item }}.j2 dest={{ solr_data_dir }}/data/solr/{{ item }} owner=root group={{ solr_user }} mode=0440
with_items:
- solr.xml
notify: tomcat solr restart
- name: Fix the cores permissions
file: path={{ solr_collections_base_dir }} owner={{ solr_user }} group={{ solr_user }} recurse=yes
when: solr_multicore is defined and solr_multicore
tags: [ solr, tomcat, solr_core ]

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This is an example of a simple "solr.xml" file for configuring one or
more Solr Cores, as well as allowing Cores to be added, removed, and
reloaded via HTTP requests.
More information about options available in this configuration file,
and Solr Core administration can be found online:
http://wiki.apache.org/solr/CoreAdmin
-->
<solr>
<solrcloud>
{% if not solr_multicore %}
<str name="host">{{ ansible_fqdn }}</str>
<int name="hostPort">{{ solr_http_port_1 }}</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
{% endif %}
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int>
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
{% if solr_multicore %}
<cores adminPath="/admin/cores">
{% for core in solr_global_cores %}
<core name="{{ core }}" instanceDir="{{ core }}">
<property name="dataDir" value="{{ solr_collections_base_dir }}/{{ core }}" />
</core>
{% endfor %}
</cores>
{% endif %}
</solr>