Ceph: split in classes
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
parent
931abff601
commit
324fa73bb4
@ -26,48 +26,4 @@ class privatecloud::rbd (
|
||||
public_network => $os_params::ceph_public_network,
|
||||
}
|
||||
|
||||
class { 'ceph::apt::ceph':
|
||||
release => $release
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# Monitor node
|
||||
class role_ceph_mon (
|
||||
$id
|
||||
) {
|
||||
|
||||
class { 'role_ceph':
|
||||
fsid => $os_params::ceph_fsid,
|
||||
auth_type => 'cephx',
|
||||
}
|
||||
|
||||
ceph::mon { $id:
|
||||
monitor_secret => $os_params::ceph_mon_secret,
|
||||
mon_port => 6789,
|
||||
mon_addr => $ipaddress_eth2,
|
||||
}
|
||||
}
|
||||
|
||||
define ceph_osd_journal (
|
||||
$ceph_osd_device = $name
|
||||
) {
|
||||
|
||||
$osd_id_fact = "ceph_osd_id_${ceph_osd_device}1"
|
||||
# NOTE(EmilienM) I've change double quotes to simple qotes, not sure though:
|
||||
$osd_id = inline_template('<%= scope.lookupvar(osd_id_fact) or 'undefined' %>')
|
||||
|
||||
if $osd_id != 'undefined' {
|
||||
$osd_data = regsubst($::ceph::conf::osd_data, '\$id', $osd_id)
|
||||
|
||||
file { "${osd_data}/journal":
|
||||
ensure => link,
|
||||
target => "/dev/mapper/rootfs-journal--${ceph_osd_device}1",
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0660',
|
||||
require => Mount[$osd_data],
|
||||
before => Service["ceph-osd.${osd_id}"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
41
manifests/rbd/device.pp
Normal file
41
manifests/rbd/device.pp
Normal file
@ -0,0 +1,41 @@
|
||||
#
|
||||
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
define privatecloud::rbd::device (
|
||||
$ceph_osd_device = $name
|
||||
) {
|
||||
|
||||
$osd_id_fact = "ceph_osd_id_${ceph_osd_device}1"
|
||||
# NOTE(EmilienM) I've change double quotes to simple qotes, not sure though:
|
||||
$osd_id = inline_template('<%= scope.lookupvar(osd_id_fact) or 'undefined' %>')
|
||||
|
||||
if $osd_id != 'undefined' {
|
||||
$osd_data = regsubst($::ceph::conf::osd_data, '\$id', $osd_id)
|
||||
|
||||
file { "${osd_data}/journal":
|
||||
ensure => link,
|
||||
target => "/dev/mapper/rootfs-journal--${ceph_osd_device}1",
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0660',
|
||||
require => Mount[$osd_data],
|
||||
before => Service["ceph-osd.${osd_id}"]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
33
manifests/rbd/monitor.pp
Normal file
33
manifests/rbd/monitor.pp
Normal file
@ -0,0 +1,33 @@
|
||||
#
|
||||
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
class privatecloud::rbd::monitor (
|
||||
$id
|
||||
) {
|
||||
|
||||
class { 'role_ceph':
|
||||
fsid => $os_params::ceph_fsid,
|
||||
auth_type => 'cephx',
|
||||
}
|
||||
|
||||
ceph::mon { $id:
|
||||
monitor_secret => $os_params::ceph_mon_secret,
|
||||
mon_port => 6789,
|
||||
mon_addr => $ipaddress_eth2,
|
||||
}
|
||||
}
|
32
manifests/rbd/osd.pp
Normal file
32
manifests/rbd/osd.pp
Normal file
@ -0,0 +1,32 @@
|
||||
#
|
||||
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
|
||||
class privatecloud::rbd::osd (
|
||||
$public_address,
|
||||
$cluster_address,
|
||||
$devices
|
||||
) {
|
||||
|
||||
class { 'ceph::osd' :
|
||||
public_address => $public_address,
|
||||
cluster_address => $cluster_address,
|
||||
}
|
||||
|
||||
privatecloud::rbd::device { $devices: }
|
||||
privatecloud::rbd::journal { $devices: }
|
||||
|
||||
}
|
42
manifests/rbd/osd_journal.pp
Normal file
42
manifests/rbd/osd_journal.pp
Normal file
@ -0,0 +1,42 @@
|
||||
#
|
||||
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
#
|
||||
|
||||
define privatecloud::rbd::journal (
|
||||
$ceph_osd_device = $name
|
||||
) {
|
||||
|
||||
$osd_id_fact = "ceph_osd_id_${ceph_osd_device}1"
|
||||
# NOTE(EmilienM) I've change double quotes to simple qotes, not sure though:
|
||||
$osd_id = inline_template('<%= scope.lookupvar(osd_id_fact) or 'undefined' %>')
|
||||
|
||||
if $osd_id != 'undefined' {
|
||||
$osd_data = regsubst($::ceph::conf::osd_data, '\$id', $osd_id)
|
||||
|
||||
file { "${osd_data}/journal":
|
||||
ensure => link,
|
||||
target => "/dev/mapper/rootfs-journal--${ceph_osd_device}1",
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0660',
|
||||
require => Mount[$osd_data],
|
||||
before => Service["ceph-osd.${osd_id}"]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user