Puppet-开始不工作前需要服务包
Puppet试图在清除包时启动服务 作为测试,我配置了要清除的包。但是服务部分正在尝试启动zabbix代理服务。知道哪里出了问题吗Puppet-开始不工作前需要服务包,puppet,puppet-enterprise,Puppet,Puppet Enterprise,Puppet试图在清除包时启动服务 作为测试,我配置了要清除的包。但是服务部分正在尝试启动zabbix代理服务。知道哪里出了问题吗 package { 'zabbix-agent': name => $service_name, ensure => purged, } service { 'zabbix-agent': name => $service_name, ensure => running, enable =
package { 'zabbix-agent':
name => $service_name,
ensure => purged,
}
service { 'zabbix-agent':
name => $service_name,
ensure => running,
enable => true,
require => Package['zabbix-agent'],
subscribe => File['zabbix-agentd.conf'],
}
puppet代理-t
输出:
Error: Could not start Service[zabbix-agent]: Execution of '/bin/systemctl start zabbix-agent' returned 5: Failed to start zabbix-agent.service: Unit zabbix-agent.service not found.
Error: /Stage[main]/Zabbix/Service[zabbix-agent]/ensure: change from stopped to running failed: Could not start Service[zabbix-agent]: Execution of '/bin/systemctl start zabbix-agent' returned 5: Failed to start zabbix-agent.service: Unit zabbix-agent.service not found.
Notice: Finished catalog run in 0.25 seconds
当您强制执行
zabbix代理
以运行时,您还需要包,因此您的包强制执行需要存在
package{'zabbix agent':
name=>$service\u name,
确保=>存在,
}
服务{'zabbix代理':
name=>$service\u name,
确保=>正在运行,
enable=>true,
require=>Package['zabbix-agent'],
订阅=>文件['zabbix-agentd.conf'],
}
如果您还希望具有清除
的功能,则可采用不同的类别(例如:
class zabbix::purge{
包{'zabbix代理':
name=>$service\u name,
确保=>已清除,
}
服务{'zabbix代理':
name=>$service\u name,
确保=>false,
}
}
因此,不能将两个类强制到同一节点,因为不能同时使服务处于两种状态:
运行
和清除
,Puppet代码将指示Puppet代理清除zabbix代理
包,然后启动zabbix代理
服务。这就是also您所声称的正在发生。您期望的区别是什么?我原以为只有在包要求存在的情况下,服务部分才会运行。但事实并非如此。服务部分似乎不知道包状态的任何信息,但它只知道包部分是否完成(在本例中,清除包)然后服务部分继续启动服务。