Skip to content

Commit de2f648

Browse files
Add support to run agent as domain user on Windows installation (DataDog#785)
* Add support to run agent as domain user on Windows installation * Update Puppet module to launch Agent as a domain user on windows * Update comment
1 parent b4cb00b commit de2f648

53 files changed

Lines changed: 136 additions & 117 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

manifests/init.pp

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@
238238
# To use NPM features it is necessary to enable install through this flag, as well as
239239
# configuring NPM through the datadog::system_probe class.
240240
# Boolean. Default: false
241+
# $windows_ddagentuser_name
242+
# (Windows only) The name of Windows user to use, in the format `<domain>\<user>`.
243+
#
244+
# $windows_ddagentuser_password
245+
# (Windows only) The password used to register the service`.
241246
#
242247
# Sample Usage:
243248
#
@@ -333,7 +338,6 @@
333338
Optional[Integer] $agent_major_version = undef,
334339
Optional[String] $conf_dir = undef,
335340
Boolean $conf_dir_purge = $datadog_agent::params::conf_dir_purge,
336-
$dd_user = $datadog_agent::params::dd_user,
337341
$dd_group = $datadog_agent::params::dd_group,
338342
$dd_groups = $datadog_agent::params::dd_groups,
339343
Boolean $apm_enabled = $datadog_agent::params::apm_default_enabled,
@@ -361,6 +365,8 @@
361365
Optional[String] $service_provider = undef,
362366
Optional[String] $agent_version = $datadog_agent::params::agent_version,
363367
Boolean $windows_npm_install = false,
368+
Optional[String] $windows_ddagentuser_name = undef,
369+
Optional[String] $windows_ddagentuser_password = undef,
364370
) inherits datadog_agent::params {
365371

366372
#In this regex, version '1:6.15.0~rc.1-1' would match as $1='1:', $2='6', $3='15', $4='0', $5='~rc.1', $6='1'
@@ -379,6 +385,12 @@
379385
fail("agent_major_version must be either 5, 6 or 7, not ${_agent_major_version}")
380386
}
381387

