playbooks | ||
resources | ||
tasks | ||
vars | ||
.gitignore | ||
.gitmodules | ||
.pre-commit-config.yaml | ||
ansible.cfg | ||
en1.yml | ||
en2.yml | ||
poetry.lock | ||
pyproject.toml | ||
README.md |
omni-ansible
Network Ansible configurations
- The
omni_*
prefix is used for custom variables defined and used internally to distinguish them fromansible_*
or other variables. The_runtime_
prefix should be used for runtime variables - Passing
clean=true
should force cleaning any and all cached stuff - Passing
update=true
should update any unpinned things to their latest version
Organizational notes:
- Playbooks should be platform/device agnostic. Any playbook should be runnable against any device. If the config a playbook deploys isn't applicable to that device then the playbook should be laid out so that it skips any inapplicable hosts.
- Building from that, platform-conditionals should go in task files:
when
conditions in playbooks should be limited to runtime conditions.
Target notes:
- The
'mgmt'
target grants remote management access. This usually means SSH + local login access, but can also mean web interface (cockpit, erx, etc)
General workflow:
- Run
provision.yml
- this gets the entire environment into a ready-to-go state but does not deploy any actual applications or perform any target tasks - Run one or more
deploy-*.yml
- this deploys the application noted to the system - Run one or more
do-*.yml
- this performs one off tasks
local env creation
Requires Poetry-1.1+
git clone https://vcs.enp.one/omni/omni-ansible.git
cd omni-ansible/
poetry install