diff options
Diffstat (limited to 'puppet/modules/leap/manifests/cli')
| -rw-r--r-- | puppet/modules/leap/manifests/cli/install.pp | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/puppet/modules/leap/manifests/cli/install.pp b/puppet/modules/leap/manifests/cli/install.pp new file mode 100644 index 00000000..25e87033 --- /dev/null +++ b/puppet/modules/leap/manifests/cli/install.pp @@ -0,0 +1,46 @@ +# installs leap_cli on node +class leap::cli::install ( $source = false ) { +  if $source { +    # needed for building leap_cli from source +    include ::git +    include ::rubygems + +    class { '::ruby': +      install_dev => true +    } + +    class { 'bundler::install': install_method => 'package' } + +    Class[Ruby] -> +      Class[rubygems] -> +      Class[bundler::install] + + +    vcsrepo { '/srv/leap/cli': +      ensure   => present, +      force    => true, +      revision => 'develop', +      provider => 'git', +      source   => 'https://leap.se/git/leap_cli.git', +      owner    => 'root', +      group    => 'root', +      notify   => Exec['install_leap_cli'], +      require  => Package['git'] +    } + +    exec { 'install_leap_cli': +      command     => '/usr/bin/rake build && /usr/bin/rake install', +      cwd         => '/srv/leap/cli', +      user        => 'root', +      environment => 'USER=root', +      refreshonly => true, +      require     => [ Class[bundler::install] ] +    } +  } +  else { +    package { 'leap_cli': +      ensure   => installed, +      provider => gem +    } +  } +} | 
