Role conversion of playbooks
diff --git a/roles/common-prep/tasks/main.yml b/roles/common-prep/tasks/main.yml
new file mode 100644
index 0000000..0e5474d
--- /dev/null
+++ b/roles/common-prep/tasks/main.yml
@@ -0,0 +1,16 @@
+---
+# file: roles/common-prep/tasks/main.yml
+
+- name: Upgrade system to current using apt
+ apt: update_cache=yes upgrade=dist
+
+- name: Install standard packages
+ apt: pkg={{ item }} state=present
+ with_items:
+ - tmux
+ - vim
+
+- name: Enable vim syntax highlighting
+ lineinfile: dest=/etc/vim/vimrc
+ regexp="^\s*syntax on"
+ line="syntax on"
diff --git a/roles/compute-prep/tasks/main.yml b/roles/compute-prep/tasks/main.yml
new file mode 100644
index 0000000..aedd62a
--- /dev/null
+++ b/roles/compute-prep/tasks/main.yml
@@ -0,0 +1,8 @@
+---
+# file: roles/compute-prep/tasks/main.yml
+
+- name: Install packages
+ apt: name={{ item }} state=latest update_cache=yes
+ with_items:
+ - python-yaml
+
diff --git a/roles/create-vms/defaults/main.yml b/roles/create-vms/defaults/main.yml
new file mode 100644
index 0000000..d8d5ea7
--- /dev/null
+++ b/roles/create-vms/defaults/main.yml
@@ -0,0 +1,17 @@
+---
+# roles/create-vms/defaults/main.yml
+# default variables for xos-install role
+
+head_vm_list:
+ - { name: "juju", cpu: "1", memMB: "2048", diskGB: "20" }
+ - { name: "mysql", cpu: "2", memMB: "4096", diskGB: "40" }
+ - { name: "rabbitmq-server", cpu: "2", memMB: "4096", diskGB: "40" }
+ - { name: "keystone", cpu: "2", memMB: "4096", diskGB: "40" }
+ - { name: "glance", cpu: "2", memMB: "4096", diskGB: "160" }
+ - { name: "nova-cloud-controller", cpu: "2", memMB: "4096", diskGB: "40" }
+ - { name: "neutron-gateway", cpu: "2", memMB: "4096", diskGB: "40" }
+ - { name: "neutron-api", cpu: "2", memMB: "4096", diskGB: "40" }
+ - { name: "openstack-dashboard", cpu: "1", memMB: "2048", diskGB: "20" }
+ - { name: "ceilometer", cpu: "1", memMB: "2048", diskGB: "20" }
+ - { name: "nagios", cpu: "1", memMB: "2048", diskGB: "20" }
+
diff --git a/roles/create-vms/tasks/main.yml b/roles/create-vms/tasks/main.yml
new file mode 100644
index 0000000..123b86b
--- /dev/null
+++ b/roles/create-vms/tasks/main.yml
@@ -0,0 +1,18 @@
+---
+# roles/create-vms/tasks/main.yml
+
+- name: create Virtual Machines with uvt-kvm
+ shell: uvt-kvm create {{ item.name }} --cpu={{ item.cpu }} --memory={{ item.memMB }} --disk={{ item.diskGB }}; \
+ uvt-kvm wait --insecure {{ item.name }}
+ creates=/var/lib/uvtool/libvirt/images/{{ item.name }}.qcow
+ with_items: head_vm_list
+
+- name: discover VM IP addresses
+ shell: uvt-kvm ip {{ item.name }}
+ with_items: head_vm_list
+ register: vm_ip
+
+- name: Create /etc/hosts with VM IP addresses
+ template:
+ src=hosts.j2
+ dest=/etc/hosts
diff --git a/roles/create-vms/templates/hosts.j2 b/roles/create-vms/templates/hosts.j2
new file mode 100644
index 0000000..ebc3706
--- /dev/null
+++ b/roles/create-vms/templates/hosts.j2
@@ -0,0 +1,10 @@
+127.0.0.1 localhost
+127.0.1.1 ubuntu
+{% for host in vm_ip.results -%}
+{{ host.stdout }} {{ host.item.name }}
+{% endfor -%}
+
+# The following lines are desirable for IPv6 capable hosts
+::1 localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
diff --git a/roles/head-prep/tasks/main.yml b/roles/head-prep/tasks/main.yml
new file mode 100644
index 0000000..d0638b6
--- /dev/null
+++ b/roles/head-prep/tasks/main.yml
@@ -0,0 +1,76 @@
+---
+# file: roles/head-prep/tasks/main.yml
+
+- name: Install prerequisites for using PPA repos
+ apt:
+ name={{ item }}
+ with_items:
+ - python-pycurl
+ - software-properties-common
+
+- name: Add Ansible/Juju repositories
+ apt_repository:
+ repo={{ item }}
+ with_items:
+ - "ppa:juju/stable"
+ - "ppa:ansible/ansible"
+
+- name: Install packages
+ apt:
+ name={{ item }}
+ state=latest
+ update_cache=yes
+ with_items:
+ - ansible
+ - uvtool
+ - git
+ - bzr
+ - juju-core
+ - python-novaclient
+ - python-neutronclient
+ - python-keystoneclient
+ - python-glanceclient
+
+- name: Obtain the juju-ansible tool from github
+ git:
+ repo=https://github.com/cmars/juju-ansible.git
+ dest=/usr/local/src/juju-ansible
+ version="HEAD"
+
+- name: Create symlinks to the juju-ansible tool
+ file:
+ src=/usr/local/src/juju-ansible/juju-ansible
+ dest={{ item }}
+ state=link
+ with_items:
+ - "/usr/local/bin/juju-ansible"
+ - "/usr/local/bin/juju-ansible-playbook"
+
+- name: Prepare user account and generate SSH key
+ user:
+ name={{ ansible_env['SUDO_USER'] }}
+ generate_ssh_key=yes
+ groups="libvirtd" append=yes
+
+- name: Get public key
+ shell: cat {{ ansible_env['PWD'] }}/.ssh/id_rsa.pub
+ register: sshkey
+
+- name: Add key to this user account
+ authorized_key:
+ user={{ ansible_env['SUDO_USER'] }}
+ key="{{ sshkey.stdout }}"
+
+- name: Copy keypair to /tmp
+ shell: cp -f {{ ansible_user_dir }}/.ssh/{{ item }} /tmp; chmod +r /tmp/{{ item }}
+ with_items:
+ - id_rsa
+ - id_rsa.pub
+
+- name: Get ubuntu image for uvtool
+ shell: uvt-simplestreams-libvirt sync --source http://cloud-images.ubuntu.com/daily release={{ ansible_distribution_release }} arch=amd64
+
+
+
+
+
diff --git a/roles/test-prep/tasks/main.yml b/roles/test-prep/tasks/main.yml
new file mode 100644
index 0000000..1ebf604
--- /dev/null
+++ b/roles/test-prep/tasks/main.yml
@@ -0,0 +1,9 @@
+---
+# roles/test-prep/tasks/main.yml
+
+- name: Add local resolver to /etc/resolv.conf
+ lineinfile:
+ dest=/etc/resolv.conf
+ insertafter=".*DO NOT EDIT THIS FILE.*"
+ line="nameserver 192.168.122.1"
+