progress on integrating CORD single node setup with roles
diff --git a/cord-playbook.yml b/cord-playbook.yml
new file mode 100644
index 0000000..9c72ab2
--- /dev/null
+++ b/cord-playbook.yml
@@ -0,0 +1,38 @@
+---
+# CORD playbook, for installing a single-node CORD test-environment on cloudlab
+
+- name: Include Configuration
+ hosts: all
+ tasks:
+ - include_vars: vars/cord_defaults.yml
+ - include_vars: vars/cord.yml
+ - include_vars: vars/cord_keystone.yml
+
+- name: Prep systems
+ hosts: all
+ become: yes
+ roles:
+ - common-prep
+ - cloudlab-prep
+
+- name: DNS Server Setup
+ hosts: head
+ become: yes
+ roles:
+ - dns-nsd
+ - dns-unbound
+
+- name: Configure all hosts to use DNS server
+ hosts: all
+ become: yes
+ roles:
+ - dns-configure
+
+- name: Configure head node, create VM's, and start Juju setup
+ hosts: head
+ roles:
+ - { role: head-prep, become: yes }
+ - { role: config-virt, become: yes }
+ - juju-user-prep
+ - juju-setup
+
diff --git a/inventory/cord-cloudlab b/inventory/cord-cloudlab
new file mode 100644
index 0000000..cb5cc3b
--- /dev/null
+++ b/inventory/cord-cloudlab
@@ -0,0 +1,6 @@
+[all:vars]
+ansible_ssh_user=zdw
+
+[head]
+c220g2-011128.wisc.cloudlab.us
+
diff --git a/roles/cloudlab-prep/defaults/main.yml b/roles/cloudlab-prep/defaults/main.yml
new file mode 100644
index 0000000..00a4575
--- /dev/null
+++ b/roles/cloudlab-prep/defaults/main.yml
@@ -0,0 +1,6 @@
+---
+# roles/cloudlab-prep/defaults/main.yml
+
+cloudlab_extrafs:
+ - /var/lib/nova
+ # - /var/lib/uvtool/libvirt/images
diff --git a/roles/cloudlab-prep/tasks/main.yml b/roles/cloudlab-prep/tasks/main.yml
index e23168b..3dc0985 100644
--- a/roles/cloudlab-prep/tasks/main.yml
+++ b/roles/cloudlab-prep/tasks/main.yml
@@ -1,7 +1,15 @@
---
# roles/cloudlab-prep/tasks/main.yml
-- name: Set up extra disk space
- command: /usr/testbed/bin/mkextrafs -f /var/lib/uvtool/libvirt/images
- creates=/var/lib/uvtool/libvirt/images/lost+found
+- name: create directories to mount extra filesystems
+ file:
+ dest={{ item }}
+ state=directory
+ with_items: "{{ cloudlab_extrafs }}"
+
+
+- name: Set up extra disk space
+ command: /usr/testbed/bin/mkextrafs -f {{ item }}
+ creates={{ item }}/lost+found
+ with_items: "{{ cloudlab_extrafs }}"
diff --git a/roles/config-virt/defaults/main.yml b/roles/config-virt/defaults/main.yml
new file mode 100644
index 0000000..8a1faf1
--- /dev/null
+++ b/roles/config-virt/defaults/main.yml
@@ -0,0 +1,4 @@
+---
+# roles/config-virt/defaults/main.yml
+
+mgmtbr_name: virbr0
diff --git a/roles/config-virt/tasks/main.yml b/roles/config-virt/tasks/main.yml
index 76f14ae..d74d4f3 100644
--- a/roles/config-virt/tasks/main.yml
+++ b/roles/config-virt/tasks/main.yml
@@ -1,5 +1,5 @@
---
-# roles/config-virt/main/tasks.yml
+# roles/config-virt/tasks/main.yml
- name: Get ubuntu image for uvtool
command: uvt-simplestreams-libvirt sync --source http://cloud-images.ubuntu.com/daily \
diff --git a/roles/config-virt/templates/default.xml.j2 b/roles/config-virt/templates/default.xml.j2
index 5183aca..7914a2e 100644
--- a/roles/config-virt/templates/default.xml.j2
+++ b/roles/config-virt/templates/default.xml.j2
@@ -1,6 +1,6 @@
<network>
<name>default</name>
- <bridge name="virbr0"/>
+ <bridge name="{{ mgmtbr_name }}"/>
<forward/>
<domain name="{{ site_suffix }}" localonly="no"/>
<dns>
diff --git a/roles/dns-unbound/templates/unbound.conf.j2 b/roles/dns-unbound/templates/unbound.conf.j2
index 1583028..2e1c89f 100644
--- a/roles/dns-unbound/templates/unbound.conf.j2
+++ b/roles/dns-unbound/templates/unbound.conf.j2
@@ -15,7 +15,7 @@
# allow from local networks
{% for cidr_ipv4 in unbound_interfaces %}
- access-control: {{ cidr_ipv4 | ipaddr('network') }}/28 allow
+ access-control: {{ cidr_ipv4 }} allow
{% endfor %}
{% if nsd_zones is defined %}
diff --git a/vars/cord.yml b/vars/cord.yml
new file mode 100644
index 0000000..0103ec8
--- /dev/null
+++ b/vars/cord.yml
@@ -0,0 +1,31 @@
+---
+# file: group_vars/aztest.yml
+
+# IP prefix for VMs
+mgmtbr_prefix: 192.168.122
+
+# site domain suffix
+site_suffix: cordtest.opencloud.us
+
+# NSD/Unbound settings
+
+nsd_zones:
+ - name: cordtest.opencloud.us
+ ipv4_first_octets: 192.168.122
+ name_reverse_unbound: "168.192.in-addr.arpa"
+ soa: ns1
+ ns:
+ - { name: ns1 }
+ nodelist: head_vm_list
+
+unbound_interfaces:
+ - 128.104.222.180/23
+
+# resolv.conf settings
+dns_servers:
+ - 128.104.222.180
+
+dns_search:
+ - cordtest.opencloud.us
+
+
diff --git a/vars/cord_defaults.yml b/vars/cord_defaults.yml
new file mode 100644
index 0000000..5fc9d7d
--- /dev/null
+++ b/vars/cord_defaults.yml
@@ -0,0 +1,215 @@
+---
+# vars/opencloud_defaults.yml
+
+openstack_version: kilo
+openstack_cfg_path: /usr/local/src/openstack.cfg
+
+mgmtbr_name: mgmtbr
+
+head_vm_list:
+ - name: "juju-1"
+ service: "juju"
+ aliases:
+ - "juju"
+ ipv4_last_octet: 10
+ cpu: 1
+ memMB: 2048
+ diskGB: 20
+
+ - name: "ceilometer-1"
+ service: "ceilometer"
+ aliases:
+ - "ceilometer"
+ ipv4_last_octet: 20
+ cpu: 1
+ memMB: 2048
+ diskGB: 20
+ forwarded_ports:
+ - { ext: 8777, int: 8777 }
+
+ - name: "glance-1"
+ service: "glance"
+ aliases:
+ - "glance"
+ ipv4_last_octet: 30
+ cpu: 2
+ memMB: 4096
+ diskGB: 160
+ forwarded_ports:
+ - { ext: 9292, int: 9292 }
+
+ - name: "keystone-1"
+ service: "keystone"
+ aliases:
+ - "keystone"
+ ipv4_last_octet: 40
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+ forwarded_ports:
+ - { ext: 35357, int: 35357 }
+ - { ext: 4990, int: 4990 }
+ - { ext: 5000, int: 5000 }
+
+ - name: "mysql-1"
+ service: "mysql"
+ aliases:
+ - "mysql"
+ ipv4_last_octet: 50
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+
+ - name: "nagios-1"
+ service: "nagios"
+ aliases:
+ - "nagios"
+ ipv4_last_octet: 60
+ cpu: 1
+ memMB: 2048
+ diskGB: 20
+ forwarded_ports:
+ - { ext: 3128, int: 80 }
+
+ - name: "neutron-api-1"
+ service: "neutron-api"
+ aliases:
+ - "neutron-api"
+ ipv4_last_octet: 70
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+ forwarded_ports:
+ - { ext: 9696, int: 9696 }
+
+ - name: "nova-cloud-controller-1"
+ service: "nova-cloud-controller"
+ aliases:
+ - "nova-cloud-controller"
+ ipv4_last_octet: 80
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+ forwarded_ports:
+ - { ext: 8774, int: 8774 }
+
+ - name: "openstack-dashboard-1"
+ service: "openstack-dashboard"
+ aliases:
+ - "openstack-dashboard"
+ ipv4_last_octet: 90
+ cpu: 1
+ memMB: 2048
+ diskGB: 20
+ forwarded_ports:
+ - { ext: 8080, int: 80 }
+
+ - name: "rabbitmq-server-1"
+ service: "rabbitmq-server"
+ aliases:
+ - "rabbitmq-server"
+ ipv4_last_octet: 100
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+
+ - name: "onos-cord-1"
+ aliases:
+ - "onos-cord"
+ ipv4_last_octet: 110
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+
+ - name: "onos-fabric-1"
+ aliases:
+ - "onos-fabric"
+ ipv4_last_octet: 120
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+
+ - name: "xos-1"
+ aliases:
+ - "xos"
+ ipv4_last_octet: 130
+ cpu: 2
+ memMB: 4096
+ diskGB: 40
+
+ - name: "nova-compute-1"
+ service: "nova-compute"
+ aliases:
+ - "nova-compute"
+ ipv4_last_octet: 140
+ cpu: 6
+ memMB: 16384
+ diskGB: 240
+
+
+vm_service_list:
+ - ceilometer
+ - glance
+ - keystone
+ - mysql
+ - nagios
+ - neutron-api
+ - nova-cloud-controller
+ - openstack-dashboard
+ - rabbitmq-server
+ - nova-compute
+
+standalone_service_list:
+ - ntp
+ - nrpe
+ - ceilometer-agent
+
+service_relations:
+ - name: keystone
+ relations: [ "mysql", "nrpe", ]
+
+ - name: nova-cloud-controller
+ relations: [ "mysql", "rabbitmq-server", "glance", "keystone", "nrpe", ]
+
+ - name: glance
+ relations: [ "mysql", "keystone", "nrpe", ]
+
+ - name: neutron-api
+ relations: [ "keystone", "neutron-openvswitch", "mysql", "rabbitmq-server", "nova-cloud-controller", "nrpe", ]
+
+ - name: neutron-openvswitch
+ relations: [ "rabbitmq-server", ]
+
+ - name: openstack-dashboard
+ relations: [ "keystone", "nrpe", ]
+
+ - name: nagios
+ relations: [ "nrpe", ]
+
+ - name: "mysql:juju-info"
+ relations: [ "nrpe:general-info", ]
+
+ - name: rabbitmq-server
+ relations: [ "nrpe", ]
+
+ - name: ceilometer
+ relations: [ "mongodb", "rabbitmq-server", "nagios", "nrpe", ]
+
+ - name: "ceilometer:identity-service"
+ relations: [ "keystone:identity-service", ]
+
+ - name: "ceilometer:ceilometer-service"
+ relations: [ "ceilometer-agent:ceilometer-service", ]
+
+ - name: nova-compute
+ relations: [ "glance", "nova-cloud-controller", "nagios", "nrpe", ]
+
+ - name: "nova-compute:shared-db"
+ relations: [ "mysql:shared-db", ]
+
+ - name: "nova-compute:amqp"
+ relations: [ "rabbitmq-server:amqp", ]
+
+ - name: ntp
+ relations: [ "nova-compute", ]
+
diff --git a/vars/example_keystone.yml b/vars/example_keystone.yml
new file mode 100644
index 0000000..14df06f
--- /dev/null
+++ b/vars/example_keystone.yml
@@ -0,0 +1,4 @@
+---
+
+keystone_admin_password: "VeryLongKeystoneAdminPassword"
+