我目前正在将我的傀儡代码的结构重新组织为一个模型,该模型使用配置文件和角色。
我已经开始使用配置文件并进行测试,但已经遇到问题 :/
在我的节点定义中我执行以下操作:
节点'dev.server'{ 包括配置文件::php }
#模块/配置文件/清单/php.pp 类配置文件::php { 包括 apache::mod::php 类{‘php’:} php::模块 { “mcrypt”: } php::模块 { “mysql”: } php::模块 { “gd”: } }
当我在节点上运行 Puppet 代理时,出现错误
错误:无法从远程服务器检索目录:服务器上的错误 400:重复声明:Class[Profile::Php] 已声明;无法在节点上的 /etc/puppet/environments/production/modules/profile/manifests/php.pp:5 处重新声明
但是,当我将配置文件重命名为 profile::php2 时,它就可以正常工作了。是什么导致了它已经声明的问题?
答案1
更改class{ 'php': }
为class{ '::php': }
(注意 php 之前的双冒号)即可解决问题。