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
2021-04-25 21:14:17 -04:00
playbooks Add support for force redeploying specific apps 2021-04-25 21:14:00 -04:00
resources Add r/w mount to plex container for media upload 2021-03-09 22:20:23 -05:00
tasks Add task to delete and reclone local repos on error 2021-03-22 22:29:18 -04:00
vars Update plex to always force redeployment 2021-04-25 21:14:17 -04: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
ansible.cfg Add ansible config to enable forward agent 2021-01-15 00:35:57 -05:00
en1.yml Implement docker compose app deployment playbook 2020-12-08 22:47:22 -05:00
en2.yml Update en2 with new variable names 2020-02-11 23:16:58 -05:00
poetry.lock Add missing jsondiff dependency 2020-12-08 22:47:22 -05:00
pyproject.toml Add missing jsondiff dependency 2020-12-08 22:47:22 -05:00
README.md Update repository meta data 2020-12-04 15:00:20 -05:00

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