Hello
I just start to learn puppet. And have follow question. How is it possible
to override params in define. For example i have follow definition for
manage devel users:
define users::devel
{
$l_shell_path = $operatingsystem ? {
"freebsd" => "/bin/csh",
"ubuntu" => "/bin/bash"
}
$l_sudo_pkg = $operatingsystem ? {
"freebsd" => "security/sudo",
"ubuntu" => "sudo"
}
$l_etc_path = $operatingsystem ? {
"freebsd" => "/usr/local/etc/",
"ubuntu" => "/etc/"
}
if !defined(Package["$l_sudo_pkg"])
{
package
{
"$l_sudo_pkg":
ensure => present
}
}
if !defined(File["${l_etc_path}sudoers.d/devel"])
{
file
{
"${l_etc_path}sudoers.d/devel":
source =>
"puppet:///modules/users/devel.sudoers.dist",
mode => 0440,
require => Package["$l_sudo_pkg"];
}
}
if !defined(Group["devel"])
{
group
{
"devel":
ensure => present;
}
}
if !defined(Users::User_homedir["$name"])
{
users::user_homedir
{
"$name" :
groups => ["devel"],
ensure => "present"
}
}
else
{
Users::User_homedir["$name"]
{
groups => ["devel"],
ensure => "present"
}
}
if !defined(File["/home/$name/bin"])
{
file
{
"/home/$name/bin":
ensure => directory;
"/home/$name/bin/www":
content =>
template("users/www.dist.erb"),
mode => 0555;
}
}
}
And follow definition for remove users:
define users::remove
{
if !defined(Users::User_homedir["$name"])
{
users::user_homedir
{
"$name" :
ensure => absent;
}
}
else
{
Users::User_homedir["$name"]
{
ensure => absent
}
}
}
And want to do folow:
node lwd_basenode inherits monitored_node
{
include users::root
include users::www
include freebsd7
users::admin
{
[''ruslan'', ''misha'']:;
}
users::devel
{
[''vlad'', ''sergeym'']:;
}
users::remove
{
[''ilyash'', ''anton'',
''georgiysh'']:;
}
}
node "lwd012.some.root.domain" inherits lwd_basenode
{
include zabbix::nginx
include zabbix::mysql_replication
include zabbix::mysql
class
{
"zabbix::memcached":
memcachedaddr => "192.168.0.92 11211";
}
users::devel
{
''anton'':;
}
}
so I have one base node from which all other inherits, where user anton is
removed. And have one node(lwd012.some.root.domain) which redefines
behavior of user anton (on that node this user must be present), But if i
do so i got follow error:
err: Could not retrieve catalog from remote server: Error 400 on SERVER:
Only subclasses can override parameters at
/etc/puppet/modules/users/manifests/devel.pp:62
How can i solve this?
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/puppet-users/-/q6QWAWf9NYoJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.