木偶configuration来创build文件

我正在尝试创build一个stream氓框用于开发Puppet作为提供者。 我想为stream浪用户设置一个特定的.bashrc。

这是我的相关文件。

dev.pp

class dev { $target = "dev" $root_dir = "/home/vagrant/demo" $user = "demo" $group = "demo" class { "demo": target => $target, root_dir => $root_dir, user => $user, group => $group; } class { "demo::app::site": } } class { "dev": } 

模块/演示/舱单/ init.pp:

 class demo ($target, $root_dir, $user, $group) { group { $group: ensure => present; } user { $user: ensure => present, managehome => true, shell => '/bin/bash', gid => $user, require => Group[$group]; } file { $root_dir: owner => $user, group => $group, ensure => directory, require => User[$user]; } file { "/home/${user}/.bashrc": ensure => present, owner => $user, group => $group, mode => '755', content => template("${module_name}/bashrc.erb"), require => User[$user]; } if $target == 'dev' { file { $source_dir: owner => $user, group => $group, ensure => directory, require => [File[$root_dir], User[$user]]; } } } 

模块/演示/舱单/ user.pp:

 define demo::user ($ensure=present, $groups=[]) { $user = $name user { $user: ensure => $ensure, groups => $groups, home => "/home/$user", managehome => true, shell => '/bin/bash'; } } 

一切似乎工作正常。 我可以执行“vagrant ssh”,并得到VM的命令行提示符。 但.bashrc文件不是这里定义的:

 content => template("${module_name}/bashrc.erb"), 

如果我手动删除它永远不会从“stream浪汉规定”再次创build。 看来,文件资源定义永远不会被执行。 我是Puppet的新手,但是我认为应该执行在课堂上声明的一切。 而且课程正确的要求,因为一切工作正常。 有没有什么方法可供我debugging,使用“通知”在这里没有帮助。

你想pipe理/home/vagrant/.bashrc但你设置:

 $user = "demo" 

稍后使用:

 file { "/home/${user}/.bashrc": ensure => present, owner => $user, 

所以你只需要改变用户variables为无用的。