From 479d0e858d9687af6b4208b099494ba6d997ce59 Mon Sep 17 00:00:00 2001
From: Antoine Legrand <2t.antoine@gmail.com>
Date: Wed, 31 Oct 2018 11:52:47 +0100
Subject: [PATCH] Add playbook to install mitogen (#3622)

---
 Makefile     |  5 +++++
 ansible.cfg  |  2 ++
 mitogen.yaml | 30 ++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+)
 create mode 100644 Makefile
 create mode 100644 mitogen.yaml

diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..70ee29cf5
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+mitogen:
+	ansible-playbook -c local mitogen.yaml -vv
+clean:
+	rm -rf dist/
+	rm *.retry
diff --git a/ansible.cfg b/ansible.cfg
index 6912e4d08..bed2c4ae7 100644
--- a/ansible.cfg
+++ b/ansible.cfg
@@ -3,6 +3,8 @@ pipelining=True
 ssh_args = -o ControlMaster=auto -o ControlPersist=30m -o ConnectionAttempts=100 -o UserKnownHostsFile=/dev/null
 #control_path = ~/.ssh/ansible-%%r@%%h:%%p
 [defaults]
+strategy_plugins = plugins/mitogen/ansible_mitogen/plugins/strategy
+
 host_key_checking=False
 gathering = smart
 fact_caching = jsonfile
diff --git a/mitogen.yaml b/mitogen.yaml
new file mode 100644
index 000000000..5cae114ff
--- /dev/null
+++ b/mitogen.yaml
@@ -0,0 +1,30 @@
+- hosts: localhost
+  strategy: linear
+  vars:
+    mitogen_version: master
+    mitogen_url: https://github.com/dw/mitogen/archive/{{mitogen_version}}.zip
+  tasks:
+    - name: Create mitogen plugin dir
+      file:
+        path: "{{item}}"
+        state: directory
+      become: false
+      loop:
+        - "{{playbook_dir}}/plugins/mitogen"
+        - "{{playbook_dir}}/dist"
+
+    - name: download mitogen release
+      get_url:
+        url: "{{mitogen_url}}"
+        dest: "{{playbook_dir}}/dist/mitogen_{{mitogen_version}}.zip"
+        validate_certs: true
+
+    - name: extract zip
+      unarchive:
+        src: "{{playbook_dir}}/dist/mitogen_{{mitogen_version}}.zip"
+        dest: "{{playbook_dir}}/dist/"
+
+    - name: copy plugin
+      synchronize:
+        src: "{{playbook_dir}}/dist/mitogen-{{mitogen_version}}/"
+        dest: "{{playbook_dir}}/plugins/mitogen"
-- 
GitLab