1
0
mirror of https://cgit.krebsco.de/krops/ synced 2025-07-12 21:26:32 +00:00
Ingolf Wagner b465376df8 populate: reference all packages using "pkgs"
This fixes pop.pass's dependency on the caller's PATH for finding
the pass executable, while at the same time keeping its argument
consistent with the naming in other pop.$x functions.
2018-09-19 07:55:45 +02:00
2018-07-12 14:14:47 +02:00
2018-05-03 13:11:33 +02:00

krops (krebs ops)

krops is a lightweigt toolkit to deploy nixos systems, remotely or locally.

fancy features include:

  • store your secrets in passwordstore
  • build your system remotely
  • minimal overhead
  • run from custom nixpkgs branch/checkout/fork

minimal example:

create a krops.nix somewhere

let
  #krops = ./.;
  krops = (import <nixpkgs> {}).fetchgit {
    url = https://cgit.krebsco.de/krops/;
    rev = "3022582ade8049e6ccf18f358cedb996d6716945";
    sha256 = "0k3zhv2830z4bljcdvf6ciwjihk2zzcn9y23p49c6sba5hbsd6jb";
  };

  lib = import "${krops}/lib";
  pkgs = import "${krops}/pkgs" {};

  source = lib.evalSource [{
    nixpkgs.git = {
      ref = "4b4bbce199d3b3a8001ee93495604289b01aaad3";
      url = https://github.com/NixOS/nixpkgs;

    };
    nixos-config.file = toString (pkgs.writeText "nixos-config" ''
      { pkgs, ... }: {

        fileSystems."/" = { device = "/dev/sda1"; };
        boot.loader.systemd-boot.enable = true;
        services.openssh.enable = true;
        environment.systemPackages = [ pkgs.git ];
      }
    '');
  }];
in
  pkgs.krops.writeDeploy "deploy" {
    source = source;
    target = "root@192.168.56.101";
  }

and run $(nix-build krops.nix). This results in a script which deploys the machine via ssh & rsync on the target machine.

Description
Mirror of krops.
Readme WTFPL 175 KiB
Languages
Nix 100%