Skip to content

Commit 038bfd0

Browse files
committed
Merge pull request #11 from cvmfs/server
Add cvmfs_server 2.1 support
2 parents 06fa824 + a9cae7f commit 038bfd0

File tree

7 files changed

+173
-4
lines changed

7 files changed

+173
-4
lines changed

manifests/config.pp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,15 @@
108108
}
109109
augeas{'cvmfs_automaster':
110110
context => '/files/etc/auto.master/',
111+
lens => 'Automaster.lns',
112+
incl => '/etc/auto.master',
111113
load_path => $lenspath,
112114
changes => [
113115
'set 01 /cvmfs',
114116
'set 01/type program',
115117
'set 01/map /etc/auto.cvmfs'
116-
],
117-
onlyif => 'match *[map=\'/etc/auto.cvmfs\'] size == 0',
118+
],
119+
onlyif => 'match *[map="/etc/auto.cvmfs"] size == 0',
118120
notify => Service['autofs']
119121
}
120122
}

manifests/params.pp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,10 @@
5959
$cvmfs_yum = hiera('cvmfs_yum',"http://cern.ch/cvmrepo/yum/cvmfs/EL/${major_release}/${::architecture}")
6060
$cvmfs_yum_testing = hiera('cvmfs_yum_testing',"http://cern.ch/cvmrepo/yum/cvmfs-testing/EL/${major_release}/${::architecture}")
6161
$cvmfs_yum_testing_enabled = hiera('cvmfs_yum_testing_enabled','0')
62+
63+
# Only used is cvmfs::server is enabled.
64+
$cvmfs_kernel_version = hiera('cvmfs_kernel_version','2.6.32-358.18.1.el6.aufs21')
65+
$cvmfs_yum_kernel = hiera('cvmfs_yum_kernel',"http://cern.ch/cvmrepo/yum/cvmfs-kernel/EL/${major_release}/${::architecture}")
66+
$cvmfs_yum_kernel_enabled = hiera('cvmfs_yum_kernel_enabled','1')
67+
6268
}

manifests/server.pp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# == Class cvmfs::server
2+
# This class will set up a cvmfs server
3+
# === Variables
4+
# [*repo*]
5+
# This is the namevar , it should be set to the name of repository, e.g mysoftware.example.org, if
6+
# not set the namevar will be used.
7+
# [*nfshost*]
8+
# [*nfsshare*]
9+
# If set then an nfsvolume will be mounted early on before all the cvmfs configuration is done.
10+
# e.g nfsserver.example.org:/Volume/example
11+
# [*nfsoptions*]
12+
# Nfs options can be set, there is a sensible default as below.
13+
class cvmfs::server ($repo = $name,
14+
$nfsshare = undef,
15+
$nfshost = undef,
16+
$nfsopts = 'rw,noatime,hard,nfsvers=3',
17+
$user = 'shared',
18+
$uid = 101)
19+
{
20+
class{'cvmfs::server::install':}
21+
class{'cvmfs::server::config':
22+
repo => $repo,
23+
nfsshare => $nfsshare,
24+
nfshost => $nfshost,
25+
nfsopts => $nfsopts,
26+
user => $user,
27+
uid => $uid,
28+
require => Class['cvmfs::server::install']
29+
}
30+
}
31+
32+

