首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取错误无法评估:无法确定卷是否存在

获取错误无法评估:无法确定卷是否存在
EN

Stack Overflow用户
提问于 2012-10-24 01:08:50
回答 1查看 2.3K关注 0票数 3

我在运行puppet puppet agent -t时遇到此错误

代码语言:javascript
复制
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的代码

代码语言:javascript
复制
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):

代码语言:javascript
复制
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):

代码语言:javascript
复制
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
end

Puppet版本3.0.1 (服务器和客户端)。有谁知道吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-24 18:40:16

找到了!

只需将提供程序文件移动到与type同名的目录中。在我的例子中是/etc/puppet/modules/environment/lib/puppet/provider/volume/ebs.rb

其中环境是我的自定义模块的名称,而卷是自定义类型。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13035722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档