File: mirror.pp

package info (click to toggle)
puppet-module-ceph 3.1.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 884 kB
  • sloc: ruby: 3,177; python: 36; makefile: 10; sh: 10
file content (72 lines) | stat: -rw-r--r-- 1,958 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#
# Copyright (C) 2016 Keith Schincke
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
# Author: Keith Schincke <keith.schincke@gmail.com>
#
# Configures a ceph rbd mirroring
#
# == Define: ceph::mirror
#
# === Parameters:
#
# [*pkg_mirror*] Package name for RBD mirroring
#   Optional. Default is 'rbd-mirror'
#
# [*rbd_mirror_ensure*] Ensure RBD mirror is running
#   Optional. Default is 'running'
#
# [*rbd_mirror_enable*] Enable the RBD mirror service on boot
#   Optional. Default is true

define ceph::mirror (
  $pkg_mirror        = 'rbd-mirror',
  $rbd_mirror_ensure = 'running',
  $rbd_mirror_enable = true,
) {

  include stdlib

  ensure_resource( 'package',
    $pkg_mirror,
    {
      ensure => present,
      tag    => [ 'ceph' ],
    }
  )

  $service_name = "ceph-rbd-mirror@${name}"

  #Xenial reports 'debian' as the service provider
  #'systemd' should cover supported RHEL type systems
  if( ( $facts['service_provider'] == 'systemd' ) or
  ( $facts['os']['release']['full'] == '16.04' ) )
  {
    Service{
      name   => $service_name,
      enable => $rbd_mirror_enable,
    }
  }
  else {
    fail( 'Unsupported operating system. Ubuntu 16.04 and RedHat/CentOS 7 are supported' )
  }

  service { $service_name:
    ensure => $rbd_mirror_ensure,
    tag    => ['ceph-rbd-mirror']
  }

  Ceph_config<||> ~> Service<| tag == 'ceph-rbd-mirror' |>
  Package<| tag == 'ceph'|> -> Service<| tag == 'ceph-rbd-mirror' |>
}