Puppet 在应用期间找不到类
我的木偶结构如下Puppet 在应用期间找不到类,puppet,Puppet,我的木偶结构如下 /puppet /manifests /nodes redis.pp site.pp /modules site.pp类似于 class base { include ml-basefw include ml-users include ml-filelimits include repoforge include epel class { 'ml-yumrepo': base_
/puppet
/manifests
/nodes
redis.pp
site.pp
/modules
site.pp类似于
class base {
include ml-basefw
include ml-users
include ml-filelimits
include repoforge
include epel
class { 'ml-yumrepo':
base_url => "http://${puppet_server}/yumrepo"
}
}
import 'nodes/*.pp'
node default {
include base
}
当我跑的时候
puppet apply --modulepath=/puppet/modules:/puppet/manifests --noop --debug /puppet/manifests/nodes/redis.pp
我收到
Error: Could not find class base for redis-1.test.ml.com on node redis-1.test.ml.com
我的文件布局是否有一些非标准的地方妨碍了我使用apply
我不是puppet模块的维护者,因此无法更改文件结构或布局
有许多相关的问题,但我无法将它们与我面临的问题联系起来
编辑1:添加redis.pp
node /^redis-\d+(.stage)?(.test)?(.aws)?.ml.com$/ {
include base
include epel
class { 'redis':
package_ensure => '2.8.15-1.el6.remi',
service_ensure => 'running',
conf_bind => '0.0.0.0',
conf_port => '6379',
}
firewall { '176 allow port 6379 for redis traffic':
chain => 'INPUT',
state => ['NEW'],
dport => '6379',
proto => 'tcp',
action => 'accept'
}
}
对site.pp文件运行puppet apply时会发生什么情况?您的redis.pp文件中可能没有节点定义(您也不应该有)。当您对site.pp文件运行puppet apply时会发生什么?您的redis.pp文件中可能没有节点定义(您也不应该有)。事实上,这看起来有点混乱和复杂 你想要的是
- 实际的
基本
模块
- 在
/puppet/modules/base/manifests/init.pp
您还应该通过更好地安排清单来释放
import
语句。如果您的Puppet版本足够新(我认为3.6
+),请看。这看起来确实有点混乱和复杂
你想要的是
- 实际的
基本
模块
- 在
/puppet/modules/base/manifests/init.pp
您还应该通过更好地安排清单来释放
import
语句。如果您的Puppet版本足够新(我认为是3.6
+),请查看。首先,Puppet拥有条目清单文件。
在主模式下,条目为site.pp,puppet从版本3.5中弃用它,它开始自动导入指定目录中的所有清单文件。
在应用模式下,该条目在命令的文件中指定
因此,它在您的生产环境(puppet master read site.pp(包含类基)和import nodes/*.pp(redis.pp,包含节点定义)中运行良好。但是当您使用“puppet apply/puppet/manifests/nodes/redis.pp”时,puppet只是读取redis.pp,没有人告诉puppet基类在哪里。首先,puppet拥有条目清单文件。 在主模式下,条目为site.pp,puppet从版本3.5中弃用它,它开始自动导入指定目录中的所有清单文件。 在应用模式下,该条目在命令的文件中指定
因此,它在您的生产环境(puppet master read site.pp(包含类基)和import nodes/*.pp(redis.pp,包含节点定义)中运行良好。但是当您使用“puppet apply/puppet/manifests/nodes/redis.pp”时,puppet只是读取redis.pp,没有人告诉puppet基类在哪里。您可以显示
redis.pp
文件的内容吗?您可以显示redis.pp
文件的内容吗?没有节点
定义实际上是puppet应用的典型情况。您只需编写一个特定于本地计算机的清单,并直接应用该清单……但是,是的,应用site.pp
似乎是此设置中所期望的。没有节点
定义实际上是puppet应用
的典型情况。您只需编写一个特定于本地计算机的清单,并直接应用该清单……但是,是的,应用site.pp
似乎是此设置中所期望的。正如我所说,我无法对内容或结构进行太多更改。我正在尝试让企业能够在我的本地虚拟机上工作。我们似乎对制作/登台的结构没有任何问题。@bearrito和我完全误解了这一点。对不起,我帮不了你。由于建议应用site.pp
而不是redis.pp
,我对@tthayer投了赞成票。我很乐意创建一个模拟正确功能的无关文件,它不会强制进行任何结构更改或影响其他工作流,只允许我在本地运行它(在不使用puppetserver的情况下使用apply)不幸的是,以目前的形式,它看起来很难从这里恢复。正如我所说的,我不能太多地改变内容或结构。我正在尝试将为企业设计的内容用于我的本地vm。我们似乎对生产/暂存中的结构没有任何问题。@bearrito和我完全误解了这一点。很抱歉没有拜因g太有帮助了。我投票支持@tthayer,因为有人建议我应用site.pp
而不是redis.pp
。我很乐意创建一个模拟正确功能的无关文件,它不会强制进行任何结构更改或影响其他工作流,只允许我在本地运行它(使用apply而不使用puppetserver)不幸的是,它目前的形式看起来很难从这里挽救。