Fix paths, minor reorg
diff --git a/singapore-compute.yml b/singapore-compute.yml
index 65d170b..70bc008 100644
--- a/singapore-compute.yml
+++ b/singapore-compute.yml
@@ -14,13 +14,6 @@
 
   - pause: "Wait until relations are added"
 
-  - name: Copy network setup script
-    copy: src=scripts/network-setup.sh
-      dest=/home/ubuntu/network-setup.sh
-
-  - name: Run network setup script
-    shell: ansible nova-cloud-controller -m script -a "/home/ubuntu/network-setup.sh"
-
 # Play: set up ansible-pull for OpenCloud-specific files on nova-compute nodes
 - hosts: singapore-compute
   sudo: yes
@@ -48,6 +41,10 @@
   - name: Install ansible
     apt: name=ansible state=installed
 
+  - name: Basic ansible inventory
+    template: src=templates/etc/ansible/hosts.j2
+      dest=/etc/ansible/hosts
+
   - name: Create local directory to work from
     file: path={{workdir}} state=directory owner=root group=root mode=0751
 
diff --git a/singapore-setup.yml b/singapore-setup.yml
index 9b2171c..bc8e325 100644
--- a/singapore-setup.yml
+++ b/singapore-setup.yml
@@ -24,18 +24,17 @@
     - git
 
   - name: Get juju-ansible git repo
-    sudo: no
     git: repo=https://github.com/cmars/juju-ansible.git
-      dest={{ ansible_env['PWD'] }}/juju-ansible
+      dest=/usr/local/src/juju-ansible
 
   - name: Set up juju-ansible symlink
     file: dest=/usr/local/bin/juju-ansible
-      src={{ ansible_env['PWD'] }}/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={{ ansible_env['PWD'] }}/juju-ansible
+      src=/usr/local/src/juju-ansible/juju-ansible
       state=link
 
   - name: Generate key to use in VMs
@@ -55,6 +54,8 @@
   - 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
@@ -78,6 +79,10 @@
     sudo: no
     shell: ansible services -m ping -u ubuntu
 
+  handlers:
+  - name: Reload dnsmasq
+    shell: killall -HUP dnsmasq
+
 # Play: Install services using Juju
 - hosts: singapore-head
   tasks:
@@ -102,9 +107,9 @@
   # - pause: Break here and try rebooting Juju VM
 
   - name: Copy openstack.cfg for Juju 
-    sudo: no
+    sudo: yes
     copy: src=files/openstack.cfg 
-      dest={{ ansible_env['PWD'] }}/openstack.cfg
+      dest=/usr/local/src/openstack.cfg
 
   - name: Deploy OpenStack services with Juju
     script: scripts/juju-setup.py
@@ -169,6 +174,15 @@
   - 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
@@ -177,8 +191,11 @@
   sudo: yes
   vars: 
     control_net: 192.168.122.0/24
-    gateway: 198.71.44.85
+    gateway: "{{ hostvars['opencloud3.sing.internet2.edu']['ansible_eth0']['ipv4']['address'] }}"
   tasks:
+  - name: Install package needed by Juju
+    apt: name=python-yaml state=present
+
   - name: Add route via /etc/rc.local
     template: src=templates/etc/rc.local
       dest=/etc/rc.local
@@ -187,7 +204,7 @@
     - run /etc/rc.local
 
   - name: Add key
-    authorized_key: user=ubuntu
+    authorized_key: user="{{ ansible_env['SUDO_USER'] }}"
       key="{{ hostvars['opencloud3.sing.internet2.edu']['sshkey']['stdout'] }}"
 
   handlers: