more dns-ification work
diff --git a/roles/juju-openstack-config/tasks/main.yml b/roles/juju-openstack-config/tasks/main.yml
index 47d4cc7..7d6d1b0 100644
--- a/roles/juju-openstack-config/tasks/main.yml
+++ b/roles/juju-openstack-config/tasks/main.yml
@@ -1,19 +1,45 @@
---
# roles/juju-openstack-config/main/tasks.yml
-- name: Obtain keystone admin password
- command: "juju run --unit={{ juju_services['keystone']['units'].keys()[0] }} 'sudo cat /var/lib/keystone/keystone.passwd'"
- register: keystone_password
+- name: add compute nodes
+ command: juju add-machine ssh:ubuntu@{{ item }}
+ with_items: "{{ groups['compute'] | difference( juju_machines.keys() ) }}"
+ register: added-compute-nodes
-- name: Obtain keystone IP address
- command: uvt-kvm ip keystone
- register: keystone_ip
+# run this again, so add-machine items will be in the juju_compute_nodes list
+- name: Obtain Juju Facts after adding compute nodes
+ when: added-compute-nodes
+ juju_facts:
-- name: Create admin-openrc.sh credentials file
- template:
- src=admin-openrc.sh.j2
- dest={{ ansible_user_dir }}/admin-openrc.sh
+# the crazy [ ] in the with-items is so that jinja compares arrays of strings,
+# rather than strings of characters
+- name: add-unit nova-compute to first compute node
+ command: "juju deploy nova-compute --to {{ juju_machines[item]['machine_id'] }} --config={{ openstack_cfg_path }}"
+ with_items: "{{ [ groups['compute'][0] ] | difference( juju_compute_nodes.keys() ) }}"
+ register: added-first-nova-compute
+# run this again, so first nova compute will be in the juju_compute_nodes list
+- name: Obtain Juju Facts nova-compute deploy
+ juju_facts:
+ when: added-first-nova-compute
+
+- name: add-unit nova-compute to other compute nodes
+ command: "juju add-unit nova-compute --to {{ juju_machines[item]['machine_id'] }}"
+ with_items: "{{ groups['compute'] | difference( juju_compute_nodes.keys() ) }}"
+
+# added this to openstack.cfg
+# - name: Have nova-compute use KVM as its virt-type
+# command: juju set nova-compute virt-type=kvm
+
+- name: Create relations to compute
+ command: "juju add-relation '{{ item.0.name }}' '{{ item.1 }}'"
+ register: compute_relation
+ failed_when: "compute_relation|failed and 'relation already exists' not in compute_relation.stderr"
+ with_subelements:
+ - "{{ compute_relations }}"
+ - relations
+
+# need to ansible-ify these
- name: Copy credentials file to nova-cloud-controller
command: "scp {{ ansible_user_dir }}/admin-openrc.sh ubuntu@nova-cloud-controller:"
@@ -25,12 +51,6 @@
mode=0644 owner=root
- name: Run network setup script
- command: ansible nova-cloud-controller -m script -u ubuntu -a "/usr/local/src/network-setup.sh"
+ command: ansible nova-cloud-controller-1 -m script -u ubuntu -a "/usr/local/src/network-setup.sh"
-- name: Copy nova-cloud-controller CA certificate to local
- become: yes
- command: juju scp {{ juju_services['nova-cloud-controller']['units'].keys()[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
- notify: update-ca-certificates