Skip to content

Latest commit

 

History

History
87 lines (68 loc) · 2.81 KB

README.md

File metadata and controls

87 lines (68 loc) · 2.81 KB

ensemble

Web service for ansible playbooks execution.

Screenshot

Building

Go 1.18+ and npm 7+ required.

cd assets
npm install
cd ..
go build -a -o app

Configuration

Configuration is passed via environment variables or .env file. See .env.sample for variables list and example configuration.

Repository file structure

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 run
  • vault.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 and main.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
#...
---

Uses