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
|
# Install and configure a CEPH OSD node for OCI
#
# == Parameters
#
# [*bootstrap_osd_key*]
# example: 'AQABsWZSgEDmJhAAkAGSOOAJwrMHrM5Pz5On1A=='
#
# [*fsid*]
# example: '066F558C-6789-4A93-AAF1-5AF1BA01A3AD'
#
# [*ceph_mon_initial_members*]
# example: 'mon1,mon2,mon3'
#
# [*ceph_mon_host*]
# example: '<ip of mon1>,<ip of mon2>,<ip of mon3>'
#
class oci::cephosd(
$machine_hostname = undef,
$machine_ip = undef,
$all_masters = undef,
$all_masters_ip = undef,
$vip_hostname = undef,
$vip_ipaddr = undef,
$vip_netmask = undef,
$network_ipaddr = undef,
$network_cidr = undef,
$use_ssl = true,
$block_devices = undef,
$ceph_admin_key = undef,
$ceph_openstack_key = undef,
$ceph_mon_key = undef,
$ceph_bootstrap_osd_key = undef,
$ceph_fsid = undef,
$ceph_mon_initial_members = undef,
$ceph_mon_host = undef,
){
class { 'ceph':
fsid => $ceph_fsid,
ensure => 'present',
authentication_type => 'cephx',
mon_initial_members => $ceph_mon_initial_members,
mon_host => $ceph_mon_host,
}->
ceph::key { 'client.admin':
secret => $ceph_admin_key,
cap_mon => 'allow *',
cap_osd => 'allow *',
cap_mds => 'allow',
}->
ceph::key { 'client.openstack':
secret => $ceph_openstack_key,
mode => '0644',
cap_mon => 'profile rbd',
cap_osd => 'profile rbd pool=cinder, profile rbd pool=nova, profile rbd pool=glance, profile rbd pool=gnocchi, profile rbd pool=cinderback',
}->
ceph::key { 'client.bootstrap-osd':
secret => $ceph_bootstrap_osd_key,
keyring_path => '/var/lib/ceph/bootstrap-osd/ceph.keyring',
cap_mon => 'allow profile bootstrap-osd',
}
$block_devices.each |Integer $index, String $value| {
exec { "create-osd-${value}":
command => "/usr/bin/oci-make-osd ${value} # comment to satisfy puppet syntax requirements",
unless => '/bin/false # comment to satisfy puppet syntax requirements',
require => Ceph::Key['client.bootstrap-osd'],
}
}
}
|