nixops
nickel
Our great sponsors
nixops | nickel | |
---|---|---|
10 | 46 | |
1,713 | 2,137 | |
4.7% | 4.1% | |
6.4 | 9.5 | |
18 days ago | 3 days ago | |
Python | Rust | |
GNU Lesser General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nixops
-
20 Years of Nix
As far as I know, it’s still about [0]. I’ve had a better experience with deploy-rs though [1] - or even just using nixos-rebuild to target the remote machine.
[0] - https://github.com/NixOS/nixops
-
Will we move away from DSLs?
For example Nix can already replace ansible, packer, cloudformation[1], dockerfiles.
-
NixOS History and Our Experience - Nix, Null, Nada, Nothing
Nix can also ship the nixpkgs as an oci image (e.g. docker image), vm image, iso, or if you're able to: as a nixos configuration. Tools like nixops can allow you to deploy many machines and have their behavior exactly specified, and the configuration can be version controlled. NixOS configuration can be thought of as congruent configuration management, where many other tools give you many less guarantees about configuration drift and reproducibility.
-
The best solution for deploying flakes
There are 4 tools I'm taking into consideration right now, but every suggestion is welcome: 1. deploy-rs - I don't know anything about it, heard about it like a day or two ago 2. NixOps - the official one, I don't know what to think, but I have concerns about Flakes compatibility 3. morph - I understand this as "NixOps, but better", no more toughs. 4. colmena - seems to be pretty straightforward with quite nice docs
-
Spectrum OS: a declarative, reproducible, compartmentalized Linux
I'm still relatively new to NixOS, having switched all my personal systems over to it this spring/summer. I don't have a detailed answer to your question, but I believe NixOPs is the canonical way to do what you're describing in production/at scale:
https://github.com/NixOS/nixops
https://nixos.org/nixops/manual/
-
Tool for managing multiple machines of a distributed system?
Nixops is specifically made for purposes like yours.
-
NixOS 21.05 Released!
Well, everyone of course! But especially devops, developers, power-users, and ricer folks. Due to the declarative and purity aspect of nixpkgs, all builds and configurations can be version controlled, cached and shared. NixOS can easily be extended to produce docker images, vm images, or even distributed deployments. You can also write reproducible multi-node integration tests. Tinkerers! Love playing around with the latest desktop manager or modifying builds? Nixpkgs allows you to modify any package you wish to, locally! Nixpkgs is actually a source distribution but its guarantees around purity and reproducibility are so strong that you can get a binary cache "for free".
-
Backblaze Is Now a Terraform Provider
You could use NixOps[0] for Nix but I'm not sure you can directly compare Terraform and Guix/Nix? My set up involves Terraform for infrastructure and Nix for provisioning, and it's working for me so far.
[0] https://github.com/NixOS/nixops
-
Benefits/disadvantages of Guix System in general and over NixOS?
I'll have to read more about NixOps though, I had kind of forgotten that it existed!
-
NixOS Linux
Kind of off topic, but I would love to have NixOps (https://github.com/NixOS/nixops) as an abstraction layer for every type of cloud service, and not just virtual machines (e.g. queues, object storages, etc).
There is Terraform and Ansible, of course, but Nix seems like it could combine the strengths of both of them.
nickel
-
Nix – A One Pager
So, its key features are:
1. domain-specific: designed for conveniently creating and composing derivations. This reason alone already justifies a new language, or an embedded domain-specific language (such as the Guile/Scheme for guix), or a mix of both (Starlark, the build language of Bazel embedded in a restricted Python-variant).
2. purely functional: this ties well into the philosophical backing of Nix the package manager, which aims to be purely functional, also known as hermeticity in other build systems (Bazel).
3. lazily evaluated: similar to other build systems (including Bazel), so that you can build only what you need on demand.
4. dynamically typed: this one is controversial. Being dynamically typed—in other words, not developing a type system—gets Nix out of the door first. But users often complain about the lack of proper types and modularity. There are experiments to address this, such as Nickel (https://github.com/tweag/nickel).
It is understandable that a one-pager may not have space for the whys.
-
10 Ways for Kubernetes Declarative Configuration Management
Nickel:Nickel is a straightforward configuration language aimed at automatically generating static configuration files. Essentially, it's akin to JSON with the addition of functions and types.
-
Show HN: Togomak – declarative pipeline orchestrator based on HCL and Terraform
Also look at nickel which is an evolution of nix. It's my favorite in this space.
nickel-lang.org
https://github.com/tweag/nickel
- Show HN: Flake schemas – teaching Nix about your flake outputs
-
What config format do you prefer?
Or this https://github.com/tweag/nickel
-
Nickel 1.0
Nickel is a programming language. While HCL is just a configuration format, so not really comparable.
Here's a comparison with similar tools: https://github.com/tweag/nickel#comparison
-
Announcing Nickel 1.0, a configuration language written in (and usable from) Rust
As for 'providence', I suppose you meant provenance :) it's been delayed because this was less critical for 1.0 to decide on or to implement (as it: it doesn't break backward compatibility in any way to add this feature in the short term), but this is very much on the roadmap: Issue #235. That's a must-have in a language with merging like Nickel.
-
Rewrite it in Rust: Kubernetes
Have you considered using a different language for templating? this could be a BIG selling point. Some good ones are cue-lang (though I haven't seen support for rust), kcl or nickel-lang.
- Nickel v1.0.0
- Design rationale for the Nickel configuration language
What are some alternatives?
deploy-rs - A simple multi-profile Nix-flake deploy tool.
rnix-lsp - WIP Language Server for Nix! [maintainer=@aaronjanse]
terraform - Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
nixos - My NixOS Configurations
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
nix-gui - Use NixOS Without Coding
morph - NixOS deployment tool
nix-doc - An interactive Nix documentation tool providing a CLI for function search, a Nix plugin for docs in the REPL, and a ctags implementation for Nix script
nixos-generators - Collection of image builders [maintainer=@Lassulus]
AppImageKit - Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
patchelf - A small utility to modify the dynamic linker and RPATH of ELF executables
nix - Nix, the purely functional package manager