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

  - apt: name={{ item }} update_cache=yes
    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
    - python-novaclient
    - python-neutronclient
    - python-keystoneclient
    - python-glanceclient

  - 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: (CloudLab) Set up extra disk space
    shell: /usr/testbed/bin/mkextrafs /var/lib/uvtool/libvirt/images
      creates=/var/lib/uvtool/libvirt/images/lost+found

  - name: Add myself to libvirtd group
    user: name={{ ansible_env['SUDO_USER'] }}
      groups=libvirtd
      append=yes

  - 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

  - 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

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

  - name: Wait for relations to be fully added
    script: scripts/wait-for-services.sh

# 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: (CloudLab) Make sure that /root/setup exists
    file: path=/root/setup state=directory
    sudo: yes

  - name: (CloudLab) Copy credentials to /root/setup
    shell: scp admin-openrc.sh /root/setup
    sudo: yes

  - 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

  - name: Copy CA certificate
    shell: sudo juju scp nova-cloud-controller/0:/usr/local/share/ca-certificates/keystone_juju_ca_cert.crt /usr/local/share/ca-certificates
      creates=/usr/local/share/ca-certificates/keystone_juju_ca_cert.crt

  - name: Update CA ca-certificates
    shell: update-ca-certificates
    sudo: yes

- 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: (CloudLab) Set up extra disk space
    shell: /usr/testbed/bin/mkextrafs /var/lib/nova
      creates=/var/lib/nova/lost+found

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