diff options
author | Fabien COMBERNOUS <fabien.combernous@adullact.org> | 2020-05-02 11:32:08 +0200 |
---|---|---|
committer | Fabien COMBERNOUS <fabien.combernous@adullact.org> | 2020-05-18 22:06:35 +0200 |
commit | 007a9bd025ea441a45b0c8e891738c6f627a339a (patch) | |
tree | 56215047193038797b807acbb5ce63f9417ab690 /manifests/install.pp | |
parent | dac79dba12b034af8de2a31906a932f2932871a0 (diff) | |
download | puppet-ferm-007a9bd025ea441a45b0c8e891738c6f627a339a.tar.gz puppet-ferm-007a9bd025ea441a45b0c8e891738c6f627a339a.tar.bz2 |
add install_method parameter
Diffstat (limited to 'manifests/install.pp')
-rw-r--r-- | manifests/install.pp | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/manifests/install.pp b/manifests/install.pp index 4337a99..5755ead 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -8,8 +8,40 @@ class ferm::install { # this is a private class assert_private("You're not supposed to do that!") - package{'ferm': - ensure => 'latest', + case $ferm::install_method { + 'package': { + package{'ferm': + ensure => 'latest', + } + } + 'vcsrepo': { + $_source_path = '/opt/ferm' + ensure_packages (['git', 'iptables', 'perl', 'make'], { ensure => present }) + + package{'ferm': + ensure => absent, + } + -> vcsrepo { $_source_path : + ensure => present, + provider => git, + source => $ferm::vcsrepo, + revision => $ferm::vcstag, + } + -> exec { 'make install': + cwd => $_source_path, + path => '/usr/sbin:/usr/bin:/sbin:/bin', + creates => '/usr/sbin/ferm', + } + -> file { '/etc/ferm': + ensure => directory, + owner => 0, + group => 0, + mode => '0700', + } + } + default: { + fail("unexpected install_method ${ferm::install_method}") + } } if $ferm::manage_initfile { |