omni-ansible/README.md

1.4 KiB

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