I am trying to terminate my dT agent on my servers with puppet but using an enabled => false
doesn't seem to be working? I would assume instead I will have to kill it by pid
instead but am uncertain how to do that
Here is what i am using now
root@server]> puppet apply -e "service { '/opt/dynatrace-5.6.0/agent/lib64/dtwsagent': enabled => false, }"
Error: Invalid parameter enabled on Service[/opt/dynatrace-5.6.0/agent/lib64/dtwsagent] at line 1 on node server
Error: Invalid parameter enabled on Service[/opt/dynatrace-5.6.0/agent/lib64/dtwsagent] at line 1 on node server
root@server[/tmp]> ps aux |grep dt
root 1406 0.0 0.1 245828 21676 ? Sl Nov14 22:04 /opt/dynatrace-5.6.0/agent/lib64/dtwsagent server=localhost
root 12983 0.0 0.0 103312 860 pts/0 S+ 12:07 0:00 grep dt
I would also assume that i would need to kill this pid prior to removing directories? Here's my entire code block
file { 'remove_dt62':
ensure => absent,
path => '/opt/dynatrace-6.2',
recurse => true,
purge => true,
force => true,
}
file { 'remove_dt56':
ensure => absent,
path => '/opt/dynatrace-5.6.0',
recurse => true,
purge => true,
force => true,
}
file { 'remove_dt_conf':
ensure => absent,
path => "${httpd_root}/conf.d/dtload.conf",
purge => true,
force => true,
}
service { '/opt/dynatrace-5.6.0/agent/lib64/dtwsagent':
ensure => stopped,
enable => false,
}
The service resource lets Puppet use existing service managers to stop services (eg. initd, upstart, systemd) so you can't stop a service by giving a path like that.
Like your other question, if you have to do it this way, you can remove the service using a base
provider declaration:
service { 'dynatrace':
ensure => stopped,
provider => 'base',
stop => 'kill -TERM $(ps ax | grep \"dtwsagent\"|grep -v grep|awk '{print \$1}')',
status => "ps ax | grep "dtwsagent"",
}
As you can see, you can specify the exact commands you want to run to stop the service and check if it exists.