atl.sh is open source at github.com/allthingslinux/monorepo/tree/main/infra/sh. Pull requests and bug reports are welcome.Documentation Index
Fetch the complete documentation index at: https://docs.allthingslinux.org/llms.txt
Use this file to discover all available pages before exploring further.
Getting started
- Fork and clone the repository
- Install dependencies:
- Set up a dev VM (see Local Development):
Workflow
- Create a branch from
main - Make your changes in the Ansible code
- Test against the dev VM:
just deploy dev - Run the smoke test:
just smoke-test dev - Run linters:
just lint - Commit with descriptive messages (see below)
- Open a pull request
Commit messages
Use conventional commit prefixes:| Prefix | Use for |
|---|---|
fix(role): | Bug fixes — fix(gemini): use EC key with SAN |
feat(role): | New features — feat: add smoke-test playbook |
docs: | Documentation only — docs: add troubleshooting page |
refactor(role): | Code restructuring without behavior change |
chore: | Maintenance — dependency updates, CI changes |
git log useful and reverts clean.
Code style
Ansible conventions
- YAML files use 2-space indentation
- Task names are sentence case:
Install molly-brown, notinstall molly-brown - Use
ansible.builtin.fully qualified module names - Handlers go in
handlers/main.yml, not inline - Handler names must match
notify:strings exactly (case-sensitive) - Use
ansible.builtin.templatefor config files, notcopywith inline content - Templates go in
templates/with a.j2extension - Default variables go in
defaults/main.yml
Role structure
Linting
Pre-commit hooks run automatically ongit commit. To run manually:
- Trailing whitespace
- End-of-file newlines
- YAML syntax
- Terraform formatting (if applicable)
Testing
Dev VM
The primary testing method. Deploy your changes and verify:Smoke test
The automated smoke test creates a temporary_smoketest user, validates all services end-to-end, then cleans up:
Molecule
Individual roles can be tested with Molecule:What to work on
- Check GitHub Issues for open tasks
- Package requests from users (add to
roles/packages/) - Documentation improvements
- New service integrations (see Adding a Role)
- Security hardening improvements
Questions?
Join#support on irc.atl.chat (port 6697, SSL).