Hello Alessandro,
I relocated the dependency declaration into the native types and also
removed two stray semi-colons. After reviewing the dot graph, I also
made "Secure Check File" a dependency of "Validate Check File". The
updated class is below.
Puppet still does not honor the "Validate Check File" -> "Make Sudo
File Live" dependency, even with these changes.
The sudo check failed because my sudo template was missing an EOL
character. I am able to prevent the failure by appending '<% %>' to
the bottom of the template.
Thank you for checking the class. I think it is correct and this
dependency problem is a bug.
Regards,
Jon
==================
class s_sudo (
$wheel_req_password = true
) inherits s_sudo::params {
### Assemble the sudo check file from fragments
file { "Sudo_Fragment_Directory":
path => "${s_sudo::params::sudo_fragment_directory}",
ensure => directory,
purge => true,
recurse => true,
}
file {"Sudo_Header":
path => "${s_sudo::params::sudo_header_file}",
content => template("s_sudo/00-sudobase.erb"),
notify => Exec["Assemble_Sudo_Fragments"],
}
exec { "Assemble_Sudo_Fragments":
command => "/bin/cat $
{s_sudo::params::sudo_fragment_directory}/* > $
{s_sudo::params::sudo_check_file}",
refreshonly => true,
subscribe => File["Sudo_Fragment_Directory"],
notify => Exec["Validate_Check_File"],
}
file { 'Secure_Check_File': # Secure the check file
path => "${s_sudo::params::sudo_check_file}",
mode => 644,
require => Exec['Assemble_Sudo_Fragments'],
}
exec {"Validate_Check_File":
command => "visudo -cf $
{s_sudo::params::sudo_check_file}",
refreshonly => true,
require => File['Secure_Check_File'],
}
file {"Make_Sudo_File_Live":
path => "/etc/sudoers",
source => "${s_sudo::params::sudo_check_file}",
mode => 440,
owner => root,
group => root,
require => Exec["Validate_Check_File"],
}
}
On Jul 21, 6:57 am, "Al @ Lab42" <[email protected]> wrote:
> Hi Jon,
> I personally don't use (and don't see much value added, but I'm open to
> alternative opinions) the "new"
> Exec["Assemble_Sudo_Fragments"] ~> Exec["Validate_Check_File"] ->
> File["Make_Sudo_File_Live"]
> syntax to manage dependencies, so I can't say why it didn't work as
> expected.
>
> I would rather try adding the require argument here:
>
> file {"Make_Sudo_File_Live":
> path => "/etc/sudoers",
> source => "${s_sudo::params::sudo_check_file}",
> mode => 440,
> owner => root,
> group => root,
> * require => Exec["Validate_Check_File"],*
> }
>
> Alessandro
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.