Skip to content

Use NixOS on the production site #8

Open
@ForNeVeR

Description

@ForNeVeR

I have a log-standing target of using OS with declarative and reproducible configuration instead of constantly failing LTS Ubuntu that I have to mess up manually.

(And we're already messing it up much: we have some custom PPAs for GHC, Prosody and dotnet-cli, we have some custom configuration of firewall, we have fail2ban and I don't know whether it works or not, we have VPN server set up and I have no freakin' idea how to manage it all; everything is ad-hoc and undocumented, although I'm trying to keep the copies of the changed configurations in a safe place.)

So, I have the following plan:

  1. Experiment with a fresh VM conversion.
    1. Create a new virtual machine on DigitalOcean.
    2. Set up the same Ubuntu version as we use on the production site.
    3. Try using something like nixos-assimilate or nixos-in-place on that machine.
  2. Experiment with our VM backup.
    1. Make a backup of our current production VM (even if it'll cost me a bit of money).
    2. Deploy the backup to some staging site.
    3. Convert that machine on the staging site using nixos-assimilate while preserving the existing services (prosody, loglist, ctor, nginx) and documenting the experience (ideally in form of deployable config file).
  3. Decide whether it's still worth based on the results of 1 and 2.
  4. Convert the production machine!
  5. Store the configs somewhere accessible for the ops team members. Probably even in a publish repository (while removing the security and password parts to some private file, for sure).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions