All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org
Puppet: Define a resource type
1/1
» Votes:I didn't see stuff in Puppet documentation. I asked on #puppet. I did many tests, and this is the final thing: To define a resource type cphp::fpm::create_env
, you need
./modules/ ./cphp/ ./init.php ./fpm/ ./create_env.pp
You don't need init.php
in the directory fpm
. The contents of create_env.pp
is as below
1 define cphp::php::create_env($param} {
2 # your definition
3 }
Note 1¶
To use this resource type, you have to do nothing. All you need is to include the module cphp
, you don't have to include cphp::fpm
nor cphp::fpm::create_env
. Weird, !? As you know that cphp
was defined (but you have to use include cphp
), you don't know if cphp:php
was defined. There aren't any explicit declaration for that. (Maybe they come from the directory structure.)
You must use include <class>
when you really want to use it, and when you want to use a resource type, you just need to specify its name. Why difference here? include <class>
doesn't really mean include
, it really means execute the class
(or evaluate the class
as you can read in the Puppet source code.) I really wonder why Puppet doesn't just support include <resource type>
, or <class_name>
as evaluation method. That helps the language cleaner
use cphp use cphp::fpm::create_env
If Puppet tries to emphasize that you can only include a class once, Puppet can try this
use_once cphp use cphp::fpm::create_env
(Something similar to require_once
in php
.)
Note 2¶
When you try to invoke a resource type as a function, Puppet complains that there isn't such function. Woh. This completely leads you to another wrong way when debugging. Puppet should complain that you did use a resource type as a function, IMHO.
Another note¶
If you invoke the resource type cphp::fpm::create_env
in another module, Puppet will complain that the $fqdn
isn't defined in the scope. Gruh. This is completely stupid =))
Conclusion¶
Puppet is messy, again.
PS: Puppet mentioned here has version 2.7.12.
Comments