skx / marionette

Something like puppet, for the localhost only.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Module suggestions

alexwhitman opened this issue · comments

Some suggestions for modules which I think would be useful and general enough to compliment existing modules:

Users

User addition, deletion and modification via useradd, userdel and usermod respectively.

Groups

Similar to users, but with groupadd, groupdel and groupmod.

Package Repositories

package already exists to manage packages, but a good compliment to this would be the management of additional repositories such as PPAs under Ubuntu based systems or things like EPEL for CentOS. Adding can be accomplished with add-apt-repository on Debian based systems but I don't know of a nice way of removing except for "manually" deleting the repo files. I have less experience with CentOS based systems but it seems adding and removing would be similarly "manual".

Posting this to provide somewhere to discuss whether these would be useful modules and possible implementation details.

User/Group management is an obvious one. I'd be happy to accept a pull-request for either, or add it to my backlog for implementing it myself.

For repository management I'd almost be inclined to suggest creating a file beneath /etc/apt/sources.list.d/, or /etc/yum.d/, and doing it "manually". The main reason for that is that I'm hazy on some of the details but I suspect there are going to be related issues - certainly for the Debian/Ubuntu case there will be the obvious enhancement to work with GPG-keys (apt-key). Those extra/related things are a bit non-portable and system specific, so I'd be worried I'd not know enough to do a decent job.

(Similar motivation lead me to ignore "cron" which would be another obvious case. But I figure users can deploy "/lib/systemd/.../blah.service" with a timer, or a file beneath /etc/cron.d, as appropriate.)

Makes sense about repositories and it's easy enough to drop files in the respective places.

For users and groups there would be a question around what options of useradd and groupadd to support and if/how passwords would be handled. Puppet has hiera-eyaml to allow for encrypted credentials to be stored in configuration but something like that might be overly complex to warrent adding.