|
1 | 1 | ---
|
2 |
| -- name: populate service facts |
| 2 | +- name: Populate service facts |
3 | 3 | service_facts:
|
4 | 4 |
|
5 |
| -- name: add "{{ datadog_user }}" user to additional groups |
| 5 | +- name: Set before 6/7.24.1 flag |
| 6 | + set_fact: |
| 7 | + datadog_before_7241: "{{ datadog_major is defined and datadog_minor is defined and datadog_bugfix is defined |
| 8 | + and datadog_major | int < 8 |
| 9 | + and (datadog_minor | int < 24 or (datadog_minor | int == 24 and datadog_bugfix | int < 1)) }}" |
| 10 | + |
| 11 | +- name: Set before 6/7.18.0 flag |
| 12 | + set_fact: |
| 13 | + datadog_before_7180: "{{ datadog_major is defined and datadog_minor is defined |
| 14 | + and datadog_major | int < 8 and datadog_minor | int < 18 }}" |
| 15 | + |
| 16 | +- name: Add "{{ datadog_user }}" user to additional groups |
6 | 17 | user: name="{{ datadog_user }}" groups="{{ datadog_additional_groups }}" append=yes
|
7 | 18 | when: datadog_additional_groups | default([], true) | length > 0
|
8 | 19 | notify: restart datadog-agent
|
|
78 | 89 | mode: 0640
|
79 | 90 | owner: "root"
|
80 | 91 | group: "{{ datadog_group }}"
|
| 92 | + notify: |
| 93 | + "{% if datadog_before_7180 %}restart datadog-agent-sysprobe{% else %}restart datadog-agent{% endif %}" |
81 | 94 |
|
82 |
| -- name: Ensure datadog-agent is running |
83 |
| - service: |
84 |
| - name: datadog-agent |
85 |
| - state: started |
86 |
| - enabled: yes |
87 |
| - when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode |
88 |
| - |
89 |
| -- name: set system probe installed |
| 95 | +- name: Set system probe installed |
90 | 96 | set_fact:
|
91 | 97 | datadog_sysprobe_installed: "{{ ansible_facts.services['datadog-agent-sysprobe'] is defined
|
92 | 98 | or ansible_facts.services['datadog-agent-sysprobe.service'] is defined }}"
|
93 | 99 | when: not datadog_skip_running_check
|
94 | 100 |
|
95 |
| -- name: set system probe enabled |
| 101 | +# Before 6/7.24.1, system_probe_config controls the system-probe service |
| 102 | +# datadog_minor is only defined when a specific Agent version is given |
| 103 | +# (see tasks/parse-version.yml) |
| 104 | +- name: Set system probe enabled (before 6/7.24.1) |
96 | 105 | set_fact:
|
97 | 106 | datadog_sysprobe_enabled: "{{ system_probe_config is defined
|
| 107 | + and 'enabled' in (system_probe_config | default({}, true)) |
98 | 108 | and system_probe_config['enabled']
|
99 | 109 | and datadog_sysprobe_installed }}"
|
100 | 110 | when: not datadog_skip_running_check
|
| 111 | + and datadog_before_7241 |
101 | 112 |
|
102 |
| -- name: Ensure datadog-agent-sysprobe is running if enabled and installed |
| 113 | +# Since 6/7.24.1, setting enabled: true in network_config is enough to start the system-probe service: |
| 114 | +# https://docs.datadoghq.com/network_monitoring/performance/setup/?tab=agent#setup |
| 115 | +- name: Set system probe enabled (since 6/7.24.1) |
| 116 | + set_fact: |
| 117 | + datadog_sysprobe_enabled: "{{ |
| 118 | + ((system_probe_config is defined |
| 119 | + and 'enabled' in (system_probe_config | default({}, true)) |
| 120 | + and system_probe_config['enabled']) |
| 121 | + or (network_config is defined |
| 122 | + and 'enabled' in (network_config | default({}, true)) |
| 123 | + and network_config['enabled'])) |
| 124 | + and datadog_sysprobe_installed }}" |
| 125 | + when: not datadog_skip_running_check |
| 126 | + and (not datadog_before_7241) |
| 127 | + |
| 128 | +- name: Ensure datadog-agent is running |
103 | 129 | service:
|
104 |
| - name: datadog-agent-sysprobe |
| 130 | + name: datadog-agent |
105 | 131 | state: started
|
106 | 132 | enabled: yes
|
107 |
| - when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode and datadog_sysprobe_enabled |
| 133 | + when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode |
108 | 134 |
|
109 |
| -- name: Ensure datadog-agent-sysprobe is stopped if disabled or not installed |
| 135 | +- name: Ensure datadog-agent-sysprobe is running if enabled and installed |
110 | 136 | service:
|
111 | 137 | name: datadog-agent-sysprobe
|
112 |
| - state: stopped |
113 |
| - enabled: no |
114 |
| - when: not datadog_skip_running_check and (not datadog_enabled or not datadog_sysprobe_enabled) and datadog_sysprobe_installed |
| 138 | + state: started |
| 139 | + enabled: yes |
| 140 | + when: not datadog_skip_running_check and datadog_enabled and not ansible_check_mode and datadog_sysprobe_enabled |
115 | 141 |
|
116 | 142 | - name: Ensure datadog-agent, datadog-agent-process and datadog-agent-trace are not running
|
117 | 143 | service:
|
|
124 | 150 | - datadog-agent-process
|
125 | 151 | - datadog-agent-trace
|
126 | 152 |
|
| 153 | +# Stop system-probe manually on Agent versions < 6/7.18, as it was not tied |
| 154 | +# to the main Agent service: https://github.com/DataDog/datadog-agent/pull/4883 |
| 155 | +- name: Ensure datadog-agent-sysprobe is stopped if disabled or not installed (before 6/7.18.0) |
| 156 | + service: |
| 157 | + name: datadog-agent-sysprobe |
| 158 | + state: stopped |
| 159 | + enabled: no |
| 160 | + when: not datadog_skip_running_check |
| 161 | + and (not datadog_enabled or not datadog_sysprobe_enabled) |
| 162 | + and datadog_before_7180 |
| 163 | + and datadog_sysprobe_installed |
| 164 | + |
127 | 165 | - name: Ensure datadog-agent-security is not running
|
128 | 166 | service:
|
129 | 167 | name: datadog-agent-security
|
|
0 commit comments