我在运行puppet puppet agent -t时遇到此错误
Error: /Stage[main]/Environment/Environment::Createenv[shared2]/Volume[shared2]: Could not evaluate: No ability to determine if volume exists
Error: /Stage[main]/Environment/Environment::Createenv[shared1]/Volume[shared1]: Could not evaluate: No ability to determine if volume exists以下是环境/清单/init.pp的代码
class environment(){
volume { "${title}":
ensure => present,
location => "/home",
mode => 0750,
owner => "${title}",
group => "env",
device_name => undef,
device_size => 10,
az => undef,
instance_id => undef,
}
}和提供者文件(lib/puppet/ provider /ebs.rb):
require 'puppet/resource'
require 'puppet/resource/catalog'
require 'fileutils'
require 'rubygems'
require 'facter'
require 'aws-sdk'
require File.dirname(__FILE__) + '/aws-config'
include Puppet::Util::Volume
include AwsConfig
Puppet::Type.type(:volume).provide(:ebs) do
desc "Create, attach, format and mount EBS volumes"
defaultfor :kernel => "Linux"
def create
az = Facter.value('ec2_placement_availability_zone')
puts "Some code here ..."
end
def destroy
raise NotImplementedError
end
def exists?
return File.directory?(@resource[:name])
end
end和类型(lib/puppet/ type /volume.rb):
require 'puppet/type'
Puppet::Type.newtype(:volume) do
@doc = "Create new volume. Limited to EBS volumes"
ensurable do
self.defaultvalues
defaultto :present
end
newparam(:name) do
desc "Name of resource"
isnamevar
end
newparam(:location) do
desc "path to directory where the volume will be mounted"
end
endPuppet版本3.0.1 (服务器和客户端)。有谁知道吗?谢谢
发布于 2012-10-24 18:40:16
找到了!
只需将提供程序文件移动到与type同名的目录中。在我的例子中是/etc/puppet/modules/environment/lib/puppet/provider/volume/ebs.rb
其中环境是我的自定义模块的名称,而卷是自定义类型。
https://stackoverflow.com/questions/13035722
复制相似问题