[puppet@swarmcritic ~]$puppet module install puppetlabs/MysqLNotice: Preparing to install into /home/puppet/.puppet/modules ...Notice: Created target directory /home/puppet/.puppet/modulesNotice: Downloading from https://forge.puppetlabs.com ...Notice: Installing -- do not interrupt .../home/puppet/.puppet/modules└─┬ puppetlabs-MysqL (v2.1.0) └── puppetlabs-stdlib (v4.1.0)
但是当我尝试使用如下的nodes.pp文件调用模块时:
node 'example.com' { include '::MysqL::server' }
然后我得到这样的错误:
[puppet@example MysqL]$sudo puppet apply ~puppet/puppet/manifests/site.ppError: Could not find class ::MysqL::server for example.com on node example.comError: Could not find class ::MysqL::server for example.com on node example.com
我该如何解决?
解决方法 Puppet正在.puppet目录中安装该模块我的主目录的树,但是当它看到时,它没有看到那里
对于模块!相反,它只是在/ etc / puppet / modules中查找.它似乎
默认情况下,它只在那里看.如果你想让它查看~myusername / .puppet,
你必须在/etc/puppet/puppet.conf中配置一个路径变量.
为了解决这个问题,我没有试图弄清楚如何修改Puppet路径.
相反,我使用了将模块显式安装到/ etc / puppet / modules中
以下命令:
sudo puppet module install -i /etc/puppet/modules puppetlabs/MysqL
完成后,puppet apply命令工作正常.
进一步的实验表明,如果你执行Puppet模块安装
没有-i参数和root访问权限的命令,它会将模块安装到
/ etc / puppet / modules,但是如果你没有root访问权限,它会安装它
进入~myusername / .puppet / modules /.所以,如果我在我原来的前面放了一个sudo
模块安装命令如下:
sudo puppet module install puppetlabs/MysqL
然后就不会有任何问题.您不必指定-i参数!
整个问题出现了,因为我选择创建一个用户帐户来容纳所有人
木偶的东西,而不是在root帐户中工作.如果我曾经工作过
根帐户,Puppet(可能)已将模块安装到
/ etc / puppet / modules并没有问题.这只是因为
我创建了一个用户帐户,然后调用了puppet module install命令
没有sudo,模块最终在~myusername / .puppet中.作为一个傀儡
新手,在~myusername / .puppet中安装了模块似乎并不坏
理念.它似乎是安装模块的合理位置,
特别是如果有人创建了一个用户帐户来管理Puppet.
所有这一切都不应该让你创建一个用户帐户来容纳你所有的
木偶配置文件.但如果你这样做,记得把sudo放在
安装模块时安装命令的前面.
代表OP发表.
@H_419_77@ 总结以上是内存溢出为你收集整理的linux – Puppet找不到我刚刚安装的模块全部内容,希望文章能够帮你解决linux – Puppet找不到我刚刚安装的模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)