| 1 |
This package includes several puppet types for storage management. The |
|---|
| 2 |
types are currently tied to RHEL/Fedora systems, as the storage |
|---|
| 3 |
management operations are all done through Conga, Red Hat's cluster |
|---|
| 4 |
and storage management application. The puppet types bypass the Conga |
|---|
| 5 |
front end and communicate directly with Conga's ricci-modstorage via |
|---|
| 6 |
stdin/stdout XML message passing. The conga source is located at |
|---|
| 7 |
sources.redhat.com:/cvs/cluster. Conga is currently in the pipeline |
|---|
| 8 |
to inclusion in either Fedora extras or core. For the moment, the |
|---|
| 9 |
conga source is located at sources.redhat.com:/cvs/cluster/conga |
|---|
| 10 |
|
|---|
| 11 |
These types could be extended to allow for multiplatform support in |
|---|
| 12 |
various ways, including porting the Conga storage module (~10,000 |
|---|
| 13 |
lines C++ code), by writing additional platform-specific storage |
|---|
| 14 |
modules which communicate via the same XML API, or by modifying the |
|---|
| 15 |
puppet types directly. |
|---|
| 16 |
|
|---|
| 17 |
The only steps required to use these types is to make sure that the |
|---|
| 18 |
lib directory is included in RUBYLIB. |
|---|
| 19 |
|
|---|
| 20 |
The included types are: |
|---|
| 21 |
|
|---|
| 22 |
partition: |
|---|
| 23 |
|
|---|
| 24 |
This type doesn't really do much -- it's mainly a placeholder so that |
|---|
| 25 |
we can use Puppet's dependency mechanism to ensure that the partition |
|---|
| 26 |
is there before Puppet tries to actually create something on the |
|---|
| 27 |
partition. Currently, actual partition creation is not supported via |
|---|
| 28 |
puppet, since I haven't come up with a declarative way to do |
|---|
| 29 |
this. Before the partition is created, we don't know what it's |
|---|
| 30 |
identifier will be -- i.e. we can't say "if /dev/sda2 isn't created, |
|---|
| 31 |
create it". |
|---|
| 32 |
|
|---|
| 33 |
manifest example: |
|---|
| 34 |
partition { "/dev/sdc1": ensure => present} |
|---|
| 35 |
|
|---|
| 36 |
extended_fs: |
|---|
| 37 |
|
|---|
| 38 |
ext2/ext3 filesystem. Currently conga fs support is limited to |
|---|
| 39 |
ext2/ext3 -- with multiplatform support, this type may need to be |
|---|
| 40 |
generalized -- name "filesystem" with a "type" param, or something |
|---|
| 41 |
like that. We'd also need to come up with a better scheme for handling |
|---|
| 42 |
type-specific attributes -- i.e. dir_index and has_journal for ext |
|---|
| 43 |
filesystems, perhaps others for reiser or solaris filesystems, etc. |
|---|
| 44 |
|
|---|
| 45 |
TODO: support unit suffixes on block_size (4K vs. 4096) |
|---|
| 46 |
|
|---|
| 47 |
manifest example: |
|---|
| 48 |
extended_fs { "/dev/sdc3": |
|---|
| 49 |
block_size => 4096, |
|---|
| 50 |
dir_index => true, |
|---|
| 51 |
fstab => true, |
|---|
| 52 |
has_journal => true, |
|---|
| 53 |
label => "my_fs2", |
|---|
| 54 |
mountpoint => "/misc/foo2" |
|---|
| 55 |
} |
|---|
| 56 |
|
|---|
| 57 |
volumegroup: |
|---|
| 58 |
|
|---|
| 59 |
LVM volume group. physicalvolumes can be either a single partition (or |
|---|
| 60 |
RAID array), or an array of them. |
|---|
| 61 |
|
|---|
| 62 |
manifest example: |
|---|
| 63 |
volumegroup { "my_vg1": physicalvolumes => ["/dev/sdc5", "/dev/sdb1"]} |
|---|
| 64 |
|
|---|
| 65 |
logicalvolume: |
|---|
| 66 |
|
|---|
| 67 |
LVM logical volume. The parent volume group is included in the path |
|---|
| 68 |
(i.e. in the below example, "my_vg1" is the volume group) |
|---|
| 69 |
|
|---|
| 70 |
TODO: support unit suffixes on size (20M vs. 20971520) |
|---|
| 71 |
|
|---|
| 72 |
manifest example: |
|---|
| 73 |
logicalvolume { "/dev/my_vg1/my_lv10": size => 20971520} |
|---|
| 74 |
|
|---|
| 75 |
mdraid: |
|---|
| 76 |
|
|---|
| 77 |
MD Raid array. Currently, conga must be patched to support mdraid (see |
|---|
| 78 |
conga-patch-notes.txt). |
|---|
| 79 |
|
|---|
| 80 |
manifest example: |
|---|
| 81 |
mdraid { "/dev/md12": level => raid5, partitions => ["/dev/sdc7", "/dev/sdc10"]} |
|---|