puppet - Puppet - 在开始不工作之前需要服务包
问题描述
清除程序包时,Puppet 正在尝试启动服务。
作为测试,我配置了要清除的包。但是服务部分正在尝试启动 zabbix-agent 服务。知道出了什么问题吗?...
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 agent -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-agent
运行时,你还需要包,所以你的包强制需要是present
.
package { 'zabbix-agent':
name => $service_name,
ensure => present,
}
service { 'zabbix-agent':
name => $service_name,
ensure => running,
enable => true,
require => Package['zabbix-agent'],
subscribe => File['zabbix-agentd.conf'],
}
如果您还想拥有 的能力purging
,那将属于不同的类别(例如:
class zabbix::purge {
package { 'zabbix-agent':
name => $service_name,
ensure => purged,
}
service { 'zabbix-agent':
name => $service_name,
ensure => false,
}
}
因此,您不能将两个类强制到同一个节点,因为您不能同时在两种状态下拥有服务:running
并且purged
.
推荐阅读
- python - 如何比较两个不同数据框中的列并保留第一个数据框中的值?
- python - 替换python字典中的数据框行元素字符串
- python-3.x - 长的奇怪的 Python 3 mod 行为
- html - Next.js 中不需要的水平滚动条
- java - Java Selenium webdriver表达式通过ccs查找以开头和结尾的动态元素
- python - 如何计算一个足球队在给定赛季中获得的总积分?
- python - 从 CSV 列表中去除单引号 ( ' )
- jsf - 可以在 Payara/GlassFish 服务器中定义alternatedocroot 属性吗?
- c# - 如何使用 DefaultAzureCredential 从 Azure Key Vault 检索 Secret
- sql-server - 如何替换SSIS中字符串中除最后一个字符之外的所有字符?