未找到类异常-puppet

未找到类异常-puppet,puppet,Puppet,我正试图将bash脚本从我的木偶主人复制并执行到我的木偶代理 我已经在/etc/puppet/modules中创建了一个文件夹mymodule/ [root@ip********* mymodule]# ls -l total 0 drwxr-xr-x. 2 root root 30 Aug 26 15:58 files drwxr-xr-x. 2 root root 20 Aug 26 16:57 manifests [root@ip-*********** manifests]# ls -

我正试图将bash脚本从我的木偶主人复制并执行到我的木偶代理

我已经在/etc/puppet/modules中创建了一个文件夹mymodule/

[root@ip********* mymodule]# ls -l
total 0
drwxr-xr-x. 2 root root 30 Aug 26 15:58 files
drwxr-xr-x. 2 root root 20 Aug 26 16:57 manifests

[root@ip-*********** manifests]# ls -l
total 4
-rw-r--r--. 1 root root 372 Aug 26 16:57 init.pp

[root@ip-************* files]# ls -l
total 4
-rw-r--r--. 1 root root 151 Aug 26 15:13 my_bash_script.sh



 [root@ip-********** files]# cat my_bash_script.sh
        #!/bin/sh
        mv /usr/bin/node /usr/bin/bnode
        ln -s /usr/local/bin/node /usr/bin/node
        mv /usr/bin/npm /usr/bin/bnpm
        ln -s /usr/local/bin/npm /usr/bin/npm


 [root@ip-********* manifests]# cat init.pp
 class mymodule::mymodule{

 file {'/home/ec2-user/my_bash_script.sh':
      source => 'puppet:///modules/mymodule/files/my_bash_scrip.sh',
          mode => '755',
           }

    exec {'/home/ec2-user/my_bash_script.sh':
        refreshonly => 'true',
        require => File["/home/ec2-user/my_bash_script.sh"],
        subscribe => File["/home/ec2-user/my_bash_script.sh"],
      }
    }
在my/etc/puppet/manifest/site.pp中,我调用在模块中创建的类

[root@ip-*********** manifests]# cat site.pp
import 'mymodule'

node 'node1' {
    include "mymodule"
}
当我从“傀儡特工-t”处逃跑时

我得到以下错误:

[root@ip-************8 /]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class mymodule for ip-**********8 on node ip-**********8
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
您的类的init清单(
init.pp
)应该仅定义为类名,如下所示:

class mymodule {
而不是这个:

class mymodule::mymodule {
因此,请将以下内容包括在内:

include "mymodule"
与类名匹配

此外,您的文件资源存在语法错误和打字错误。它应该是这样的:

file {'/home/ec2-user/my_bash_script.sh':
  source => 'puppet:///modules/mymodule/my_bash_script.sh',
  mode   => '755',
}

请在此处查看我对上一个问题的回答:有关
source
属性和Puppet URI的详细信息。

错误:/Stage[main]/Mymodule/File[/home/ec2 user/my\u bash\u script.sh]:无法评估:无法从环境生产源检索信息 puppet:///modules/mymodule/files/my_bash_script.sh 注意:/Stage[main]/Mymodule/Exec[/home/ec2 user/my_-bash_-script.sh]:依赖文件[/home/ec2 user/my_-bash_-script.sh]失败:真警告:/Stage[main]/Mymodule/Exec[/home/ec2 user/my_-bash_-script.sh]:由于依赖项失败而跳过注意:已在0.05秒内完成目录运行Hanks matt。现在我得到了这个错误。我的脚本有什么问题吗?source=>'puppet:///modules/mymodule/my_bash_script.sh’,这很奇怪,尽管在更改之后,我这次还是收到了相同的错误。您的
文件
资源中也有一个输入错误。让我更新答案。谢谢,但我已经注意到并更正了它。。无法理解为什么我会出现这个错误,除非您无法在没有bash参与的情况下重现问题(例如,使用puppet下载并运行Python脚本),否则标记在这里可能不合适。