freckles is written in Python, licensed under the GPLv3.
All the freckle source code can be found in it’s github repo: https://github.com/makkus/freckles
During the development of freckles, a few code parts were refactored into their own projects, as they could potentially be used for other purposes in the future:
A library that generates Ansible environments, inventories, roles and playbooks out of more minimal, ‘elastic’ configuration.
- homepage: https://github.com/makkus/nsbl
freckles ansible roles¶
Internally, freckles uses several Ansible roles for bootstrap and other purposes. The full list of all the roles that ship with freckles can be viewed here. Here’s a list of the most important ones:
Used for basic bootstrapping tasks.
- homepage: https://github.com/makkus/box-basics
The central role for the
freckles command-line application. Used to download a freckle, then parse its metadata and forward that metadata to the appropriate adapter(s).
An Ansible role that can install freckles (although that functionality is not used by
freckles itself, obviously), and, more importantly, update it.
A role to do some freckles related configuration work, e.g. enable external adapter/role repositories and then check out said adapter/role repositories.
Role that ensures required package managers are installed on the host system.
A (convenience) role that ensures a list of packages is installed on the host system, using the specified package manager for each package.
A role to install the conda package manager.
- homepage: https://github.com/makkus/install-conda
A role to install the nix package manager
- homepage: https://github.com/makkus/install-nix
A role to install Vagrant, which in the context of freckles is considered also a package manager, as it can install Vagrant plugins.
The role used by the freckles dotfiles adapter.
freckles ansible roles (external)¶
In addition to custom-written roles, freckles also makes use of some existing roles written by other people:
To install the commandline-tools package on Mac OS X, also needed for homebrew.
To install homebrew on Mac OS X.