Web service for ansible playbooks execution.
Go 1.18+ and npm 7+ required.
cd assets
npm install
cd ..
go build -a -o app
Configuration is passed via environment variables or .env
file.
See .env.sample
for variables list and example configuration.
ensemble requires opinionated playbook repository structure:
Repository root
|- /inventories/
| |- main.yml
| |- ...yml
|- /roles/
| |- /role-1/
| |- /role-2/
| |- /.../
|- /vars/
| |- main.yml
| |- vault.yml
| |- ...yml
|- .gitignore
|- colections.txt
|- playbook-1.yml
|- playbook-2.yml
|- ...yml
/inventories/
contains ansible inventory files (in YAML or classic formats).
Default inventory file is main.yml
, other files will be treated as alternatives.
/roles/
- standard directory for ansible roles.
/vars/
- contains variables:
main.yml
- default file, when exists always included in playbook runvault.yml
- file encrypted with ansible vault, when exists always included in playbook run (requires vault password in project settings)- other YAML files will be treated as alternatives - can be included after
vault.yml
andmain.yml
to override variables defined there
collections.txt
contains names of custom collections to install with ansible galaxy before playbook run.
YAML files in root will be treated as ansible playbooks. Each playbook can contain name and description in front matter comment, for example:
#First line is playbook name
#Second and forth lines are
#playbook description
#...
---
- alessio/shellescape - MIT
- flosch/pongo2 - MIT
- go-co-op/gocron - MIT
- google/uuid - BSD-3-Clause
- jmoiron/sqlx - MIT
- joho/godotenv - MIT
- labstack/echo - MIT
- lib/pq - MIT
- sirupsen/logrus - MIT
- drudru/ansi_up - MIT
- twbs/bootstrap - MIT
- twbs/icons - MIT
- rtfpessoa/diff2html - MIT
- jquery - MIT