aboutsummaryrefslogtreecommitdiffstats
path: root/roles/dovecot/tasks/solr.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/dovecot/tasks/solr.yml')
-rw-r--r--roles/dovecot/tasks/solr.yml40
1 files changed, 40 insertions, 0 deletions
diff --git a/roles/dovecot/tasks/solr.yml b/roles/dovecot/tasks/solr.yml
new file mode 100644
index 0000000..0751192
--- /dev/null
+++ b/roles/dovecot/tasks/solr.yml
@@ -0,0 +1,40 @@
+- name: add solr collection for dovecot
+ command:
+ cmd: '{{ solr_install_dir }}/bin/solr create -c dovecot'
+ creates: '{{ solr_data_dir }}/dovecot'
+ become: True
+ become_user: solr
+
+- name: check if dovecot schema exists
+ stat:
+ path: '{{ solr_data_dir }}/dovecot/conf/schema.xml.bak'
+ register: schema_xml_bak
+
+- name: copy dovecot solr schema
+ copy:
+ src: '{{ solr_data_dir[1:] }}/dovecot/conf/schema.xml'
+ dest: '{{ solr_data_dir }}/dovecot/conf/schema.xml'
+ owner: solr
+ group: solr
+ register: solr_schema
+ changed_when: no
+
+- name: stat new schema
+ stat:
+ path: '{{ solr_data_dir }}/dovecot/conf/schema.xml'
+ register: schema_xml
+
+- name: remove managed-schema file
+ file:
+ path: '{{ solr_data_dir }}/dovecot/conf/managed-schema.xml'
+ state: absent
+ when: (not schema_xml_bak.stat.exists) or (schema_xml_bak.stat.checksum != schema_xml.stat.checksum)
+ notify: restart solr
+
+- name: generate dovecot solr config
+ template:
+ src: '{{ solr_data_dir[1:] }}/dovecot/conf/solrconfig.xml.j2'
+ dest: '{{ solr_data_dir }}/dovecot/conf/solrconfig.xml'
+ owner: solr
+ group: solr
+ notify: restart solr