# Best practices for multiple vms?



## ajs (Apr 26, 2021)

Due to a recent change in the default options on the graphics/gdal port, I can no longer use the binary package management system for as many packages as I'd like to.  With my current flock of 10ish VMs (Azure) being easy enough to take care of with pkg, I've kept the idea of a more advanced package management system as a worst-case scenario for down the road.  The graphics/gdal change puts that point in the road now.

What is the currently accepted best practice for maintaining packages across multiple machines?  

My use case is 1 development vm which tracks main on ports, and then a production environment which consists of two different machine templates: web+app servers, and postgres+postgis+zfs servers.  Everything except the dev vm has used pkg quarterly or latest up to now.

I had begun to believe it was ports-mgmt/synth, but first impressions are leaving me wondering if there's a better choice?


----------



## SirDice (Apr 27, 2021)

ajs said:


> What is the currently accepted best practice for maintaining packages across multiple machines?


Set up your own repository. That's the easiest to do to have the flexibility of ports while keeping the ease of management of packages.



ajs said:


> My use case is 1 development vm which tracks main on ports, and then a production environment which consists of two different machine templates: web+app servers, and postgres+postgis+zfs servers. Everything except the dev vm has used pkg quarterly or latest up to now.


Quarterly is fine, you can track the quarterly ports branches. Different applications doesn't matter as long as they can all be built using the same options, then you only need one repository. If there are differences in options then you may need to split this up. I have for example two repositories, one for server applications (built without X options) and one for desktop applications (built with X options). 



ajs said:


> I had begun to believe it was ports-mgmt/synth, but first impressions are leaving me wondering if there's a better choice?


Should be a good choice. Alternative is using ports-mgmt/poudriere, which is also the tool that's used to build the FreeBSD packages.


----------

