Puppet 根据服务状态执行伪代码
我们如何编写一个puppet清单代码来标识服务(httpd)是否在puppet客户机/代理上运行。如果没有,它应该启动该服务并发送电子邮件Puppet 根据服务状态执行伪代码,puppet,Puppet,我们如何编写一个puppet清单代码来标识服务(httpd)是否在puppet客户机/代理上运行。如果没有,它应该启动该服务并发送电子邮件 class apache { package { mysql-server: ensure => installed } if hasstatus == "false" { service { "mysql": ensure => running, require =
class apache {
package { mysql-server: ensure => installed }
if hasstatus == "false" {
service { "mysql":
ensure => running,
require => Package["mysql-server"],
}
}
}
node default {
include apache
}
我知道这不是正确的代码。但我想先检查hasstatus,如果服务状态为false,那么我想启动服务并发送电子邮件
谢谢
桑克特丹吉
我在puppet master中配置了tagmail.conf,还启用了puppet报告,但无法接收发送到gmail帐户的邮件。我可以看到傀儡特工关于傀儡主人的报告,但没有收到邮件。我需要为此配置邮件服务器吗
My Tagmail Conf :
all: xxxxxxx@gmail.com
Puppet不是一个命令式shell脚本,您需要在执行操作Y(将您带到状态Z)之前检查X的值。相反,您指定希望状态Z,Puppet检查当前状态并处理转换 这意味着,在决定是否启动服务之前,您不需要检查服务的状态,而是声明mysql服务应该正在运行,Puppet确保了这一点 只需将其放在清单的
程序包
行旁边:
service { "mysql":
ensure => running,
enable => true,
require => Package["mysql-server"],
}
require行确保在评估或启动服务之前安装包
要发送通知,可以使用Puppet中的tagmail报告功能。首先在主机上的/etc/puppet/tagmail.conf
上设置一个tagmail文件():
mysql, apache: wwwadmins@example.com
在master's puppet.conf中,设置:
[master]
reports = tagmail
确保客户端在puppet.conf中启用了报告:
[agent]
report = true
然后,这将触发与任何带有“mysql”或“apache”标记(类名、模块名等)的资源相关的电子邮件。Puppet不是一个命令式shell脚本,在执行操作Y之前需要检查X的值,从而进入状态Z。相反,指定希望状态Z和Puppet检查当前状态并处理转换 这意味着,在决定是否启动服务之前,您不需要检查服务的状态,而是声明mysql服务应该正在运行,Puppet确保了这一点 只需将其放在清单的
程序包
行旁边:
service { "mysql":
ensure => running,
enable => true,
require => Package["mysql-server"],
}
require行确保在评估或启动服务之前安装包
要发送通知,可以使用Puppet中的tagmail报告功能。首先在主机上的/etc/puppet/tagmail.conf
上设置一个tagmail文件():
mysql, apache: wwwadmins@example.com
在master's puppet.conf中,设置:
[master]
reports = tagmail
确保客户端在puppet.conf中启用了报告:
[agent]
report = true
然后,这将触发与带有“mysql”或“apache”标记(类名、模块名等)的任何资源相关的电子邮件