From 20479d3784a900127fcd5d74146052f5e0976604 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sun, 5 Aug 2018 01:22:20 -0700
Subject: [PATCH] Working Docker Machine support

See #15
---
 defaults/main.yml                |  6 +++++-
 tasks/install-docker-machine.yml | 10 ++++++++++
 tasks/install-docker.yml         | 16 ++++++++++++++++
 tasks/main.yml                   |  6 ++++++
 tasks/register-runner.yml        |  2 +-
 5 files changed, 38 insertions(+), 2 deletions(-)
 create mode 100644 tasks/install-docker-machine.yml
 create mode 100644 tasks/install-docker.yml

diff --git a/defaults/main.yml b/defaults/main.yml
index 3f2f49c..951897e 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -36,4 +36,8 @@ gitlab_runner_locked: 'false'
 
 # Runner machine
 gitlab_runner_machine_idle_nodes: 0
-gitlab_runner_machine_idle_time: 60
+gitlab_runner_machine_idle_time: 2
+
+# Docker Machine
+docker_machine_version: 'v0.15.0'
+docker_machine_binary_dest: /usr/local/bin/docker-machine
diff --git a/tasks/install-docker-machine.yml b/tasks/install-docker-machine.yml
new file mode 100644
index 0000000..b6f2841
--- /dev/null
+++ b/tasks/install-docker-machine.yml
@@ -0,0 +1,10 @@
+---
+
+- name: Get Docker Machine
+  get_url:
+    url: "https://github.com/docker/machine/releases/download/{{ docker_machine_version }}/docker-machine-{{ ansible_system }}-{{ ansible_architecture }}"
+    dest: /tmp/docker-machine
+
+- name: Install Docker Machine
+  command: 'install /tmp/docker-machine {{ docker_machine_binary_dest }}'
+  become: true
diff --git a/tasks/install-docker.yml b/tasks/install-docker.yml
new file mode 100644
index 0000000..2f3500c
--- /dev/null
+++ b/tasks/install-docker.yml
@@ -0,0 +1,16 @@
+---
+- name: Add Docker signing key
+  apt_key:
+    url: https://download.docker.com/linux/debian/gpg
+    state: present
+
+- name: Add Docker repo
+  apt_repository:
+    repo: 'deb [arch=amd64] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable'
+    state: present
+    filename: 'docker'
+
+- name: Install Docker
+  apt:
+    pkg: docker-ce
+    update_cache: true
diff --git a/tasks/main.yml b/tasks/main.yml
index 271996f..d08afac 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -7,6 +7,12 @@
   import_tasks: install-redhat.yml
   when: ansible_os_family == 'RedHat'
 
+- name: Install Docker
+  import_tasks: install-docker.yml
+
+- name: Install Docker Machine
+  import_tasks: install-docker-machine.yml
+
 - name: Register GitLab Runner
   import_tasks: register-runner.yml
   when: gitlab_runner_registration_token != ''
diff --git a/tasks/register-runner.yml b/tasks/register-runner.yml
index 783b782..c44bf3f 100644
--- a/tasks/register-runner.yml
+++ b/tasks/register-runner.yml
@@ -36,7 +36,7 @@
     --machine-idle-nodes '{{ gitlab_runner_machine_idle_nodes }}'
     --machine-idle-time '{{ gitlab_runner_machine_idle_time }}'
     --machine-machine-driver 'digitalocean'
-    --machine-machine-name 'gitlab-runner-autoscale-%s'
+    --machine-machine-name 'gitlab-%s'
     --machine-machine-options 'digitalocean-image=coreos-stable'
     --machine-machine-options 'digitalocean-ssh-user=core'
     --machine-machine-options 'digitalocean-access-token={{ gitlab_runner_digital_ocean_token }}'
-- 
GitLab