{ config, lib, pkgs, ... }: let inherit (lib) mkIf mkMerge mkThenElse; cfg = config.r6d.config-generator; computers = config.r6d.computers; profiles = config.r6d.profiles; in mkIf cfg.hydra-core { # Paquets environment.systemPackages = with pkgs; [ ]; # Services ## Hydra # 2. créer un utilisateur pour gérer hydra # su - hydra # hydra-create-user jpierre03 --password xxx --role 'admin' services.hydra = { enable = true; hydraURL = "http://hydra.${config.networking.hostName}"; notificationSender = "hydra@${config.networking.hostName}"; listenHost = "localhost"; minimumDiskFree = 50; # Go }; ## Ménage #nix.gc.automatic = true; ## Délégation des actions de compilation à la compilefarm ### Machines connues # 2. récupérer la clef publique du serveur ssh : ssh-keyscan localhost + l'ajouter dans les knownHosts programs.ssh.knownHosts = { "pedro.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7fjo2ysLqlfSo6BKnc6I6m1ayoPrbwEEyTKZmUzsOD"; }; # une fois installé : # 1. créer chef SSH : ssh-keygen -C "hydra@pedro.dubronetwork.fr" -N "" -f /etc/nixos/id_buildfarm # accessible à hydra.pedro.dubnronetwork.fr nix = { distributedBuilds = true; buildMachines = [ # { hostName = "pedro.dubronetwork.fr"; maxJobs = 2; speedFactor = 10; sshKey = "/etc/nixos/id_buildfarm"; sshUser = "root"; system = "x86_64-linux"; } ]; extraOptions = "auto-optimise-store = true"; }; }