manifests/server/config.pp

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# class: cvmfs::server:config
2+
class cvmfs::server::config (
3+
$repo = undef,
4+
$nfshost = undef,
5+
$nfsshare = undef,
6+
$nfsopts = 'rw,noatime,hard,nfsvers=3',
7+
$user = 'shared',
8+
$uid = 101
9+
) {
10+
11+
if $nfshost and $nfsshare {
12+
nfs::client::mount{'cvmfs_volume':
13+
ensure => 'mounted',
14+
server => $nfshost,
15+
share => $nfsshare,
16+
mount => '/srv/cvmfs',
17+
options => 'rw,noatime,hard,nfsvers=3',
18+
atboot => true,
19+
require => [File['/srv/cvmfs'],Service['nfslock']],
20+
before => [Exec['cvmfs_mkfs'],User[$user]]
21+
}
22+
}
23+
file{'/srv/cvmfs':
24+
ensure => directory,
25+
mode => '0755',
26+
owner => root,
27+
group => root,
28+
require => File['/srv'],
29+
}
30+
file{'/srv':
31+
ensure => directory,
32+
mode => '0755',
33+
owner => root,
34+
group => root,
35+
}
36+
37+
group{$user:
38+
gid => $uid,
39+
}
40+
user{$user:
41+
uid => $uid,
42+
gid => $uid,
43+
comment => 'cvmfs shared account',
44+
managehome => true,
45+
home => "/srv/cvmfs/${user}",
46+
require => Group[$user]
47+
}
48+
exec{'cvmfs_mkfs':
49+
command => "/usr/bin/cvmfs_server mkfs -o ${user} ${repo}",
50+
creates => "/etc/cvmfs/repositories.d/${repo}",
51+
require => [User[$user],Package[kernel],Service['httpd']],
52+
}
53+
54+
service{'httpd':
55+
ensure => running,
56+
enable => true,
57+
require => Package['httpd']
58+
}
59+
#Switch off selinux for now.
60+
#disable SELinux.
61+
augeas {'disable_selinux':
62+
context => '/files/etc/sysconfig/selinux',
63+
changes => 'set SELINUX disabled',
64+
before => Exec['cvmfs_mkfs']
65+
} ~>
66+
exec {'/bin/echo 0 > /selinux/enforce': #apply the change immediately
67+
refreshonly => true,
68+
before => Exec['cvmfs_mkfs']
69+
}
70+
# Disable requiretty in sudoers since puppet runs mkfs with out a tty.
71+
augeas{'disable_requiretty':
72+
context => '/files/etc/sudoers',
73+
changes => 'set Defaults[*]/requiretty/negate ""',
74+
before => Exec['cvmfs_mkfs']
75+
}
76+
firewall{'100 - allow access from 80':
77+
proto => 'tcp',
78+
dport => 80,
79+
action => 'accept'
80+
}
81+
82+
}

manifests/server/install.pp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Class - cvmfs::server::install
2+
class cvmfs::server::install (
3+
$cvmfs_version = $cvmfs::params::cvmfs_version,
4+
$cvmfs_kernel_version = $cvmfs::params::cvmfs_kernel_version,
5+
$cvmfs_aufs2_version = $cvmfs::params::cvmfs_aufs2_version
6+
) inherits cvmfs::params {
7+
8+
class{'cvmfs::server::yum':}
9+
10+
package{['cvmfs-server','cvmfs']:
11+
ensure => $cvmfs_version,
12+
require => Yumrepo['cvmfs'],
13+
}
14+
package{'kernel':
15+
ensure => $cvmfs_kernel_version,
16+
require => Yumrepo['cvmfs-kernel'],
17+
}
18+
package{'aufs2-util':
19+
ensure => $cvmfs_aufs2_version
20+
}
21+
package{'httpd':
22+
ensure => present
23+
}
24+
}
25+
26+
27+

manifests/server/yum.pp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Class cvmfs::server::yum
2+
class cvmfs::server::yum (
3+
$cvmfs_yum_kernel = $cvmfs::params::cvmfs_yum_kernel,
4+
$cvmfs_yum_kernel_enabled = $cvmfs::params::cvmfs_yum_kernel_enabled,
5+
$major_release = $cmvfs::params::major_release
6+
) inherits cvmfs::params {
7+
8+
class{'cvmfs::yum':}
9+
10+
yumrepo{'cvmfs-kernel':
11+
descr => "CVMFS yum kernel repository for el${major_release}",
12+
baseurl => $cvmfs_yum_kernel,
13+
gpgcheck => 1,
14+
gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM',
15+
enabled => $cvmfs_yum_kernel_enabled,
16+
includepkgs => 'kernel,aufs2-util,kernel-devel',
17+
priority => 5,
18+
require => File['/etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM']
19+
}
20+
}
21+

manifests/yum.pp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
enabled => 1,
2727
includepkgs => 'cvmfs,cvmfs-keys,cvmfs-server',
2828
priority => 80,
29-
require => [File['/etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM'],
30-
Yumrepo['cvmfs-testing']]
29+
require => File['/etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM']
3130
}
3231
yumrepo{'cvmfs-testing':
3332
descr => "CVMFS yum testing repository for el${major}",

0 commit comments

Comments
 (0)