Hacker News new | ask | show | jobs
by dotancohen 815 days ago
Do fabric,ansible, salt, helm, or nix have the functionality of deploying to cloud infrastructures? There is a lot more to deploying to cloud infrastructures then just provisioning a server.

I've never seen these tools used in this capacity, especially nix.

2 comments

I think such things have existed, but Nix deployment tools being relatively small projects with small teams or solo devs, a more common approach is to piggyback off of other IaC tools provisioning cloud infrastructure, e.g. by templating Terraform in Nix¹.

From a Nix user's perspective, this leaves a lot to be desired, because tools like Terraform are much less reliable than Nix tools that target local machines, and their management of, say, a VPC, is much less comprehensive than NixOS' management of an individual operating system. And they're slow as hell. But for the most part these issues are inherited from the APIs cloud providers expose, which don't meaningfully or uniformly support immutability.

--

1: https://github.com/terranix/terranix

One could argue that if you are at the stage of "provisioning a server", then you should be using something like Terraform or Pulumi, not configuration tools like the one I mentioned.

Anyway, for the specific case of "deploying to hetzner":

- ansible has a whole collection of modules for hetzner: https://docs.ansible.com/ansible/latest/collections/hetzner/...

- For Nix, there is NixOps

- if no one in the team wants to learn any of that, Hetzner provides a CLI to interact with their whole cloud.

To repeat: the last thing I'd want from an application is to have its own deployment system.