388+
if ($::operatingsystem == 'Windows' and $windows_ddagentuser_name != undef) {
389+
$dd_user = $windows_ddagentuser_name
390+
} else {
391+
$dd_user = $datadog_agent::params::dd_user
392+
}
393+
382394
# Allow ports to be passed as integers or strings.
383395
# lint:ignore:only_variable_string
384396
$_dogstatsd_port = "${dogstatsd_port}"
@@ -461,15 +473,17 @@
461473
}
462474
'Windows' : {
463475
class { 'datadog_agent::windows' :
464-
agent_major_version => $_agent_major_version,
465-
agent_repo_uri => $agent_repo_uri,
466-
agent_version => $agent_version,
467-
msi_location => $win_msi_location,
468-
api_key => $api_key,
469-
hostname => $host,
470-
tags => $local_tags,
471-
ensure => $win_ensure,
472-
npm_install => $windows_npm_install,
476+
agent_major_version => $_agent_major_version,
477+
agent_repo_uri => $agent_repo_uri,
478+
agent_version => $agent_version,
479+
msi_location => $win_msi_location,
480+
api_key => $api_key,
481+
hostname => $host,
482+
tags => $local_tags,
483+
ensure => $win_ensure,
484+
npm_install => $windows_npm_install,
485+
ddagentuser_name => $windows_ddagentuser_name,
486+
ddagentuser_password => $windows_ddagentuser_password,
473487
}
474488
if ($win_ensure == absent) {
475489
return() #Config files will remain unchanged on uninstall
@@ -761,6 +775,7 @@
761775

762776
if ($::operatingsystem == 'Windows') {
763777

778+
764779
file { 'C:/ProgramData/Datadog':
765780
ensure => directory
766781
}

manifests/integrations/activemq_xml.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363

6464
file { $dst_dir:
6565
ensure => directory,
66-
owner => $datadog_agent::params::dd_user,
66+
owner => $datadog_agent::dd_user,
6767
group => $datadog_agent::params::dd_group,
6868
mode => $datadog_agent::params::permissions_directory,
6969
require => Package[$datadog_agent::params::package_name],
@@ -92,7 +92,7 @@
9292

9393
file { $dst:
9494
ensure => file,
95-
owner => $datadog_agent::params::dd_user,
95+
owner => $datadog_agent::dd_user,
9696
group => $datadog_agent::params::dd_group,
9797
mode => $datadog_agent::params::permissions_protected_file,
9898
content => template('datadog_agent/agent-conf.d/activemq_xml.yaml.erb'),

manifests/integrations/apache.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
file { $dst_dir:
4646
ensure => directory,
47-
owner => $datadog_agent::params::dd_user,
47+
owner => $datadog_agent::dd_user,
4848
group => $datadog_agent::params::dd_group,
4949
mode => $datadog_agent::params::permissions_directory,
5050
require => Package[$datadog_agent::params::package_name],
@@ -57,7 +57,7 @@
5757

5858
file { $dst:
5959
ensure => file,
60-
owner => $datadog_agent::params::dd_user,
60+
owner => $datadog_agent::dd_user,
6161
group => $datadog_agent::params::dd_group,
6262
mode => $datadog_agent::params::permissions_protected_file,
6363
content => template('datadog_agent/agent-conf.d/apache.yaml.erb'),

manifests/integrations/cacti.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
file { $dst_dir:
3131
ensure => directory,
32-
owner => $datadog_agent::params::dd_user,
32+
owner => $datadog_agent::dd_user,
3333
group => $datadog_agent::params::dd_group,
3434
mode => $datadog_agent::params::permissions_directory,
3535
require => Package[$datadog_agent::params::package_name],
@@ -42,7 +42,7 @@
4242

4343
file { $dst:
4444
ensure => file,
45-
owner => $datadog_agent::params::dd_user,
45+
owner => $datadog_agent::dd_user,
4646
group => $datadog_agent::params::dd_group,
4747
mode => $datadog_agent::params::permissions_protected_file,
4848
content => template('datadog_agent/agent-conf.d/cacti.yaml.erb'),

manifests/integrations/cassandra.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
}
4848
file { $dst_dir:
4949
ensure => directory,
50-
owner => $datadog_agent::params::dd_user,
50+
owner => $datadog_agent::dd_user,
5151
group => $datadog_agent::params::dd_group,
5252
mode => $datadog_agent::params::permissions_directory,
5353
require => Package[$datadog_agent::params::package_name],
@@ -60,7 +60,7 @@
6060

6161
file { $dst:
6262
ensure => file,
63-
owner => $datadog_agent::params::dd_user,
63+
owner => $datadog_agent::dd_user,
6464
group => $datadog_agent::params::dd_group,
6565
mode => $datadog_agent::params::permissions_protected_file,
6666
content => template('datadog_agent/agent-conf.d/cassandra.yaml.erb'),

manifests/integrations/ceph.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
file { $dst_dir:
3434
ensure => directory,
35-
owner => $datadog_agent::params::dd_user,
35+
owner => $datadog_agent::dd_user,
3636
group => $datadog_agent::params::dd_group,
3737
mode => $datadog_agent::params::permissions_directory,
3838
require => Package[$datadog_agent::params::package_name],
@@ -45,7 +45,7 @@
4545

4646
file { $dst:
4747
ensure => file,
48-
owner => $datadog_agent::params::dd_user,
48+
owner => $datadog_agent::dd_user,
4949
group => $datadog_agent::params::dd_group,
5050
mode => $datadog_agent::params::permissions_protected_file,
5151
content => template('datadog_agent/agent-conf.d/ceph.yaml.erb'),

manifests/integrations/consul.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
file { $dst_dir:
4646
ensure => directory,
47-
owner => $datadog_agent::params::dd_user,
47+
owner => $datadog_agent::dd_user,
4848
group => $datadog_agent::params::dd_group,
4949
mode => $datadog_agent::params::permissions_directory,
5050
require => Package[$datadog_agent::params::package_name],
@@ -57,7 +57,7 @@
5757

5858
file { $dst:
5959
ensure => file,
60-
owner => $datadog_agent::params::dd_user,
60+
owner => $datadog_agent::dd_user,
6161
group => $datadog_agent::params::dd_group,
6262
mode => $datadog_agent::params::permissions_file,
6363
content => template('datadog_agent/agent-conf.d/consul.yaml.erb'),

manifests/integrations/directory.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797

9898
file { $dst_dir:
9999
ensure => directory,
100-
owner => $datadog_agent::params::dd_user,
100+
owner => $datadog_agent::dd_user,
101101
group => $datadog_agent::params::dd_group,
102102
mode => $datadog_agent::params::permissions_directory,
103103
require => Package[$datadog_agent::params::package_name],
@@ -110,7 +110,7 @@
110110

111111
file { $dst:
112112
ensure => file,
113-
owner => $datadog_agent::params::dd_user,
113+
owner => $datadog_agent::dd_user,
114114
group => $datadog_agent::params::dd_group,
115115
mode => $datadog_agent::params::permissions_protected_file,
116116
content => template('datadog_agent/agent-conf.d/directory.yaml.erb'),

manifests/integrations/disk.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898

9999
file { $dst_dir:
100100
ensure => directory,
101-
owner => $datadog_agent::params::dd_user,
101+
owner => $datadog_agent::dd_user,
102102
group => $datadog_agent::params::dd_group,
103103
mode => $datadog_agent::params::permissions_directory,
104104
require => Package[$datadog_agent::params::package_name],
@@ -111,7 +111,7 @@
111111

112112
file { $dst:
113113
ensure => file,
114-
owner => $datadog_agent::params::dd_user,
114+
owner => $datadog_agent::dd_user,
115115
group => $datadog_agent::params::dd_group,
116116
mode => $datadog_agent::params::permissions_protected_file,
117117
content => template('datadog_agent/agent-conf.d/disk.yaml.erb'),

manifests/integrations/dns_check.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
file { $dst_dir:
4646
ensure => directory,
47-
owner => $datadog_agent::params::dd_user,
47+
owner => $datadog_agent::dd_user,
4848
group => $datadog_agent::params::dd_group,
4949
mode => $datadog_agent::params::permissions_directory,
5050
require => Package[$datadog_agent::params::package_name],
@@ -57,7 +57,7 @@
5757

5858
file { $dst:
5959
ensure => file,
60-
owner => $datadog_agent::params::dd_user,
60+
owner => $datadog_agent::dd_user,
6161
group => $datadog_agent::params::dd_group,
6262
mode => $datadog_agent::params::permissions_protected_file,
6363
content => template('datadog_agent/agent-conf.d/dns_check.yaml.erb'),

0 commit comments

Comments
 (0)