Gizmo is an implementation of a toy-like configuration management tool that demonstrates principles of desired-state-configuration and idempotency
gizmo.rb -h foo -u root -p foobarbaz deploy_web.json
Manages packages (using apt
)
Options:
state: install, uninstall
name: name of the package to configure
Manages services (using systemd
)
Options:
state: start, stop, restart, reload, enable, disable
name: name of the service to configure
Manages users (using useradd
, usermod
, and userdel
)
Options:
state: present, absent
name: name of the service to configure
Manage files
Options:
group: group to own file(s)
user: user to own file(s)
permissions: permissions for file(s)
files: array of files
state: absent, sync
file: path of file to manage on target
source: path of file to use as source on controller
- File templates