This repository has been archived on 2024-05-02. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Ethan Paul 1e1d4d75a0
Update repository meta data
Update dependencies
Add precommit config
Add readme notes
2020-12-04 15:00:20 -05:00
playbooks Overhaul playbook organizational structure 2020-12-04 14:52:49 -05:00
resources Add resources directory with baseline common file/templates 2020-12-04 14:49:52 -05:00
tasks Overhaul reuse structure from role to task orientation 2020-12-04 14:47:33 -05:00
vars Update vars files with better organization and usage separation 2020-12-04 14:50:47 -05:00
.gitignore Convert from pipenv to poetry 2020-02-11 23:15:34 -05:00
.gitmodules Add secrets submodule so we can be secure and stuff 2019-11-23 20:26:59 -05:00
.pre-commit-config.yaml Update repository meta data 2020-12-04 15:00:20 -05:00
README.md Update repository meta data 2020-12-04 15:00:20 -05:00
en1.yml Populate device parameters and settings in inventory 2020-12-04 14:55:02 -05:00
en2.yml Update en2 with new variable names 2020-02-11 23:16:58 -05:00
poetry.lock Update repository meta data 2020-12-04 15:00:20 -05:00
pyproject.toml Update repository meta data 2020-12-04 15:00:20 -05:00

README.md

omni-ansible

Network Ansible configurations

  • The omni_* prefix is used for custom variables defined and used internally to distinguish them from ansible_* 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:

  1. 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
  2. Run one or more deploy-*.yml - this deploys the application noted to the system
  3. 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