木偶计算错误:计算资源语句时出错,找不到声明的类



我正在尝试使用github上发布的指令通过Puppet部署一个名为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'
        }
}

相关内容

最新更新