编辑:添加了类filebeat :: install_filebeat的内容。
我的puppet模块中有2个类,类filebeat 和类filebeat :: install_filebeat继承filebeat 。
在类filebeat中我想下载一个属性文件并将其保存在特定的路径中,所以我这样做:
exec{ 'get_properties_file':
command => "/usr/bin/curl -o ${properties_path} '${download_url}'",
creates => $properties_path,
}
file{ $properties_path:
mode => '644',
target => $properties_path
require => Exec["get_properties file"],
}
这很好用,文件下载到$ properties_path
然后在我的类filebeat :: install_filebeat中我有:
class filebeat::install_filebeat inherits filebeat{
$file = file($properties_path)
$file = file($properties_path)
$properties_lines = split( $file, '\r')
$host_line = grep($properties_lines, '^host=.*')
$token_line = grep($properties_lines, '^token=.*')
$host_splited = split($host_line[0], '=')
$token_splited = split($token_line[0], '=')
$token = join(delete_at($token_splited,0),"=")
$host = join(delete_at($host_splited,0),"=")
file { '/etc/filebeat/filebeat.yml':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '644',
purge => true,
content => template("filebeat/${filebeat_template}"),
}
service { 'filebeat':
ensure => running,
enable => true,
hasstatus => true,
hasrestart => true,
}
File['/etc/filebeat/filebeat.yml'] -> Service['filebeat']
}
如果文件在上一次执行中保存在$ properties_path中,但是当我尝试通过添加我的类filebeat来一次性完成所有操作时,这样可以正常工作 包括filebeat :: install_filebeat
我一直收到错误: “错误:找不到[properties_path] ”
中的任何文件在我看来,在首先进行下载之前,puppet正在尝试执行文件($ properties_path),但我真的不知道如何解决它..
任何帮助都会很棒!