Git+Ansible: watch git repo for changes and run only changed playbooks
(Also, gans
means goose in German)
Don't forget to mount your git directory!
docker run --name gans \
-e "TZ=Asia/Novosibirsk" \
-v ~/.dockerdata/gans:/data/gans \
-v /path/to/git/repo:/gitrepo \
-p 8845:8845 \
aceberg/gans
Web interface is pretty self-explanatory. If you know Ansible, you shouldn't have any problems.
Important things about gans
:
- It supports only local git repos for now. If you need to work with remote repo, you can pull it regularly with git-syr or your own cron script.
- I decided not to parse Ansible Inventory to reduce errors, so you need to enter hosts and groups manually on
Repo
page.Gans
will work only with those hosts. - Keys are handled by Ansible Inventory or
ansible.cfg
.Keys
page is only there to help you upload them and check their presence.
Configuration can be done through config file or environment variables
Variable | Description | Default |
---|---|---|
DB | Path to Database | /data/gans/sqlite.db |
HOST | Listen address | 0.0.0.0 |
PORT | Port for web GUI | 8845 |
THEME | Any theme name from https://bootswatch.com in lowcase | cerulean |
SHOW | How many lines to show on index page | 25 |
YAMLPATH | Path to file where git repo is described | /data/gans/repo.yaml |
KEYPATH | Path to ssh keys directory | /data/gans/ssh |
LOGPATH | Path to log file | /data/gans/gans.log |
INTERVAL | Interval between repo scans (s, m, h) | 5s |
TZ | Set your timezone for correct time | "" |
Key | Description | Default |
---|---|---|
-d | Path to SQLite DB file | /data/gans/sqlite.db |
-c | Path to config file | /data/gans/config.yaml |
-l | Path to log file | /data/gans/gans.log |
-r | Path to repo yaml file | /data/gans/repo.yaml |
- All go packages listed in dependencies
- Bootstrap
- Themes: Free themes for Bootstrap
- Favicon and logo: Goose icons created by Freepik - Flaticon