Configuration Reference
The slipp.yaml file configures a project for slipp operations.
File Location
Section titled “File Location”Directoryyour-project/
- slipp.yaml
Directoryinventory/
- …
- playbook.yml
Created automatically by slipp launch or slipp deploy --name.
Full Example
Section titled “Full Example”# Project identityname: myapp
# Ansible pathsinventory: inventory/hostsplaybook: playbook.ymlroles_path: - rolesgalaxy_path: roles/galaxy
# Secretsvault: inventory/host_vars/myserver/vault.yml
# Container runtime (auto-detected if omitted)runtime: podman
# Managed roles (for filtering in slipp ps)managed_roles: - myapp - myapp-worker
# Tag presets for deploymentstag_presets: install: "--tags install-all" setup: "--tags setup-all --skip-tags start" restart: "--tags restart" update: "--tags update-app"Fields
Section titled “Fields”Required. Project identifier used in:
- Global registry
- Service filtering with
slipp ps -p - Cross-project vault access
name: myappinventory
Section titled “inventory”Path to Ansible inventory file, relative to project root.
inventory: inventory/hostsDefault: inventory/hosts
playbook
Section titled “playbook”Path to main Ansible playbook.
playbook: playbook.ymlDefault: playbook.yml
roles_path
Section titled “roles_path”List of directories to search for Ansible roles. Passed to Ansible via ANSIBLE_ROLES_PATH.
roles_path: - roles - ../shared-rolesDefault: [] (Ansible default)
galaxy_path
Section titled “galaxy_path”Install directory for roles from requirements.yml. Automatically added to roles_path at runtime.
galaxy_path: roles/galaxyWhen requirements.yml exists, slipp runs ansible-galaxy install to this directory before deployment.
Path to Ansible vault file for secrets.
vault: inventory/host_vars/myserver/vault.ymlUsed by:
slipp secretscommandsslipp run --vaultfor environment injection
runtime
Section titled “runtime”Container runtime: docker or podman.
runtime: podmanAuto-detected from playbook if omitted.
managed_roles
Section titled “managed_roles”List of Ansible role names this project manages. Used to filter slipp ps output.
managed_roles: - myapp - myapp-worker - myapp-schedulerServices from these roles appear in slipp ps without --all.
tag_presets
Section titled “tag_presets”Named shortcuts for Ansible tag combinations.
tag_presets: install: "--tags install-all" setup: "--tags setup-all --skip-tags start" restart: "--tags restart"Use with:
slipp deploy installslipp deploy setupInventory Format
Section titled “Inventory Format”The inventory file uses standard Ansible YAML format:
all: hosts: myserver: ansible_host: 192.168.1.100 ansible_user: slipp ansible_port: 22Multiple hosts
Section titled “Multiple hosts”all: hosts: production: ansible_host: prod.example.com ansible_user: slipp staging: ansible_host: staging.example.com ansible_user: slippHost variables
Section titled “Host variables”Per-host configuration in host_vars/:
Directoryinventory/
- hosts
Directoryhost_vars/
Directorymyserver/
- vars.yml
- vault.yml
domain: app.example.comapp_port: 3000database_host: localhostdatabase_password: "{{ vault_database_password }}"Global Registry
Section titled “Global Registry”Projects are tracked globally at ~/.config/slipp/projects.json:
{ "projects": [ { "name": "myapp", "project_path": "/home/user/projects/myapp", "registered_at": "2024-01-15T10:30:00Z" } ]}View with:
slipp projects listEnvironment-Specific Config
Section titled “Environment-Specific Config”For multiple environments, use separate inventory files:
Directoryinventory/
- production
- staging
- development
Deploy to specific environment:
slipp deploy stagingOr configure in slipp.yaml per environment (not yet supported - use CLI flags).
Migration from Older Formats
Section titled “Migration from Older Formats”If upgrading from an older slipp version:
- Rename
ansictl.yamltoslipp.yaml - The format is identical - no content changes needed