From b9eae6b189acaaa65e4b2dc5d008818ca7654980 Mon Sep 17 00:00:00 2001
From: Emiliano Vavassori <syntaxerrormmm@gmail.com>
Date: Fri, 17 Jan 2020 00:59:01 +0100
Subject: [PATCH] Rewritten epoptes client management.

---
 roles/client/tasks/epoptes.yml | 52 ++++++++++------------------------
 1 file changed, 15 insertions(+), 37 deletions(-)

diff --git a/roles/client/tasks/epoptes.yml b/roles/client/tasks/epoptes.yml
index 1560505..3585219 100644
--- a/roles/client/tasks/epoptes.yml
+++ b/roles/client/tasks/epoptes.yml
@@ -1,48 +1,26 @@
 ---
 # Managing epoptes on 'client' role
 
-- name: Getting epoptes server name
-  get_url:
-    url: "http://{{ ansible_local.domain.serverfqdn }}:3000/epoptes-srv"
-    dest: /tmp/epoptes-srv
-  register: get_epo_srv_name
-
-- name: Checking for a correct name
-  shell: cat /tmp/epoptes-srv
-  register: epo_srv_name
-  when: get_epo_srv_name is changed
-  changed_when: "'none' not in epo_srv_name.stdout"
-
-- name: Cleanup
-  file:
-    path: /tmp/epoptes-srv
-    state: absent
-  when: get_epo_srv_name is changed
-
 - name: Ensuring epoptes-client is installed
   apt:
     name: epoptes-client
     state: present
-  when: get_epo_srv_name is changed
 
-- name: Configuring the client
-  replace:
-    dest: /etc/default/epoptes-client
-    regexp: "^#SERVER=server"
-    replace: "SERVER={{ epo_srv_name.stdout }}"
-  when: epo_srv_name is changed
+- name: Getting epoptes server name
+  shell: "curl http://{{ ansible_local.domain.serverfqdn }}:3000/epoptes-srv"
+  register: epoptes_srv
 
-- name: Checking for an already existent certificate
-  file:
-    path: /etc/epoptes/server.crt
-    state: file
-  register: crt_epo_exists
-  ignore_errors: yes
+- name: Assure epoptes has the correct server
+  lineinfile:
+    path: /etc/default/epoptes-client
+    regexp: '^SERVER='
+    line: "SERVER={{ epoptes_srv.stdout }}"
+    insertafter: '^#SERVER'
+    state: present 
+  register: changed_srv
 
-- name: Getting the epoptes server certificate 
+- name: Getting the certificate in case it was changed
   shell: /usr/sbin/epoptes-client -c
-  when: crt_epo_exists is failed
-  # I don't notify anymore, hoping that this would be done on first run after
-  # preseed and it should restart because of domain join.
-  #notify:
-  #  - reboot
+  when: changed_srv is changed
+  notify:
+    - reboot