dev/provisioning/modules/puppi/manifests/project.pp
changeset 28 b0b56e0f8c7f
equal deleted inserted replaced
27:a2342f26c9de 28:b0b56e0f8c7f
       
     1 # Define puppi::project
       
     2 #
       
     3 # This define creates and configures a Puppi project
       
     4 # You must use different puppi::deploy and puppi::rollback defines
       
     5 # to to build up the commands list
       
     6 #
       
     7 define puppi::project (
       
     8   $enable = true ) {
       
     9 
       
    10   require puppi::params
       
    11 
       
    12   $ensure = any2bool($enable) ? {
       
    13     false   => 'absent',
       
    14     default => 'directory',
       
    15   }
       
    16 
       
    17   $ensurefile = bool2ensure($enable)
       
    18 
       
    19   # Create Project subdirs
       
    20   file {
       
    21     "${puppi::params::projectsdir}/${name}":
       
    22       ensure  => $ensure,
       
    23       mode    => '0755',
       
    24       owner   => $puppi::params::configfile_owner,
       
    25       group   => $puppi::params::configfile_group,
       
    26       force   => true;
       
    27 
       
    28     "${puppi::params::projectsdir}/${name}/check":
       
    29       ensure  => $ensure,
       
    30       mode    => '0755',
       
    31       owner   => $puppi::params::configfile_owner,
       
    32       group   => $puppi::params::configfile_group,
       
    33       force   => true,
       
    34       recurse => true,
       
    35       purge   => true,
       
    36       require => File["${puppi::params::projectsdir}/${name}"];
       
    37 
       
    38     "${puppi::params::projectsdir}/${name}/rollback":
       
    39       ensure  => $ensure,
       
    40       mode    => '0755',
       
    41       owner   => $puppi::params::configfile_owner,
       
    42       group   => $puppi::params::configfile_group,
       
    43       force   => true,
       
    44       recurse => true,
       
    45       purge   => true,
       
    46       require => File["${puppi::params::projectsdir}/${name}"];
       
    47 
       
    48     "${puppi::params::projectsdir}/${name}/deploy":
       
    49       ensure  => $ensure,
       
    50       mode    => '0755',
       
    51       owner   => $puppi::params::configfile_owner,
       
    52       group   => $puppi::params::configfile_group,
       
    53       force   => true,
       
    54       recurse => true,
       
    55       purge   => true,
       
    56       require => File["${puppi::params::projectsdir}/${name}"];
       
    57 
       
    58     "${puppi::params::projectsdir}/${name}/initialize":
       
    59       ensure  => $ensure,
       
    60       mode    => '0755',
       
    61       owner   => $puppi::params::configfile_owner,
       
    62       group   => $puppi::params::configfile_group,
       
    63       force   => true,
       
    64       recurse => true,
       
    65       purge   => true,
       
    66       require => File["${puppi::params::projectsdir}/${name}"];
       
    67 
       
    68     "${puppi::params::projectsdir}/${name}/configure":
       
    69       ensure  => $ensure,
       
    70       mode    => '0755',
       
    71       owner   => $puppi::params::configfile_owner,
       
    72       group   => $puppi::params::configfile_group,
       
    73       force   => true,
       
    74       recurse => true,
       
    75       purge   => true,
       
    76       require => File["${puppi::params::projectsdir}/${name}"];
       
    77 
       
    78     "${puppi::params::projectsdir}/${name}/report":
       
    79       ensure  => $ensure,
       
    80       mode    => '0755',
       
    81       owner   => $puppi::params::configfile_owner,
       
    82       group   => $puppi::params::configfile_group,
       
    83       force   => true,
       
    84       recurse => true,
       
    85       purge   => true,
       
    86       require => File["${puppi::params::projectsdir}/${name}"];
       
    87   }
       
    88 
       
    89   # Create Project configuration file
       
    90   file {
       
    91     "${puppi::params::projectsdir}/${name}/config":
       
    92       ensure  => $ensurefile,
       
    93       content => template('puppi/project/config.erb'),
       
    94       mode    => '0644',
       
    95       owner   => $puppi::params::configfile_owner,
       
    96       group   => $puppi::params::configfile_group,
       
    97       require => File["${puppi::params::projectsdir}/${name}"];
       
    98   }
       
    99 
       
   100 }