Ansible plays to build dev environment with zookeeper ensemble.
[lui-solr.git] / docker / docker-deploy.yml
index 20578b5..dc58055 100644 (file)
       command: docker network create luinet
       when: docker_nets.stdout.find('luinet') == -1
 
+    - name: Copy ZooKeeper config if not present
+      become: yes
+      copy: src=zookeeper dest=/etc/masterkey/lui/ force=no
+
+    - name: Create ZooKeeper dataDirs
+      become: yes
+      file: path=/var/lib/masterkey/lui/zookeeper/zk{{ item }} state=directory
+      with_sequence: start=1 end={{ num_zk_servers }}
+
     - name: Launch ZooKeeper containers
       become: yes
       docker_container:
         name: zk{{ item }}
         image: jplock/zookeeper
+        volumes:
+          - /etc/masterkey/lui/zookeeper:/opt/zookeeper/conf
+          - /var/lib/masterkey/lui/zookeeper/zk{{ item }}:/tmp/zookeeper
       with_sequence: start=1 end={{ num_zk_servers }}
 
     - name: Get ZooKeeper container networks
       with_sequence: start=1 end={{ num_zk_servers }}
       when: (zk_net.results[item|int-1].stdout|from_json).bridge is defined
 
+    - name: Create ZooKeeper myid files
+      become: yes
+      copy: content={{ item }} dest=/var/lib/masterkey/lui/zookeeper/zk{{ item }}/myid
+      with_sequence: start=1 end={{ num_zk_servers }}
+      when: num_zk_servers > 1
+
+    # Note - this will not remove servers from config
+    - name: Update zoo.cfg for ensemble
+      become: yes
+      lineinfile: dest=/etc/masterkey/lui/zookeeper/zoo.cfg line="server.{{ item }}=zk{{ item }}:2888:3888"
+      register: zk_conf
+      with_sequence: start=1 end={{ num_zk_servers }}
+      when: num_zk_servers > 1
+
+    - name: Restart ZooKeeper
+      become: yes
+      command: docker restart zk{{ item }}
+      with_sequence: start=1 end={{ num_zk_servers }}
+      when: zk_conf|changed
+      
     - name: Get contents of /solr path in ZooKeeper
       become: yes
       command: docker exec -t zk1 bin/zkCli.sh get /solr
 
     - name: Build the lui-solr image
       become: yes
-      docker_image: name=lui-solr path={{ docker_image_path }}
+      docker_image: name=lui-solr path={{ solr_image_path }}
 
-    - name: Build ZooKeeper links for Solr containers
+    - name: Build -z string for Solr
       set_fact:
-    #     zk_links: []
-        zk_solr: []
-
-    - set_fact:
-    #     zk_links: "{{ zk_links + ['zk'+item+':ZK'+item] }}"
-        zk_solr: "{{ zk_solr + ['zk'+item+':2181'] }}"
+        zk_solr: "{{ zk_solr|default([]) + ['zk'+item+':2181'] }}"
       with_sequence: start=1 end={{ num_zk_servers }}
 
     - name: Launch Solr containers