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