2 # deploy a Docker server with Zookeeper, Solr, HAProxy
6 - name: Install prereqs from apt
15 - name: Install prereqs from pip
21 - name: Install apt key for Docker
23 apt_key: id=58118E89F3A912897C070ADBF76221572C52609D keyserver=hkp://p80.pool.sks-keyservers.net:80
25 - name: Install apt repository for Docker
27 apt_repository: repo="deb https://apt.dockerproject.org/repo debian-jessie main"
29 - name: Create docker group
33 - name: Add users to docker group
35 user: name={{ item }} groups=docker
36 with_items: "{{ docker_users }}"
38 - name: Install Docker Engine
40 apt: name=docker-engine
42 - name: Start up Docker
44 service: name=docker enabled=yes state=started
46 - name: Build ZooKeeper links for Solr containers
52 zk_links: "{{ zk_links + ['zk'+item+':ZK'+item] }}"
53 zk_solr: "{{ zk_solr + ['$ZK'+item+'_PORT_2181_TCP_ADDR:$ZK'+item+'_PORT_2181_TCP_PORT/solr'] }}"
54 with_sequence: start=1 end={{ num_zk_servers }}
56 - name: Launch ZooKeeper containers
60 image: jplock/zookeeper
61 with_sequence: start=1 end={{ num_zk_servers }}
63 - name: Get contents of /solr path in ZooKeeper
65 command: docker exec -t zk1 bin/zkCli.sh get /solr
69 - name: Create /solr path in ZooKeeper
71 command: docker exec -t zk1 bin/zkCli.sh create /solr []
72 when: zk1_solr.stdout.find('Node does not exist') != -1
74 - name: Build the lui-solr image
76 docker_image: name=lui-solr path={{ docker_image_path }}
78 - name: Launch Solr containers
84 published_ports: "{{ 8983+item|int-1 }}:8983"
85 links: "{{ zk_links }}"
86 command: bash -c '/opt/solr/bin/solr start -f -z {{ zk_solr|join(",") }}'
87 with_sequence: start=1 end={{ num_solr_servers }}
89 - name: Wait for ZooKeeper to see Solr
91 command: docker exec -t zk1 bin/zkCli.sh get /solr/live_nodes
93 until: solr_nodes.stdout.find('numChildren = {{ num_solr_servers }}') != -1
98 - name: Check lui collection
100 command: docker exec -t zk1 bin/zkCli.sh ls /solr/collections
101 register: lui_collection
104 - name: Create lui collection
106 command: docker exec -t solr1 bin/solr create -c lui -d /opt/solr/lui-solr -shards 2 -replicationFactor 2
107 when: (lui_collection.stdout_lines|last).find('lui') == -1