[Nix-dev] NixOps usage survey.
Tobias Pflug
tobias.pflug at gmx.net
Mon Sep 12 11:05:16 CEST 2016
If I may just jump in with a question: What I feel uneasy about is to just use some channel. Is that what everyone does? I usually pinpoint a specific commit so that i know that my deployments are actually deterministic about what nixpkgs set is being used.
Am I just being paranoid/impractical? Maybe it is even an anti-pattern since I obviously have to manually update then.
Thanks in advance for any input :)
-Tobi
Sent from my iPhone
> On 06 Sep 2016, at 15:06, Игорь Пашев <pashev.igor at gmail.com> wrote:
>
> I'm using NixOps in production, EC2, Hetzner, VBox with no issues.
>
> Of course, commit NixOps state (JSON) in git with git-crypt. And this
> wrapper for NixOps:
>
> #!/usr/bin/env bash
>
> set -euo pipefail
>
> NIXPKGS=https://github.com/NixOS/nixpkgs-channels/archive/nixos-15.09.tar.gz
> NIXOPS=${NIXOPS:-nixops}
> export NIX_PATH=nixpkgs="$NIXPKGS":.
>
> usage () {
> cat <<USAGE
> Usage: $0 <nixops command> <realm/spec.nix> [nixops options]
> Examples:
> $0 deploy realms/vbox.nix
> $0 info realms/vbox.nix
> $0 deploy realms/dumpoo.nix --build-only
> $0 destroy realms/cats.nix --include slothcat
> USAGE
> }
>
> fatal () {
> echo '** ERROR:' "$@" >&2
> usage >&2
> exit 1
> }
>
> if [ $# -lt 2 ]; then
> fatal "missing agruments."
> fi
>
> CMD="$1"; shift
> REALM_NIX="$1"; shift
>
> case "$REALM_NIX" in
> *realms/*.nix) REALM=$(basename "$REALM_NIX" .nix);;
> *) fatal "invalid realm spec: $REALM_NIX";;
> esac
>
> cd "$(dirname "$0")"
>
> state="secrets/nixops-${REALM}.json"
> db=$(mktemp -u "secrets/tmp.${REALM}.XXXXXX.nixops")
>
> trap 'save' EXIT
>
> save() {
> if [ -f "$db" ]; then
> "$NIXOPS" export -s "${db}" > "${state}.tmp"
> mv "${state}.tmp" "${state}"
> rm -f "$db"*
> fi
> }
>
> create() {
> "$NIXOPS" create -s "$db" -d "$REALM" "<realms/${REALM}.nix>"
> }
>
> case "$CMD" in
> create)
> [ ! -f "$state" ] || fatal "\`$state' already exists."
> create
> ;;
> *)
> [ -f "$state" ] || fatal "\`$state' does not exists."
> "$NIXOPS" import -s "${db}" < "$state"
> "$NIXOPS" "$CMD" -s "$db" -d "$REALM" "$@"
> ;;
> esac
>
>
>
> And makefile for development with vbox;
>
> REALM = cats
> override STATE = secrets/nixops-vbox-$(REALM).json
>
> build: $(STATE)
> ./let deploy realms/vbox-$(REALM).nix --build-only
>
> destroy:
> ./let $@ realms/vbox-$(REALM).nix --confirm
>
> info deploy check send-keys start stop reboot: $(STATE)
> ./let $@ realms/vbox-$(REALM).nix
>
> $(STATE):
> ./let create realms/vbox-$(REALM).nix
>
> 2016-09-05 19:01 GMT+03:00 Aloïs Cochard <alois.cochard at gmail.com>:
>> Hi all,
>>
>> We are experimenting with NixOps and we are having great success. We do plan
>> to use it for our development infrastructure, and it seems to be very
>> promising.
>>
>> In the light of applying the same technology on our production stack, I'm
>> curious to know how NixOps is used "for real"? Do you use it in production?
>>
>> Do you have some success story to share?
>>
>> Would love to know more about how it is used, the size of clusters, ...
>>
>> Thanks in advance!
>>
>> --
>> Λ\oïs
>> http://twitter.com/aloiscochard
>> http://github.com/aloiscochard
>>
>> _______________________________________________
>> nix-dev mailing list
>> nix-dev at lists.science.uu.nl
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
More information about the nix-dev
mailing list