From 86b778f5dc70a3c88c9911dbb8e2dfde7ab5dd4e Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Tue, 16 Mar 2021 10:48:24 -0600 Subject: [PATCH 01/13] Reordering the list of services for stop Disable Service if not datadog_enabled --- tasks/agent-win.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index 133e448b..11e97764 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -61,11 +61,12 @@ win_service: name: "{{ item }}" state: stopped + start_mode: disabled when: not datadog_skip_running_check and not datadog_enabled with_list: - - datadogagent - - datadog-process-agent - datadog-trace-agent + - datadog-process-agent + - datadogagent - name: Create installation information file template: From c68116176e7892ad6960294f76076f5c8eef0789 Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 18 Mar 2021 15:05:56 -0600 Subject: [PATCH 02/13] if trace/process agent are disabled, set manual --- tasks/agent-win.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index 11e97764..1eed2d71 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -50,6 +50,15 @@ with_items: "{{ datadog_checks|list }}" notify: restart datadog-agent-win +- name: Ensure datadog-trace-agent and datadog-process-agent are not disabled + win_service: + name: "{{item}}" + start_mode: manual + when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode + with_list: + - datadog-trace-agent + - datadog-process-agent + - name: Ensure datadog-agent is running win_service: name: datadogagent From 1fe25f1579dc88a96dd97446dd747aa464142dcf Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 18 Mar 2021 15:06:59 -0600 Subject: [PATCH 03/13] rename task --- tasks/agent-win.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index 1eed2d71..62215f52 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -58,7 +58,7 @@ with_list: - datadog-trace-agent - datadog-process-agent - + - name: Ensure datadog-agent is running win_service: name: datadogagent @@ -66,7 +66,7 @@ start_mode: auto when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode -- name: Ensure datadog-agent is not running +- name: Ensure datadog-agent is disabled win_service: name: "{{ item }}" state: stopped From 36166ad99c1497fe06079f9d7f56cbfb0ff0aebd Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 25 Mar 2021 14:56:42 -0600 Subject: [PATCH 04/13] defend against null checks, null as empty dict --- defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index 73d2f67a..d27460c5 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -22,7 +22,7 @@ datadog_additional_checks: [] datadog_disable_default_checks: false # default tracked checks -datadog_tracked_checks: "{{ datadog_checks | list + datadog_additional_checks }}" +datadog_tracked_checks: "{{ datadog_checks | default({}) | list + datadog_additional_checks }}" # default user/group datadog_user: dd-agent From ccd0bff06163e1b45ff009979b260cb100dc0803 Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 25 Mar 2021 15:11:06 -0600 Subject: [PATCH 05/13] debug value of datadog_tracked_checks --- tasks/agent-win.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index 62215f52..f3ba6ec2 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -14,6 +14,10 @@ register: datadog_conf_directories when: datadog_disable_untracked_checks or datadog_disable_default_checks +- name: "[Debug] Print contents of datadog_tracked_checks" + debug: + msg: "Value of datadog_tracked_checks: {{ datadog_tracked_checks }}. Is datadog_tracked_checks_null? {{ datadog_tracked_checks is none }}" + - name: Delete checks not present in datadog_tracked_checks win_file: path: "{{ ansible_facts.env['ProgramData'] }}\\Datadog\\conf.d\\{{ item }}.d\\conf.yaml" From 3ed31451e90021cfffdf08f7fd657b028ca3578c Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 25 Mar 2021 15:34:16 -0600 Subject: [PATCH 06/13] Add checks management tasks, later in lifecyle --- defaults/main.yml | 2 +- tasks/main.yml | 3 +++ tasks/sanitize-checks.yml | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tasks/sanitize-checks.yml diff --git a/defaults/main.yml b/defaults/main.yml index d27460c5..73d2f67a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -22,7 +22,7 @@ datadog_additional_checks: [] datadog_disable_default_checks: false # default tracked checks -datadog_tracked_checks: "{{ datadog_checks | default({}) | list + datadog_additional_checks }}" +datadog_tracked_checks: "{{ datadog_checks | list + datadog_additional_checks }}" # default user/group datadog_user: dd-agent diff --git a/tasks/main.yml b/tasks/main.yml index 9a6c700b..b45ad1c3 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,6 +5,9 @@ - name: Check if OS is supported include_tasks: os-check.yml +- name: resolve datadog_tracked_checks later to defend against variable presidence issues arising from null datadog_checks + include_tasks: sanitize-checks.yml + - name: Set Facts for Datadog Agent Major Version include_tasks: set-parse-version.yml diff --git a/tasks/sanitize-checks.yml b/tasks/sanitize-checks.yml new file mode 100644 index 00000000..36671a96 --- /dev/null +++ b/tasks/sanitize-checks.yml @@ -0,0 +1,4 @@ +- name: Defend against defined but null datadog_checks variable + set_fact: + datadog_tracked_checks: "{{ datadog_checks | default({}) | list + datadog_additional_checks }}" + when: datadog_checks is none From c365f1ac52aa507e9695ec6341abf4651f8c5299 Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 25 Mar 2021 15:41:08 -0600 Subject: [PATCH 07/13] change piped sequence into tasks instead --- tasks/sanitize-checks.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tasks/sanitize-checks.yml b/tasks/sanitize-checks.yml index 36671a96..a195b618 100644 --- a/tasks/sanitize-checks.yml +++ b/tasks/sanitize-checks.yml @@ -1,4 +1,9 @@ - name: Defend against defined but null datadog_checks variable set_fact: - datadog_tracked_checks: "{{ datadog_checks | default({}) | list + datadog_additional_checks }}" + datadog_checks: "{{datadog_checks | default({})}}" when: datadog_checks is none + +- name: Resolve datadog_tracked_checks + set_fact: + datadog_tracked_checks: "{{ datadog_checks | list + datadog_additional_checks }}" + From 803b1b12b4258d0d8c628799216c9d9a27d7cdec Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 25 Mar 2021 15:49:17 -0600 Subject: [PATCH 08/13] Proofreading and remove debug --- tasks/agent-win.yml | 4 ---- tasks/main.yml | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index f3ba6ec2..62215f52 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -14,10 +14,6 @@ register: datadog_conf_directories when: datadog_disable_untracked_checks or datadog_disable_default_checks -- name: "[Debug] Print contents of datadog_tracked_checks" - debug: - msg: "Value of datadog_tracked_checks: {{ datadog_tracked_checks }}. Is datadog_tracked_checks_null? {{ datadog_tracked_checks is none }}" - - name: Delete checks not present in datadog_tracked_checks win_file: path: "{{ ansible_facts.env['ProgramData'] }}\\Datadog\\conf.d\\{{ item }}.d\\conf.yaml" diff --git a/tasks/main.yml b/tasks/main.yml index b45ad1c3..93a104d7 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,7 +5,7 @@ - name: Check if OS is supported include_tasks: os-check.yml -- name: resolve datadog_tracked_checks later to defend against variable presidence issues arising from null datadog_checks +- name: Resolve datadog_tracked_checks later to defend against variable presidence issues arising from dynamically included null datadog_checks include_tasks: sanitize-checks.yml - name: Set Facts for Datadog Agent Major Version From ef267f0cd1dbcdfbb95458768e1fbf3eeb2c3250 Mon Sep 17 00:00:00 2001 From: Erik Jensen <34075972+erikhjensen@users.noreply.github.com> Date: Thu, 8 Apr 2021 07:38:58 -0600 Subject: [PATCH 09/13] Use default's true argument to address empty but not undefined variable Co-authored-by: Kylian Serrania --- tasks/sanitize-checks.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tasks/sanitize-checks.yml b/tasks/sanitize-checks.yml index a195b618..b41a5c57 100644 --- a/tasks/sanitize-checks.yml +++ b/tasks/sanitize-checks.yml @@ -1,7 +1,6 @@ - name: Defend against defined but null datadog_checks variable set_fact: - datadog_checks: "{{datadog_checks | default({})}}" - when: datadog_checks is none + datadog_checks: "{{ datadog_checks | default({}, true) }}" - name: Resolve datadog_tracked_checks set_fact: From f2dbcc53fa7d78f9e53ce11ff1278d1e981e9136 Mon Sep 17 00:00:00 2001 From: Erik Jensen <34075972+erikhjensen@users.noreply.github.com> Date: Thu, 8 Apr 2021 07:40:13 -0600 Subject: [PATCH 10/13] Use default's true argument to address empty but not undefined variable (datadog_additional_checks) Co-authored-by: Kylian Serrania --- tasks/sanitize-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/sanitize-checks.yml b/tasks/sanitize-checks.yml index b41a5c57..1778722a 100644 --- a/tasks/sanitize-checks.yml +++ b/tasks/sanitize-checks.yml @@ -4,5 +4,5 @@ - name: Resolve datadog_tracked_checks set_fact: - datadog_tracked_checks: "{{ datadog_checks | list + datadog_additional_checks }}" + datadog_tracked_checks: "{{ datadog_checks | list + datadog_additional_checks | default([], true) }}" From 987f43a9f797c84b3acadbf20b988fbfc57df5b7 Mon Sep 17 00:00:00 2001 From: Erik Jensen <34075972+erikhjensen@users.noreply.github.com> Date: Thu, 8 Apr 2021 07:40:58 -0600 Subject: [PATCH 11/13] Align with code standards Co-authored-by: Kylian Serrania --- tasks/agent-win.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index b4c07388..9f7d63c3 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -58,6 +58,7 @@ with_list: - datadog-trace-agent - datadog-process-agent + - name: Create system-probe configuration file win_template: src: system-probe.yaml.j2 From ef00b1da84363379bc5491152301ac11005fc17b Mon Sep 17 00:00:00 2001 From: Erik Jensen Date: Thu, 8 Apr 2021 07:43:51 -0600 Subject: [PATCH 12/13] removing datadog_tracked_checks from defaults --- defaults/main.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 99fc1445..051fa7d7 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -26,9 +26,6 @@ datadog_additional_checks: [] # set this to `true` to delete default checks datadog_disable_default_checks: false -# default tracked checks -datadog_tracked_checks: "{{ datadog_checks | list + datadog_additional_checks }}" - # default user/group datadog_user: dd-agent datadog_group: dd-agent From 9c491cf591eb8a752f542252388ac5f4772ef137 Mon Sep 17 00:00:00 2001 From: Erik Jensen <34075972+erikhjensen@users.noreply.github.com> Date: Fri, 9 Apr 2021 07:46:11 -0600 Subject: [PATCH 13/13] Fix formatting on item template based on lint Co-authored-by: Kylian Serrania --- tasks/agent-win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/agent-win.yml b/tasks/agent-win.yml index 9f7d63c3..75e58954 100644 --- a/tasks/agent-win.yml +++ b/tasks/agent-win.yml @@ -52,7 +52,7 @@ - name: Ensure datadog-trace-agent and datadog-process-agent are not disabled win_service: - name: "{{item}}" + name: "{{ item }}" start_mode: manual when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode with_list: