add support for running ansible on the head node to provision the compute node

Change-Id: I4adda3e903423e68893d2354d6c9c36469ebb517
diff --git a/roles/ansible/meta/main.yml b/roles/ansible/meta/main.yml
new file mode 100644
index 0000000..49e9f79
--- /dev/null
+++ b/roles/ansible/meta/main.yml
@@ -0,0 +1,14 @@
+---
+galaxy_info:
+  author: Ciena Blueplanet
+  description: Ability to excute Ansible Playbooks
+  company: Ciena Blueplanet
+  license: Apache 2.0
+  min_ansible_version: 2.0
+  platforms:
+    - name: Ubuntu
+      versions:
+        - trusty
+  galaxy_tags:
+    - cord
+dependencies: []
diff --git a/roles/ansible/tasks/main.yml b/roles/ansible/tasks/main.yml
new file mode 100644
index 0000000..f97ecf8
--- /dev/null
+++ b/roles/ansible/tasks/main.yml
@@ -0,0 +1,10 @@
+- name: Ansible Repository
+  become: yes
+  apt_repository:
+    repo="ppa:ansible/ansible"
+
+- name: Ensure Ansible
+  become: yes
+  apt:
+    name=ansible
+    state=latest
diff --git a/roles/compute-node/tasks/main.yml b/roles/compute-node/tasks/main.yml
index 9ba77a4..b5160a6 100644
--- a/roles/compute-node/tasks/main.yml
+++ b/roles/compute-node/tasks/main.yml
@@ -88,3 +88,5 @@
 
 - name: Wait For Restart
   local_action: wait_for host={{ ansible_host }} state=started port=22 delay=30 search_regex=OpenSSH timeout=600
+  tags:
+    - interface_config
diff --git a/roles/head-node/files/compute-node.yml b/roles/head-node/files/compute-node.yml
new file mode 100644
index 0000000..7fb41f0
--- /dev/null
+++ b/roles/head-node/files/compute-node.yml
@@ -0,0 +1,4 @@
+- hosts: all
+  remote_user: ubuntu
+  roles:
+    - compute-node
diff --git a/roles/head-node/meta/main.yml b/roles/head-node/meta/main.yml
new file mode 100644
index 0000000..69caefd
--- /dev/null
+++ b/roles/head-node/meta/main.yml
@@ -0,0 +1,15 @@
+---
+galaxy_info:
+  author: Ciena Blueplanet
+  description: Services Required By Head Node to Provisioning Compute Nodes
+  company: Ciena Blueplanet
+  license: Apache 2.0
+  min_ansible_version: 2.0
+  platforms:
+    - name: Ubuntu
+      versions:
+        - trusty
+  galaxy_tags:
+    - cord
+dependencies:
+  - { role : ansible }
diff --git a/roles/head-node/tasks/main.yml b/roles/head-node/tasks/main.yml
new file mode 100644
index 0000000..820964a
--- /dev/null
+++ b/roles/head-node/tasks/main.yml
@@ -0,0 +1,32 @@
+- name: Ensure MAAS Ansible Config Directory
+  become: yes
+  file:
+    path=/etc/maas/ansible
+    owner=maas
+    group=maas
+    state=directory
+
+- name: Ensure Ansible Compute Config Files
+  become: yes
+  git:
+    repo=http://gerrit.opencord.org/maas
+    dest=/tmp/ansible.maas
+    clone=yes
+    force=yes
+    update=yes
+
+- name: Ensure Ansible Roles
+  become_user: maas
+  command: cp -r /tmp/ansible.maas/{{ item }} /etc/maas/ansible/{{ item }}
+  with_items:
+    - roles
+    - compute-node.yml
+
+- name: Ensure Compute Node Playbook
+  become: yes
+  copy:
+    src=files/compute-node.yml
+    dest=/etc/maas/ansible/compute-node.yml
+    owner=maas
+    group=maas
+    mode=0644