I'v small homeServer (Dell Wyse 5070) and I'm thinking about upgrade of main SSD M.2 storage.
Currently most of my services are docker containers. During upgrade I want to refresh whole setup and learn ansible a bit during the process.
I've got few services that I want to avoid to stop for hours/days which could take me to set the whole server from scratch in the new way (NextCloud, Home Assistant, Matrix), all of them used locally (trough Tailscale) by my family.
I'm thinkging about keeping them running, by connecting old SSD M.2 drive to my laptop and run inside VM. Do you think that will be doable / what kind of troubles I can get through that process? Asking about that "keeping services on my laptop" think. With refresh of server it will of course be the journey with troubles, but I will have time for that, when crucial services will be running on different machine.
I'm not afraid of that risk and just try to mitigate possible outage of services longer, than expected (I hope to refresh the server in 1 day, but as with everything new, it can take longer).
What do you mean by "direct upgrade"? I want to have every direct modification done on OS to be done troguht ansible playbook on refreshed build, so my assumption is that I have to purge / start from new SSD in that case.
ansible wants to have a home base and an inventory of devices to manage. for example, if you have a flock of Rasberry Pi's and a server stashed under a desk somewhere, yes, ansible is 100% going to simplify your life.
ansible mgmt from a device to that same device.... It might be just as easy to make backups and track your file deltas. the temptation is to use ansible so you remember what changes you made, but it can be a pia when you need to do a quick shift and have to go thru the playbook (unless you have playbooks on the ready).
If this is a Linux based OS, a reinstall is rarely needed. There are many ways to migrate it from an old drive to a new one. Cloning the old one to the new and expanding the main partition to occupy the extra space is one. A cleverer way would be to move it to LVM so that next time you'll have options for expanding by adding more drives. If the new drive is double the size, you could clone, boot from the new then setup LVM in the empty space, migrate the OS to it, then boot from that, followed by reclaiming the cloned space and adding it to the LVM.
There's nothing particularly wrong with running it in a VM as you suggested either. Or you could run the new install in a VM then install it in the server once ready.
Sounds like it would be easier to run your VM on the laptop, leave the SSD in the 5070, and move each service over to the laptop one at a time. Then nuke and repave the 5070 with the upgraded drive, and then move the services back.
Ansible is great, but I'd leave learning that as a separate project in the future. Convert to docker compose as part of this process if you're not already doing that.
Moving services one by one could be a solution but required additional networking - currently I've got Tailscale domains for mentioned critical ones (Nextcloud, Matrix) and I thought about running from the same storage could keep the same hostnames of Tailscale nodes (if that even possible). What do you think about that issue?
Currently I've got all of the docker containers defined troguht Portainer Stacks, so I could easily covert it to base docker compose files.
I'm not clear on how your tailscale names are attached to the services. Do you mean you've got a different Tailscale magic DNS for each docker container with a sidecar?
I'm not a Tailscale expert, all my services are in VM's or LXC's so they get their own Tailscale name that moves with them. Perhaps Tailscale allows you to add extra names for the same host or something?
what you are attempting is called high availability; it might not be worth it; usually would need three different physical devices (in a homelab situation)...a load balancer to route traffic, and two nodes to handle said traffic. to perform your storage upgrade, you pull one device out of the load balancer, do your upgrade, and then add it back in. then, you do the same for the other load balancer. this would have 100% service availability...but this is a lot of work for a one-person show!
do that for fun - you do you. however, if you can handle a few hours of downtime and don't want to burden yourself with the long time care+feeding the above setup will require...
remember you can use USB boot, mount both your drives, and then if you are lucky, your distro (on USB) will have a disk management/cloning utility.
click click click, boom...you have bit perfect copy of small M2 on to large M2.
Do not change your small M2! power down, swap 'em, and power on! if it doesn't work, you still have your OG M2 to boot from.
there are backup/restore utilities and other ways, each taking more and more time...but M2 is pretty quick.