Per a previous topic, I am now running a container per each ‘service’ that my server needs to run (samba, plex, db, dns-server, etc). I currently have 10 containers running just fine
I have realised that for each configuration, I kind of do a lot of the same process:
- Configure the static IP
- Install package A and configure it in a certain way
- Copy a configuration fail into a specific place on the container and restart the service
I then might do some container specific stuff
- Install packages B, C and D unique to this container
- Do some container specific configuration
- Maybe do some stuff on the host (i.e. create a system user) then bind map a drive or so
- Perhaps download a tarball from github and run a setup.py script
That got me thinking, it would be great to do all this by configuration; for example if I had a series of text based configurations/scripts that I run to create each container. I could quickly spin up the containers if I ever need to:
- Disaster recovery
- Upgrade to new OS by launching a new container and configuring per the script
- Refining the container installation process
I think this is generally known as container orchestration (?) I also thing cloudconfig could do some of what I require, but not all (for example, could I have cloudconfig entries in multiple LXD profiles and then apply all them profiles at container creation time?).
Is there a best way forward for someone like me that is just running a home-based server and doesn’t need a full data-centre solution?