繁体   English   中英

Puppet评估错误:评估资源语句时出错,无法找到声明的类

[英]Puppet Evaluation Error: Error while evaluating a Resource Statement, Could not find declared class

我正在尝试使用github上发布的指令部署一个名为Bag-Of-Holding的应用程序 - https://github.com/ribeiroit/boh-puppet

我运行命令: sudo puppet apply /etc/puppet/manifests/site.pp我得到以下错误:

错误:评估错误:评估资源声明时出错,无法在节点lab1-hp-elitebook-8570p上的/etc/puppet/manifests/site.pp:2:2找到声明的类boh

似乎木偶很难找到已经在清单文件夹中的类boh

这是我的目录树:

/etc/puppet
├── code
├── manifests
└── modules
    └── boh-puppet
        ├── manifests
        └── templates

我的site.pp文件位于/etc/puppet/manifests ,它看起来像这样:

node 'lab1-hp-elitebook-8570p' {
  class { 'boh':
    python_version   => 3,
    environment      => 'dev',
    language         => 'en',
    debug            => 'True',
    create_superuser => 'true',
    pkg_checksum     => '86b0164f7fd6c5e4aa43c8f056f08cea'
  }
}

并且init.pp文件具有class {boh }并且位于: /etc/puppet/modules/boh-puppet/manifests

任何想法如何解决这一问题?

在自动加载时,Puppet需要某些名称空间限制和约定以及模块目录结构和类名。 在这种情况下,你的问题可以简单地大部分解决,干净地通过重命名你的模块目录按照通常惯例boh-puppet简单地boh 这将解决您的问题。

有关更多信息,请参阅此处的文档: https//puppet.com/docs/puppet/4.10/lang_namespaces.html

由于您正在使用具有绝对路径的puppet apply ,您还需要通过将命令修改为以下命令来提供模块的路径: sudo puppet apply --modulepath=/etc/puppet/modules /etc/puppet/manifests/site.pp

您没有正确调用模块名称。 这应该工作:

node 'lab1-hp-elitebook-8570p' {
        class { 'boh-puppet':
        python_version => 3,
        environment => 'dev',
        language => 'en',
        debug => 'True',
        create_superuser => 'true',
        pkg_checksum => '86b0164f7fd6c5e4aa43c8f056f08cea'
        }
}

或者fqn:

node 'lab1-hp-elitebook-8570p' {
        class { '::boh-puppet':
        python_version => 3,
        environment => 'dev',
        language => 'en',
        debug => 'True',
        create_superuser => 'true',
        pkg_checksum => '86b0164f7fd6c5e4aa43c8f056f08cea'
        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM