--- # deploy a Docker server with 1 Zookeeper, 3 Solr, 1 HAProxy - hosts: all tasks: - name: Install prereqs from apt become: yes apt: name={{ item }} with_items: - apt-transport-https - ca-certificates - python-virtualenv - python-pip - name: Install prereqs from pip become: yes pip: name={{ item }} with_items: - docker-py - name: Install apt key for Docker become: yes apt_key: id=58118E89F3A912897C070ADBF76221572C52609D keyserver=hkp://p80.pool.sks-keyservers.net:80 - name: Install apt repository for Docker become: yes apt_repository: repo="deb https://apt.dockerproject.org/repo debian-jessie main" - name: Create docker group become: yes group: name=docker - name: Add users to docker group become: yes user: name={{ item }} groups=docker with_items: "{{ docker_users }}" - name: Install Docker Engine become: yes apt: name=docker-engine - name: Start up Docker become: yes service: name=docker enabled=yes state=started - name: Launch ZooKeeper become: yes docker_container: name=zk1 image=jplock/zookeeper - name: Get contents of /solr path in ZooKeeper become: yes command: docker exec -t zk1 bin/zkCli.sh get /solr register: zk1_solr - name: Create /solr path in ZooKeeper become: yes command: docker exec -t zk1 bin/zkCli.sh create /solr [] when: zk1_solr.stdout.find('Node does not exist') != -1 # Separate paths for setting up Solr nodes - hosts: dev roles: - dev - hosts: prod roles: - prod # Back to everyone - hosts: all tasks: - name: Launch Solr1 become: yes docker_container: name: solr1 image: lui-solr tty: yes published_ports: 8983:8983 links: zk1:ZK1 command: bash -c '/opt/solr/bin/solr start -f -z $ZK1_PORT_2181_TCP_ADDR:$ZK1_PORT_2181_TCP_PORT/solr' - name: Launch Solr2 become: yes docker_container: name: solr2 image: lui-solr tty: yes published_ports: 8984:8983 links: zk1:ZK1 command: bash -c '/opt/solr/bin/solr start -f -z $ZK1_PORT_2181_TCP_ADDR:$ZK1_PORT_2181_TCP_PORT/solr' ### HERE I AM ### # wait for ZooKeeper to see all the solr nodes before proceeding # look at Ansible until module - name: Check lui collection become: yes command: docker exec -t zk1 bin/zkCli.sh ls /solr/collections register: lui_collection - name: Create lui collection become: yes command: docker exec -t solr1 bin/solr create -c lui -d /opt/solr/lui-solr -shards 2 when: (lui_collection.stdout_lines|last).find('lui') == -1