patternMinor
Central repository hosting various binaries/applications for different platforms/architectures
Viewed 0 times
binarieshostingcentralarchitecturesapplicationsdifferentrepositoryforplatformsvarious
Problem
I would like to improve the automation and performance when managing VMs using Ansible. One of my use cases is to install custom software on a variety of operating systems i.e Red-Hat, Ubuntu, Centos. This software is distributed using single-file installers. For instance, installing a mySQL database on Red-Hat and Centos.
I recently learned about "repository managers" (or something similar). I don't know exactly where to look/learn more about what are the tools out there. I also don't know what the official terminology is.
This repository is ideally straightforward to use i.e, I just put a binary there, classify it with some tags[?] maybe like 64-bit, version 3.3, Centos.
Currently, I have this. But I don't really like hosting the binary on an NFS server
A typical use case would look like this
My goal is to have the Ansible playbooks be easily maintainable when a new version comes out, without, having to change anything in a playbook, just swap/add a new binary in the repository for a new version of
I understand that the YUM package manager does this in a way, however, I am wondering what other options (if any) are out there.
I recently learned about "repository managers" (or something similar). I don't know exactly where to look/learn more about what are the tools out there. I also don't know what the official terminology is.
This repository is ideally straightforward to use i.e, I just put a binary there, classify it with some tags[?] maybe like 64-bit, version 3.3, Centos.
Currently, I have this. But I don't really like hosting the binary on an NFS server
name: Get mySQL binary
command: "find {{ nfs }} -name \"*mysql*\""
register: mySQL_location
name: Install mySQL
command: "{{mySQL_location.stdout}} --option 1 --option 2
become: yesA typical use case would look like this
- I want to install
Software Aon Centos
- I use Ansible to get the appropriate OS specific version of
Software Afrom a "central repository"
- I use an Ansible module and specify version, OS, etc, and that downloads that binary (or binaries) to the VM. This should be fast since it will be over the local network, even for binaries of 100 MB+. Afterwards, Ansible installs it.
- The Ansible role would be configurable to affect the installation settings, etc.
- Next, I want to reuse the same role to easily do the same for, let's say Red-Hat
My goal is to have the Ansible playbooks be easily maintainable when a new version comes out, without, having to change anything in a playbook, just swap/add a new binary in the repository for a new version of
Software AI understand that the YUM package manager does this in a way, however, I am wondering what other options (if any) are out there.
Solution
Your scenario is a perfect use case for a binary repository manager. A BRM's primary feature is to act as a central storage system for your binaries, but there are many other features including:
Using a BRM is more lightweight than a typical source code repository system such as Git or SVN. Those systems will have much more metadata than is necessary for binary files
I have personally used Artifactory by JFrog, but I have also heard many good things about Nexus.
- Versioning
- Tagging
- Permission management
- Logging/auditing
Using a BRM is more lightweight than a typical source code repository system such as Git or SVN. Those systems will have much more metadata than is necessary for binary files
I have personally used Artifactory by JFrog, but I have also heard many good things about Nexus.
Context
StackExchange DevOps Q#3278, answer score: 2
Revisions (0)
No revisions yet.