This repo is supossed to work in three branches side-by-side, that is: dev
, hom
and prd
.
Configuration files will be shared
to all branches while individual
files will be exclusive for each one
(they can be the same at some point):
Individual files |
---|
hosts |
roles/deploy/templates |
roles/deploy/vars |
roles/undeploy/defaults |
This means that no commit can include shared
files and individual
files at the same time.
One should use cherry-picking
to merge shared files commits from another branches, while leaving individual files commits alone.
And checkout <branch> <path>
(path should be listed in the above table) can be used to stage individual files commits from another branches, while leaving shared files commits alone.
ansible-inventory --graph
ansible -m ping all
ansible-playbook [-e "cli_hosts=<hosts>"] <name>.yml
install.yml
– if NGINX is not installed, will install its latest version; if installed, will update to the latest version.uninstall.yml
– uninstall NGINX.start.yml
– start NGINX.stop.yml
– stop NGINX.deploy.yml
– will install or ensure NGINX is installed; start or ensure NGINX is started; create or ensure some necessary folders are present; deploy all server blocks that have a file at roles/deploy/templates/*.j2; reload NGINX if any changes.undeploy.yml
– undeploy all server blocks that are present at roles/undeploy/defaults/main.yml; reload NGINX if any changes.main.yml
– deploy.yml + undeploy.yml.