Solved Poudriere type solution for OS

jbo@

Developer
I'm currently investigating options for running -STABLE instead of -RELEASE on my desktop machines. What I would be interested in is a solution where I can build various kernel configurations on a build server and ship them out to my clients. Most notably, I really don't like building from source on an 8-core ultrabook when I have a proper beefy build server available.

What kind of solutions & techniques exists for building world & kernel for various kernel configurations on a build server and shipping binaries to clients?

Basically I'd like something like poudriere but then for the base system rather than ports.
 
There are some caveats but you might want to checkout PkgBase: https://wiki.freebsd.org/PkgBase

What I would be interested in is a solution where I can build various kernel configurations on a build server and ship them out to my clients. Most notably, I really don't like building from source on an 8-core ultrabook when I have a proper beefy build server available.
Alternatively, something I've done for many years, you can NFS share /usr/src/ and /usr/obj (both can be read-only). Do the building on the "beefy" server, then NFS mount those two directories on another system and do the make installkernel installworld there. This works great if the CPUs are relatively similar. But you do need to watch out for build options that might take advantage of CPU features that are available on the build server but not on the 'destination' hosts (that also applies to building ports).

Basically I'd like something like poudriere but then for the base system rather than ports.
Poudriere should have support for building PkgBase, never tried it myself, but it should work.
 
I'm currently investigating options for running -STABLE instead of -RELEASE ... I can build various kernel configurations on a build server and ship them out to my clients.

For your own use and interest, you may want STABLE.

But for your clients? I do not know what your business is, but I would carefully consider anything except RELEASE for clients.
 
back in the day i always ran -STABLE (4.x to 9.x) on production boxes without any trouble
always updated via cvsup/svnup made world and kernel, mergemaster
 
For your own use and interest, you may want STABLE.

But for your clients? I do not know what your business is, but I would carefully consider anything except RELEASE for clients.
You seem to have left out the important part when quoting my initial post:
I'm currently investigating options for running -STABLE instead of -RELEASE on my desktop machines.
I don't intend to run -STABLE on anything other than my desktop machines :)

Alternatively, something I've done for many years, you can NFS share /usr/src/ and /usr/obj (both can be read-only). Do the building on the "beefy" server, then NFS mount those two directories on another system and do the make installkernel installworld there. This works great if the CPUs are relatively similar. But you do need to watch out for build options that might take advantage of CPU features that are available on the build server but not on the 'destination' hosts (that also applies to building ports).
That seems like a viable option.
I'll think about this. Maybe it's simply not worth the trouble. As I don't have any experiences with -STABLE yet I don't really know whether it's worth setting this up for just one laptop. I assume I won't be updating from source every 2nd day anyway.
The other desktop machines are proper tower/desktops so compiling world is less of a pain on those anyway.
 
I assume I won't be updating from source every 2nd day anyway.
I have 2 -STABLE systems, I update them once or twice per month (the base OS, their ports/packages are almost constantly being updated). Unless I'm running into some issue or want to check out a new feature that was committed, then I might do more frequent builds.

Have been running one or more -STABLE systems since 3-STABLE. Never had much problems with it. If I did have problems it was usually just a matter of updating the sources and do a new build.
 
For your own use and interest, you may want STABLE.

But for your clients? I do not know what your business is, but I would carefully consider anything except RELEASE for clients.
Client != Paying Business Customer
Client = TV, Laptop, SonsPCTower, Refridgerator, WashingMachine, DaughtersSmartphone
;););););););)
 
I'm currently investigating options for running -STABLE instead of -RELEASE on my desktop machines. What I would be interested in is a solution where I can build various kernel configurations on a build server and ship them out to my clients. Most notably, I really don't like building from source on an 8-core ultrabook when I have a proper beefy build server available.

What kind of solutions & techniques exists for building world & kernel for various kernel configurations on a build server and shipping binaries to clients?

Basically I'd like something like poudriere but then for the base system rather than ports.
I beg your pudding.
"[...] on my desktop machines."
"[...] and ship them out to my clients."

I (too?) interpreted this—mistakenly—as my=my but, apparently they are not (not trying to get into a polemic argument).

P.S. Good to know you value a -STABLE release; keep a clear -HEAD, realize that a -CURRENT stable is only for your own desktop machines and don't -RELEASE anything stable to your clients.
—sorry about the capitalization, couldn't resist ;)
 
Oh... holy sh*t!
I didn't realize where Geezer 's confusion was coming from until I read Erichans post. And yes, Zvoni 's post should already have been enough for me to get it.

Just for completion: When I was referring to "client" I was indeed referring to my desktop machines. Not business customers/clients :D

Sorry for the confusion I caused - Special "sorry" towards Geezer.
I will punish myself accordingly.
 
Dear jbodenmann , I am sure you well know what you are doing.

There is definitely a difference between client (software) and client (patron), that is not obvious. And much of our career depends on both.

Gaius Marius (157 - 86 BC) Gaius Marius was born near Arpinum, and was the son of a small plebeian farmer. Contrary to popular belief, the Marius clan was influential locally, and maintained some limited client relationships with those in Rome.
 
My general thoughts were not in using Poudirere Images for a NanoBSD style install.
But more of a conventional UFS or ZFS style. Perhaps raw.
Put your client machines /data directories on that big old NFS server you want to build.
That way you can flash new images to clients without losing data.
 
There is a very simple solution. Just tar gz the directories /usr/src & /usr/obj into two .tar.gz files from your build pc , and put those on a USB stick.
Using only those two files you can do a make installworld & make installkernel everywhere.
Just don't put something like,
Code:
CPUTYPE?=core-avx-i
in your make.conf
 
Back
Top