move docker installation into it's own playbook, run when creating vm's
diff --git a/roles/create-vms/files/docker-install-playbook.yml b/roles/create-vms/files/docker-install-playbook.yml
new file mode 100644
index 0000000..601d8b2
--- /dev/null
+++ b/roles/create-vms/files/docker-install-playbook.yml
@@ -0,0 +1,40 @@
+---
+# Installs docker with apt, docker-compose with pip, adds user to group
+# Must be run as root
+
+# https://docs.docker.com/engine/installation/linux/ubuntulinux/
+- name: Prereqs and SSL support for apt for SSL
+ apt:
+ name={{ item }}
+ update_cache=yes
+ cache_valid_time=3600
+ with_items:
+ - apt-transport-https
+ - ca-certificates
+ - python-pip
+
+- name: Trust docker apt key
+ apt_key:
+ keyserver=pool.sks-keyservers.net
+ id=58118E89F3A912897C070ADBF76221572C52609D
+
+- name: Add docker apt repo
+ apt_repository:
+ repo="deb https://apt.dockerproject.org/repo ubuntu-trusty main"
+
+- name: Install docker
+ apt:
+ update_cache=yes
+ cache_valid_time=3600
+ name=docker-engine
+
+- name: Make user part of the Docker group
+ user:
+ name={{ ansible_user_id }}
+ groups="docker" append=yes
+
+# https://docs.docker.com/compose/install/#install-using-pip
+- name: Install docker-compose from PyPi
+ pip:
+ name=docker-compose
+
diff --git a/roles/create-vms/tasks/main.yml b/roles/create-vms/tasks/main.yml
index f830fde..c6e766b 100644
--- a/roles/create-vms/tasks/main.yml
+++ b/roles/create-vms/tasks/main.yml
@@ -50,7 +50,16 @@
command: ansible services -m ping -u ubuntu
# sshkey is registered in head-prep task
-- name: Enable root ssh login on VM's that need it
+- name: Enable root ssh login on VM's that require it
command: ansible {{ item.name }} -b -u ubuntu -m authorized_key -a "user='root' key='{{ sshkey.stdout }}'"
with_items: "{{ head_vm_list | selectattr('root_ssh_login', 'defined') | list }}"
+- name: Copy over docker installation playbook
+ copy:
+ src="docker-install-playbook.yml"
+ dest="{{ ansible_user_dir }}/docker-install-playbook.yml"
+
+- name: Install docker in VM's that require it
+ command: ansible-playbook -i {{ item.name }} -b -u ubuntu "{{ ansible_user_dir }}/docker-install-playbook.yml"
+ with_items: "{{ head_vm_list | selectattr('docker_path', 'defined') | list }}"
+