# 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+ ```bash git clone https://vcs.enp.one/omni/omni-ansible.git cd omni-ansible/ poetry install ```