Hello guys, how are you doing?
In the past months, I have been working to create a tool called Splinter
(like the ninja rat) that I wanted to introduce to you because I would really appreciate your opinions and suggestions.
This is the GitHub home of Splinter: https://github.com/marcomc/splinter/
Splinter is a provisioning tool based on BASH and Ansible.
-
It takes about 15-20 minutes to create a reusable configuration (a profile).
-
Then it takes ~1h 15m for fully unattended provisioning.
The main use cases I think it can be used are
- Provision a Mac for a new employee
- Build a backup Mac
- Migrate to a new Mac
- Rebuild a Mac to a clean state
- Restore your Mac favourite settings and software
- Create an additional account for your kids or partner
The outcome can be a Mac with (everything is modular and optional)
-
an
admin
account for the use of the support team -
a new account that will request the user to change its password at the first login
-
Filevault encrypted filesystem
-
Sophos AV Endpoint installed
-
All the desired applications preinstalled (i.e. Chrome, Atom, MS Office, Virtualbox - you choose what)
-
a user’s favourite system config and user preferences and dotfiles
-
a user’s chosen PIP, NPM, Ruby, Homebrew packages and formulas
-
.ssh_config already set to use proxy gateways
-
… and much, much more
Among the many things it can do:
-
installation of Sophos AV Endpoint installation
-
activation of FileVault2 encryption with personal or institutional recovery keys
-
installation of Homebrew packages and Cask formulas
-
setup of settings to be set across the whole company or to keep separate configurations for your family Macs
-
setup of role-specific settings for each department, person or Mac
Splinter can be safely installed in your machine; it will not clutter your system because everything that it uses lives inside the project directory created during the installation (removing the project directory removes everything that has been installed). In fact, all the Python requirements for Ansible are prepacked in a Miniconda (or Pyenv) environment that lives within the Splinter project directory.
Once installed in your machines, you can configure and create a self-contained provisioning package to copy to the machine to provision.
Creating a provisioning package is not mandatory; you can run provisioning directly on your target machine on the fly if you store your custom profiles in a GitHub repository.
I have documented all its capabilities in here: https://github.com/marcomc/splinter/wiki
I would appreciate if you could give it a look and hopefully test it, that would be very important to me
Thanks for your attention
Marco MC