X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=docker%2Fdocker-deploy.yml;fp=docker%2Fdocker-deploy.yml;h=628095ac09718e836d23c719221de8f46dc5ef6c;hb=93e24f7f2f88b8a2c7c482cf9463f8a4321211b5;hp=0000000000000000000000000000000000000000;hpb=71a3ba5d1ca557850ed65ab77de142110dc8041e;p=lui-solr.git diff --git a/docker/docker-deploy.yml b/docker/docker-deploy.yml new file mode 100644 index 0000000..628095a --- /dev/null +++ b/docker/docker-deploy.yml @@ -0,0 +1,98 @@ +--- +# 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: Check for luinet network + command: docker network ls -f name=luinet -q + register: luinet + + - name: Create luinet network + command: docker network create luinet + when: luinet.stdout == "" + + - name: Launch ZooKeeper + docker_container: name=zk1 image=jplock/zookeeper + + - name: Get networks for ZooKeeper + shell: "docker inspect --format={% raw %}'{{json .NetworkSettings.Networks}}'{% endraw %} zk1" + register: zk1_networks + + - name: Attach ZooKeeper to luinet network + command: docker network connect luinet zk1 + when: (zk1_networks.stdout|from_json).luinet is not defined + + - name: Detach ZooKeeper from bridge network + command: docker network disconnect bridge zk1 + when: (zk1_networks.stdout|from_json).bridge is defined + +- hosts: dev + roles: + - dev + +- hosts: prod + roles: + - prod + +- hosts: all + + tasks: + - name: Get networks for Solr + shell: "docker inspect --format={% raw %}'{{json .NetworkSettings.Networks}}'{% endraw %} solr1" + register: solr1_networks + + - name: Attach Solr to luinet network + command: docker network connect luinet solr1 + when: (solr1_networks.stdout|from_json).luinet is not defined + + - name: Detach Solr from bridge network + command: docker network disconnect bridge solr1 + when: (solr1_networks.stdout|from_json).bridge is defined + + # - name: Create Solr container + # docker_container: + # name: solr1 + # tty: yes + # published_ports: 8983:8983 + # #volumes: /vagrant/conf/solr/solr-home:/opt/solr/server/solr + # command: bash -c '/opt/solr/bin/solr start -f -z zk1:2181'