dev/provisioning/modules/puppi/manifests/info/readme.pp
changeset 28 b0b56e0f8c7f
equal deleted inserted replaced
27:a2342f26c9de 28:b0b56e0f8c7f
       
     1 # Define puppi::info::readme
       
     2 #
       
     3 # This is a puppi info plugin that provides a Readme text which can be
       
     4 # used to show local info on the managed server and eventually run custom commands.
       
     5 #
       
     6 #  puppi::info::readme { "myapp":
       
     7 #    description => "Guidelines for myapp setup",
       
     8 #    readme => "myapp/readme.txt" ,
       
     9 #    run     => "myapp -V",
       
    10 #  }
       
    11 #
       
    12 define puppi::info::readme (
       
    13   $description       = '',
       
    14   $readme            = '',
       
    15   $autoreadme        = 'no',
       
    16   $run               = '',
       
    17   $source_module     = 'undefined',
       
    18   $templatefile      = 'puppi/info/readme.erb' ) {
       
    19 
       
    20   require puppi
       
    21   require puppi::params
       
    22 
       
    23   $bool_autoreadme = any2bool($autoreadme)
       
    24 
       
    25   file { "${puppi::params::infodir}/${name}":
       
    26     ensure  => present,
       
    27     mode    => '0750',
       
    28     owner   => $puppi::params::configfile_owner,
       
    29     group   => $puppi::params::configfile_group,
       
    30     require => Class['puppi'],
       
    31     content => template($templatefile),
       
    32     tag     => 'puppi_info',
       
    33   }
       
    34 
       
    35   $readme_source = $readme ? {
       
    36     ''      => 'puppet:///modules/puppi/info/readme/readme',
       
    37     default => $readme,
       
    38   }
       
    39 
       
    40   file { "${puppi::params::readmedir}/${name}":
       
    41     ensure  => present,
       
    42     mode    => '0644',
       
    43     owner   => $puppi::params::configfile_owner,
       
    44     group   => $puppi::params::configfile_group,
       
    45     require => File['puppi_readmedir'],
       
    46     source  => $readme_source,
       
    47     tag     => 'puppi_info',
       
    48   }
       
    49 
       
    50   if $bool_autoreadme == true {
       
    51   file { "${puppi::params::readmedir}/${name}-custom":
       
    52     ensure  => present,
       
    53     mode    => '0644',
       
    54     owner   => $puppi::params::configfile_owner,
       
    55     group   => $puppi::params::configfile_group,
       
    56     require => File['puppi_readmedir'],
       
    57     source  => [
       
    58       "puppet:///modules/${source_module}/puppi/info/readme/readme-${::hostname}" ,
       
    59       "puppet:///modules/${source_module}/puppi/info/readme/readme-${::role}" ,
       
    60       "puppet:///modules/${source_module}/puppi/info/readme/readme-default" ,
       
    61       "puppet:///modules/puppi/info/readme/readme-${::hostname}" ,
       
    62       "puppet:///modules/puppi/info/readme/readme-${::role}" ,
       
    63       'puppet:///modules/puppi/info/readme/readme-default'
       
    64     ],
       
    65     tag     => 'puppi_info',
       
    66     }
       
    67   }
       
    68 
       
    69 }