53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Puppet
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Puppet
		
	
	
	
	
	
# follow the instructions for creating a loopback device
 | 
						|
# for storage from: https://docs.openstack.org/swift/latest/development_saio.html
 | 
						|
#
 | 
						|
# this define needs to be sent a refresh signal to do anything
 | 
						|
#
 | 
						|
# === Parameters:
 | 
						|
#
 | 
						|
# [*device*]
 | 
						|
#   (mandatory) An array of devices (prefixed or not by /dev)
 | 
						|
#
 | 
						|
# [*mnt_base_dir*]
 | 
						|
#   (optional) The directory where the flat files that store the file system
 | 
						|
#   to be loop back mounted are actually mounted at.
 | 
						|
#   Defaults to '/srv/node', base directory where disks are mounted to
 | 
						|
#
 | 
						|
# [*byte_size*]
 | 
						|
#   (optional) The byte size that dd uses when it creates the file system.
 | 
						|
#   Defaults to '1024', block size for the disk.  For very large partitions, this should be larger
 | 
						|
#   It is recommend to use 1024 to ensure that the metadata can fit in a single inode.
 | 
						|
#
 | 
						|
# [*loopback*]
 | 
						|
#   (optional) Define if the device must be mounted as a loopback or not
 | 
						|
#   Defaults to false.
 | 
						|
#
 | 
						|
define swift::storage::ext4(
 | 
						|
  $device,
 | 
						|
  $byte_size    = '1024',
 | 
						|
  $mnt_base_dir = '/srv/node',
 | 
						|
  $loopback     = false
 | 
						|
) {
 | 
						|
 | 
						|
  include swift::deps
 | 
						|
  # does this have to be refreshonly?
 | 
						|
  # how can I know if this drive has been formatted?
 | 
						|
  exec { "mkfs-${name}":
 | 
						|
    command     => "mkfs.ext4 -I ${byte_size} -F ${device}",
 | 
						|
    path        => ['/sbin/'],
 | 
						|
    refreshonly => true,
 | 
						|
    before      => Anchor['swift::config::end'],
 | 
						|
  }
 | 
						|
 | 
						|
  swift::storage::mount { $name:
 | 
						|
    device       => $device,
 | 
						|
    mnt_base_dir => $mnt_base_dir,
 | 
						|
    loopback     => $loopback,
 | 
						|
    fstype       => 'ext4',
 | 
						|
  }
 | 
						|
 | 
						|
  Exec<| title == "mkfs-${name}" |>
 | 
						|
  ~> Swift::Storage::Mount<| title == $name |>
 | 
						|
 | 
						|
}
 |