2014-09-01 95 views
2

我只是想让我的头绕着木偶,并决定陷入使用一个非常简单的模块。无法找到我的傀儡模块

我使用的木偶版本3.6.2

我用命令

puppet module generate tsv-tsvversion 

它创建了以下模块存根

/etc/puppet/modules/ 
└── tsv-tsvversion 
    ├── manifests 
    │   └── init.pp 
    ├── metadata.json 
    ├── Rakefile 
    ├── README.md 
    ├── spec 
    │   ├── classes 
    │   │   └── init_spec.rb 
    │   └── spec_helper.rb 
    └── tests 
     └── init.pp 

中的init.pp清单看起来像

class tsvversion { 
     group {'test': 
        ensure => present, 
       } 

     user { 'matt': 
         ensure   => 'present', 
         comment   => 'Matt', 
         gid    => 'test', 
         home    => '/home/matt', 
         password   => '', 
         password_max_age => '-1', 
         password_min_age => '-1', 
         shell   => '/bin/bash', 
         uid    => '2002', 
         managehome  => 'true', 
      } 
} 

我模块似乎是在ModulePath进行

/etc/puppet/modules:/usr/share/puppet/modules 

舱单/ site.pp看起来像

node default { 

Package { allow_virtual => false, } 

    include 'tsvversion' 
} 

当我在木偶大师

puppet agent --test --verbose 

它无法运行此与

Info: Retrieving pluginfacts 
Info: Retrieving plugin 
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class tsvversion for puppet.tsvtest on node puppet.tsvtest 
Warning: Not using cache on failed catalog 
Error: Could not retrieve catalog; skipping run 

在发布之前,我已经检查过以确保我使用的是小写字母,而且不会出现愚蠢的字符。

我很努力去理解它为什么会失败。

任何人都可以帮忙吗?

感谢

马特

+0

//,你得到'puppet module build/etc/puppet/modules/tsv-tsvversion'来执行吗? – 2015-12-02 04:49:58

回答

3

你的模块的根目录不能命名tsv-tsvversion。作者前缀仅用于控制Forge行为的元数据,以及使用puppet module install下载的元数据。

这可能不是你的任何错误,而是puppet module generate子命令的一个缺点。 (这可能甚至是一个bug。)

尝试重命名或链接您的模块到/etc/puppet/modules/tsvversion。否则,你的做法看起来很合理

+0

谢谢这么多!我将模块从tsv-tsvversion重命名为tsvversion,它可以工作。 – MattY 2014-09-01 23:26:34