- add zfs_core module to puppetfile (provides zfs/zpool provider) - add module to manage zfs Reviewed-on: https://git.query.consul/unkinben/puppet-prod/pulls/225
91 lines
2.3 KiB
Puppet
91 lines
2.3 KiB
Puppet
# manage zfs services
|
|
class zfs::service {
|
|
|
|
if $zfs::service_manage {
|
|
|
|
exec { 'modprobe zfs':
|
|
path => $facts['path'],
|
|
unless => 'grep -q "^zfs " /proc/modules',
|
|
}
|
|
|
|
case $facts['service_provider'] {
|
|
'systemd': {
|
|
$cache_ensure = str2bool($facts['zfs_zpool_cache_present']) ? {
|
|
true => 'running',
|
|
default => 'stopped',
|
|
}
|
|
|
|
$scan_ensure = str2bool($facts['zfs_zpool_cache_present']) ? {
|
|
true => 'stopped',
|
|
default => 'running',
|
|
}
|
|
|
|
service { 'zfs-import-cache':
|
|
ensure => $cache_ensure,
|
|
enable => true,
|
|
hasstatus => true,
|
|
hasrestart => true,
|
|
require => Exec['modprobe zfs'],
|
|
before => Service['zfs-mount'],
|
|
}
|
|
|
|
service { 'zfs-import-scan':
|
|
ensure => $scan_ensure,
|
|
enable => true,
|
|
hasstatus => true,
|
|
hasrestart => true,
|
|
require => Exec['modprobe zfs'],
|
|
before => Service['zfs-mount'],
|
|
}
|
|
}
|
|
default: {
|
|
|
|
case $facts['os']['family'] {
|
|
'RedHat': {
|
|
service { 'zfs-import':
|
|
ensure => running,
|
|
enable => true,
|
|
hasstatus => true,
|
|
hasrestart => true,
|
|
require => Exec['modprobe zfs'],
|
|
before => Service['zfs-mount'],
|
|
}
|
|
}
|
|
'Debian': {
|
|
$import_ensure = str2bool($facts['zfs_zpool_cache_present']) ? {
|
|
true => 'running',
|
|
default => 'stopped',
|
|
}
|
|
|
|
service { 'zpool-import':
|
|
ensure => $import_ensure,
|
|
enable => true,
|
|
hasstatus => true,
|
|
hasrestart => true,
|
|
require => Exec['modprobe zfs'],
|
|
}
|
|
}
|
|
default: {
|
|
# noop
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
service { 'zfs-mount':
|
|
ensure => running,
|
|
enable => true,
|
|
hasstatus => true,
|
|
hasrestart => true,
|
|
before => Service['zfs-share'],
|
|
}
|
|
|
|
service { 'zfs-share':
|
|
ensure => running,
|
|
enable => true,
|
|
hasstatus => true,
|
|
hasrestart => true,
|
|
}
|
|
}
|
|
}
|