DroboApp announcement: Puppet 3.4.3

Hi everyone,

Here’s the latest Puppet release for DroboFS and Drobo5N. This DroboApp comes with no configuration at all, but it can be configured to work as a server, client, or even as a standalone deployment.

One of the major reasons for using puppet is to easily ensure that configuration changes are persistent across reboots and firmware updates.

For example, if you have created a group for media applications, and are having trouble with the group being removed after every {configuration change on the DashBoard|reboot|firmware update}, then you could use puppet to apply a simple script like this:

group { "media":
  ensure => present,
  gid => 502
}

…save it as media-group.pp, and then create a service.sh file that would call:

puppet apply -l /tmp/DroboApps/puppet3/log.txt media-group.pp

DroboFS: http://www.droboports.com/app-repository/puppet-3-4-3/drobofs
Drobo5N: http://www.droboports.com/app-repository/puppet-3-4-3/drobo5n

Feedback, suggestions, and feedback are welcome.

Hi Ricardo,

Thanks for posting this update.

I was just wondering if you could go into a little more detail with regards to the process above for maintaining persistent user groups?

I want my sudoers to be persistent on reboot, but my Drobo 5N resets the /etc/group file on boot.

I’ve never used Puppet before, and want to avoid learning it in order to achieve this basic fix.

Thanks for your help!

If you just want to do a basic fix, then you probably don’t need puppet. Just add the missing sudo group in a pseudo service.sh script.

The point of using puppet is to make sure that permanent firmware changes persist even across firmware updates. For example, the permission of some /dev entries:

file { '/dev/random':
  mode => 666,
}
file { '/dev/urandom':
  mode => 666,
}
file { '/dev/null':
  mode => 666,
}
file { '/dev/full':
  mode => 666,
}
file { '/dev/zero':
  mode => 666,
}
file { '/dev/tty':
  mode => 666,
}
file { '/dev/ptmx':
  mode => 666,
}

For the sudo group, it’d look like this:

group { 'sudo':
  ensure => 'present',
  gid    => '1',
}

Then you could have another puppet module to ensure sudo membership:

user { "ricardo":
  ensure => present,
  uid => 1001,
  gid => 1001,
  groups => [ 'sudo' ],
  shell => '/bin/sh',
  home => '/mnt/DroboFS/home/ricardo',
}

Thanks for the pointers, that’s great!