omniversion
v0.47.0
Published
Omniversion
Downloads
27
Maintainers
Readme
🚧 Status: in active development
Feedback and suggestions much appreciated
omniversion
is a dependency management toolbox.
Some or all of it might be useful if you need to:
- keep servers up-to-date
- identify conflicts across multiple package managers and/or servers
- include unmanaged or unpinned versions (e.g. manual installs,
apt install nginx
,nvm install node
) - patch vulnerabilities as soon as they are reported
- keep environments exactly in sync
- save time by streamlining your version management process
- develop your own toolchain for server maintenance
The tools
Collection
omniversion/ansible collects versions and dependencies from servers orchestrated via Ansible.
Conversion
omniversion/cli translates the output of many different version managers into a single, unified list.
Analysis
omniversion/python adds convenience methods to create dashboards and reports in a few lines of code.
Quick start
Prerequisites
Ansible
>= 2.8npm
(orhomebrew
)Python
>= 3.8
Steps
1. Install the Ansible collection, the CLI and the Python module:
ansible-galaxy collection install layer9gmbh.omniversion
npm install -g omniversion
pip install omniversion
2. Fetch some data by running the Ansible playbook
ansible-playbook layer9gmbh.omniversion.fetch
in a directory where Ansible can find your host definitions.
3. Display the data on the sample website dashboard:
python3 -m omniversion.dashboard.website
or in the terminal:
python3 -m omniversion.dashboard.terminal
What if I don't use Ansible?
You can fetch package manager output using shell scripts or any other method, feeding it to the omniversion/cli
tool to get a single, comprehensive dependency list in a consistent format.
Feel free to suggest additional features and integrations in the feedback section.
Documentation
Why?
Get in touch
- GitHub Discussions: provide feedback and participate in discussions
- GitHub Issues: report a bug or request a feature
Supported platforms
Operating systems
omniversion
is being built and tested mostly on macOS control nodes with linux hosts, but we do aim to support linux control
nodes as well.
Like Ansible, we not support Windows control nodes, but this might change in the future, if there is demand.
Package managers
| Name | Supported |
|------------------|------------|
| ansible-galaxy
| ✅ yes |
| apt
| ✅ yes |
| brew
| ✅ yes |
| Composer
| 🕙 planned |
| go mod
| ✅ yes |
| maven
| 🕙 planned |
| npm
| ✅ yes |
| nvm
| ✅ yes |
| pip
| ✅ yes |
| rubygems
| ✅ yes |
| rvm
| ✅ yes |
| yarn
| 🕙 planned |