---
# Play: set up head node
# Assumes basic /etc/ansible/hosts file
- hosts: head
  user: ubuntu
  sudo: yes
  vars:
    # Each OpenCloud cluster needs a unique mgmt_net_prefix
    mgmt_net_prefix: 192.168.101
  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
    when: cloudlab

  - 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: Change the virbr0 subnet to {{ mgmt_net_prefix }}.0/24
    template: src=templates/etc/libvirt/qemu/networks/default.xml.j2
      dest=/etc/libvirt/qemu/networks/default.xml
    notify:
    - recreate default net

  handlers:
  - name: recreate default net
    script: scripts/recreate-virbr0.sh

# Play: create VMs to host OpenStack services
- hosts: head
  user: ubuntu
  sudo: yes
  tasks:
  - 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: head
  user: ubuntu
  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: head
  user: ubuntu
  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: head
  user: ubuntu
  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
    when: cloudlab

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

  - 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: compute
  user: ubuntu
  sudo: yes
  vars:
    control_net: "{{ hostvars['head']['ansible_virbr0']['ipv4']['network'] }}/24"
    gateway: "{{ hostvars['head']['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['head']['sshkey']['stdout'] }}"

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

  - name: Add route via /etc/rc.local
    template: src=templates/etc/rc.local
      dest=/etc/rc.local
      mode=0755
    when: not cloudlab
    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
    when: cloudlab

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