I'm pretty sure you turn the faucet on, and expect drinkable water to come out, without thinking of what's going on between the source of the water and your sink.
Yet, anyone, given the right motivation, can use and learn all those pieces and parts, and make use of them at whatever competency level they have. You can even make a soccer goal net with PVC.
There is room (and need) in the world for all people to explore, geek out, and use these details. And the people who are passionate about these details, and the intermediate pieces should be cherished, because they are the ones that will understand and fix the intermediary pieces when they break.
Sometimes, making money is not the goal.
The bash commands and virtualisation host are words or perhaps "cliches" - short pieces of literate work that are available to everyone.
And yes you don't have to remember them any more than you need to know every word in the OED.
But people can then string those words together to make their own unique literate work - to set up your virtualisation host in the right way. It's possible to do that in some fill in the variables way but it is waaaay better for you to shape what you need.
Anyway, that's my take. Yes it's sensible to put the weird ass params to X in a single script and forget about it, I came across one of my own not touched for 18 months. But then I was able to read it, remember the important bits and adjust it.
I agree with you - I think
I’m not saying memorize this stuff - put it in a big proxmox.readme.md file. Then you can incorporate the actual command into your script. Otherwise you end up incorporating this wrapper into other stuff, ad infinitum, and that’s how you get a complexity crisis.
The “I can do it in x” period of time reviews are baffling to me too.
I like to be able to rely on smart folks who have fought scripts like these into being polished, so I can built on top of them, even though I have plenty of experience to build these myself. It makes no sense unless it becomes much more important to me.
- I have to manually check the zpool periodically to see if there are faults. I went about 30d with a DEGRADED disk before I realized it, turns out it was a bad cable but if another disk failed I would have been hosed.
- I have to manually run zpool scrub (yeah I know about cron but chances are if I just add the cron entry it will fail, probably some permission thing or a 1-character bug in the cmd line. Nothing like this is ever easy, it's a 1-hour rodeo, at minimum. And yeah, I'm lazy too, not gonna deny it)
- I can only get NFS v3 working, not v4, no idea why. IIRC v4 isn't technically supported by either FreeBSD yet. But rather than just say "not supported" it gives you some cryptic bs that you waste minimum 20m on googling and trying things. Everything you try, you have to triple check: restart rpciod? Or was it nfsd? exportfs -ra? Or was it some encryption version in /etc/exports?
- Samba kinda works, no idea how the permissions are supposed to work, but turns out SMB is more resilient to network interrupts than NFS which just hangs the client indefinitely. So for listening to music or reading a book its fine.
- I wanted to set up VPN on a 2nd network (not VLAN, just a 2nd subnet that routes out the tun device. I thought since I control DHCP, I could force certain devices to only ever have access via VPN), turns out this isn't possible or "very hard" doing some hack to the NAT pf rules, way above my skill level. I wasted hours on this, got the VPN and tun to authenticate, but got stuck at the routing layer. Oh also I think dhcpd doesn't like routing to different adapters? Can't remember.
- PXE was a disaster, as it usually was. I got it barely working enough to boot my tape backup computer off it and run backup scripts.
- I want simple logfile aggregation. I dont want to have to ssh into the NAS and check the logs/dmesg. I admit I haven't done a lot of research (10 years ago there was nagios, thats all I know), but it bugs me profusely that I cannot easily monitor the logs of all the machines on my network, and I rarely ever hear about anyone else doing it.
so probably 40% success, 60% (frustration|half-assery|disappointment). I guess it's just masochism, like the weightlifters who love the pain of adding 10 extra pounds to their set. At least they get some results eventually. :/
Overall, I don't regret doing it the hard way, but I am often times envious of the Proxmox users who (presumably) just plug and play.
There is real benefit I think in the manual approach, you’ll learn so much. But at some point I just want to watch stuff on TV or want my Mom in another state to watch too.
Skill issue. You lack monitoring. The basic prometheus node exporter and alertmanager would be sufficient:
# curl -s http://localhost:9100/metrics | grep zpool_state
node_zfs_zpool_state{state="degraded",zpool="storage"} 0
node_zfs_zpool_state{state="faulted",zpool="storage"} 0
node_zfs_zpool_state{state="offline",zpool="storage"} 0
node_zfs_zpool_state{state="online",zpool="storage"} 1
node_zfs_zpool_state{state="removed",zpool="storage"} 0
node_zfs_zpool_state{state="unavail",zpool="storage"} 0
You can easily alert on such metrics.But that's where the fun is ;)