---
# Play: set up head node
# Assumes basic /etc/ansible/hosts file
- hosts: cloudlab-head
  sudo: yes
  tasks:

  - apt: name={{ item }}
    with_items:
    - python-pycurl
    - software-properties-common

  - name: Add Juju repository
    apt_repository: repo="ppa:juju/stable"

  - name: Add Ansible repository
    apt_repository: repo="ppa:ansible/ansible"

  - name: Update Ansible cache
    apt: update_cache=yes

  - name: Install packages
    apt: name={{ item }} state=latest
    with_items:
    - ansible
    - uvtool
    - git
    - bzr
    - juju-core

  - name: Get juju-ansible git repo
    git: repo=https://github.com/cmars/juju-ansible.git
      dest=/usr/local/src/juju-ansible

  - name: Set up juju-ansible symlink
    file: dest=/usr/local/bin/juju-ansible
      src=/usr/local/src/juju-ansible/juju-ansible
      state=link

  - name: Set up juju-ansible-playbook symlink
    file: dest=/usr/local/bin/juju-ansible-playbook
      src=/usr/local/src/juju-ansible/juju-ansible
      state=link

  - name: Generate key to use in VMs
    user: name={{ ansible_env['SUDO_USER'] }} generate_ssh_key=yes

  - name: Set up extra space on CloudLab nodes
    shell: /usr/testbed/bin/mkextrafs /var/lib/uvtool/libvirt/images
      creates=/var/lib/uvtool/libvirt/images/lost+found

  - name: Add myself to libvirtd group
    shell: usermod -aG libvirtd {{ ansible_env['SUDO_USER'] }}

  - name: Get trusty image for uvtool
    shell: uvt-simplestreams-libvirt sync --source http://cloud-images.ubuntu.com/daily release=trusty arch=amd64

  - name: Create VMs to host OpenCloud services
    sudo: no
    script: scripts/create-vms.sh

  - include: tasks/vm-ips.yml

  - name: Add VMs to /etc/hosts
    template: src=templates/etc/hosts.j2
      dest=/etc/hosts
    notify:
    - Reload dnsmasq

  - name: Set up /etc/ansible/hosts
    template: src=templates/etc/ansible/hosts.j2
      dest=/etc/ansible/hosts

  - name: Copy ansible.cfg to disable host key checking
    sudo: no
    copy: src=files/ansible.cfg
      dest={{ ansible_env['PWD'] }}/.ansible.cfg

  - name: Touch ~/.ssh/config
    sudo: no
    file: path={{ ansible_env['PWD'] }}/.ssh/config state=touch

  - name: Disable host key checking in SSH
    sudo: no
    lineinfile: dest={{ ansible_env['PWD'] }}/.ssh/config
      line="StrictHostKeyChecking no"

  - name: Test that we can log into every VM
    sudo: no
    shell: ansible services -m ping -u ubuntu

  handlers:
  - name: Reload dnsmasq
    shell: killall -HUP dnsmasq

# Play: Install services using Juju
- hosts: cloudlab-head
  vars:
    charm_src: /usr/local/src/charms/trusty
  tasks:
  - name: Initialize Juju
    sudo: no
    shell: juju generate-config
      creates={{ ansible_env['PWD'] }}/.juju/environments.yaml

  - shell: uvt-kvm ip juju
    register: juju_ip

  - name: Juju config file
    sudo: no
    template: src=templates/environments.yaml.j2
      dest={{ ansible_env['PWD'] }}/.juju/environments.yaml

  - name: Bootstrap Juju
    sudo: no
    shell: juju bootstrap
      creates={{ ansible_env['PWD'] }}/.juju/environments/manual.jenv

  # - pause: Break here and try rebooting Juju VM

  - name: Copy openstack.cfg for Juju
    sudo: yes
    copy: src=files/openstack.cfg
      dest=/usr/local/src/openstack.cfg

  - name: Check for /usr/local/src/charms/trusty
    sudo: yes
    file: path={{ charm_src }}
       state=directory
       mode=0755

  - name: Deploy OpenStack services with Juju
    script: scripts/juju-setup.py

#  - pause: prompt="Hit return when all services have started successfully"

  - name: Set MTU for GRE tunneling
    shell: "juju set neutron-gateway instance-mtu=1400"

# Disable all HTTPS for time being
  - name: Use HTTPS for keystone authentication
    shell: 'juju set keystone use-https=no'

  - name: Use HTTPS for all service endpoints
    shell: 'juju set keystone https-service-endpoints=False'

  - name: Use SSL for rabbitmq
    shell: 'juju set rabbitmq-server ssl=off'

  - name: Add all Juju relations between services
    script: scripts/juju-relations.py

  - pause: prompt="Wait for relations to be fully added"

# Play: Use libvirt hooks to set up iptables
- hosts: cloudlab-head
  sudo: yes
  tasks:
  - name: Enable port forwarding for services
    copy: src=files/{{ item }}
      dest={{ item }}
      mode=0755
    notify:
    - reload libvirt config
    - run qemu hook
    with_items:
    - /etc/libvirt/hooks/daemon
    - /etc/libvirt/hooks/qemu

  handlers:
  - name: reload libvirt config
    shell: killall -HUP libvirtd

  - name: run qemu hook
    shell: /etc/libvirt/hooks/qemu start start

# Play: Create credentials, set up some basic OpenStack
- hosts: cloudlab-head
  sudo: no
  tasks:

  - name: Get keystone admin password
    shell: juju run --unit=keystone/0 "sudo cat /var/lib/keystone/keystone.passwd"
    register: keystone_password

  - shell: uvt-kvm ip keystone
    register: keystone_ip

  - name: Create credentials
    template: src=templates/admin-openrc.sh.j2
     dest={{ ansible_env['PWD'] }}/admin-openrc.sh

  - name: Copy credentials to nova-cloud-controller
    shell: "scp admin-openrc.sh ubuntu@nova-cloud-controller:"

  - name: Copy network setup script
    sudo: yes
    copy: src=scripts/network-setup.sh
      dest=/usr/local/src/network-setup.sh
      mode=0644

#  - name: Run network setup script
#    shell: ansible nova-cloud-controller -m script -u ubuntu -a "/usr/local/src/network-setup.sh"

  - name: Get public key
    shell: cat {{ ansible_env['PWD'] }}/.ssh/id_rsa.pub
    register: sshkey

- hosts: cloudlab-compute
  sudo: yes
  vars:
    control_net: 192.168.122.0/24
    gateway: "{{ hostvars['ctl.install.xos-pg0.clemson.cloudlab.us']['ansible_default_ipv4']['address'] }}"
  tasks:
  - name: Install package needed by Juju
    apt: name=python-yaml state=present

  - name: Add key
    authorized_key: user="{{ ansible_env['SUDO_USER'] }}"
      key="{{ hostvars['ctl.install.xos-pg0.clemson.cloudlab.us']['sshkey']['stdout'] }}"

  - name: Add route via /etc/rc.local
    template: src=templates/etc/rc.local.cloudlab
      dest=/etc/rc.local
      mode=0755
    notify:
    - run /etc/rc.local

  - name: Touch ~/.ssh/config
    file: path=/var/lib/nova state=directory

  - name: Set up extra space on CloudLab nodes
    shell: /usr/testbed/bin/mkextrafs /var/lib/nova
      creates=/var/lib/nova/lost+found

  handlers:
  - name: run /etc/rc.local
    shell: /etc/rc.local
