|
17 | 17 | # limitations under the License.
|
18 | 18 | #
|
19 | 19 |
|
| 20 | +is_windows = platform_family?('windows') |
| 21 | + |
20 | 22 | # Set the correct agent startup action
|
21 |
| -sysprobe_enabled = node['datadog']['system_probe']['enabled'] |
| 23 | +sysprobe_enabled = node['datadog']['system_probe']['enabled'] || node['datadog']['system_probe']['network_enabled'] |
22 | 24 | sysprobe_agent_start = sysprobe_enabled ? :start : :stop
|
23 | 25 |
|
24 | 26 | #
|
25 | 27 | # Configures system-probe agent
|
26 |
| -system_probe_config_file = '/etc/datadog-agent/system-probe.yaml' |
| 28 | +system_probe_config_file = |
| 29 | + if is_windows |
| 30 | + 'C:/ProgramData/Datadog/system-probe.yaml' |
| 31 | + else |
| 32 | + '/etc/datadog-agent/system-probe.yaml' |
| 33 | + end |
| 34 | + |
27 | 35 | system_probe_config_file_exists = ::File.exist?(system_probe_config_file)
|
28 | 36 |
|
29 | 37 | template system_probe_config_file do
|
|
44 | 52 | enable_conntrack: node['datadog']['system_probe']['enable_conntrack'],
|
45 | 53 | extra_config: extra_config
|
46 | 54 | )
|
47 |
| - owner 'root' |
48 |
| - group 'dd-agent' |
49 |
| - mode '640' |
50 |
| - notifies :restart, 'service[datadog-agent-sysprobe]', :delayed if node['datadog']['system_probe']['enabled'] |
| 55 | + |
| 56 | + if is_windows |
| 57 | + owner 'Administrators' |
| 58 | + rights :full_control, 'Administrators' |
| 59 | + inherits false |
| 60 | + else |
| 61 | + owner 'root' |
| 62 | + group 'dd-agent' |
| 63 | + mode '640' |
| 64 | + end |
| 65 | + |
| 66 | + notifies :restart, 'service[datadog-agent-sysprobe]', :delayed if sysprobe_enabled |
51 | 67 | # since process-agent collects network info through system-probe, enabling system-probe should also restart process-agent
|
52 |
| - notifies :restart, 'service[datadog-agent]', :delayed if node['datadog']['system_probe']['enabled'] |
| 68 | + notifies :restart, 'service[datadog-agent]', :delayed if sysprobe_enabled |
53 | 69 |
|
54 | 70 | # System probe is not enabled and the file doesn't exists, don't create it
|
55 | 71 | not_if { !sysprobe_enabled && !system_probe_config_file_exists }
|
|
58 | 74 | # Common configuration
|
59 | 75 | service_provider = Chef::Datadog.service_provider(node)
|
60 | 76 |
|
| 77 | +service_name = is_windows ? 'datadog-system-probe' : 'datadog-agent-sysprobe' |
| 78 | + |
61 | 79 | service 'datadog-agent-sysprobe' do
|
| 80 | + service_name service_name |
62 | 81 | action [sysprobe_agent_start]
|
63 | 82 | provider service_provider unless service_provider.nil?
|
| 83 | + if is_windows |
| 84 | + supports :restart => true, :start => true, :stop => true |
| 85 | + restart_command "powershell restart-service #{service_name} -Force" |
| 86 | + stop_command "powershell stop-service #{service_name} -Force" |
| 87 | + else |
| 88 | + supports :restart => true, :status => true, :start => true, :stop => true |
| 89 | + end |
64 | 90 | supports :restart => true, :status => true, :start => true, :stop => true
|
65 |
| - subscribes :restart, "template[#{system_probe_config_file}]", :delayed if node['datadog']['system_probe']['enabled'] |
| 91 | + subscribes :restart, "template[#{system_probe_config_file}]", :delayed if sysprobe_enabled |
66 | 92 | end
|
0 commit comments