Skip to content

Instantly share code, notes, and snippets.

@TomHoenderdos
Created November 5, 2013 12:37
Show Gist options
  • Save TomHoenderdos/7318439 to your computer and use it in GitHub Desktop.
Save TomHoenderdos/7318439 to your computer and use it in GitHub Desktop.
{ pkgs ? import <nixpkgs> {}, distribution ? [], ... }:
let
custompkgs = import <customnixpkgs> {};
in
with pkgs.lib;
mapAttrs (targetName: options:
rec { require = [
../services/platform/storm.nix
../services/platform/jenkins.nix
../services/platform/zookeeper.nix
../services/platform/appserver.nix
../services/platform/haproxy.nix
../services/platform/logstash-ot.nix
];
} //
optionalAttrs (options ? hostName && options.hostName != ""){
networking.hostName = options.hostName;
} //
optionalAttrs (options ? storm-nimbus && options.storm-nimbus){
services.storm.nimbus = true;
services.storm.extraLibraryPaths = [ pkgs.snappy custompkgs.pdfnet ];
services.storm.extraJars = [ "${custompkgs.pdfnet}/lib/PDFNet.jar" ];
} //
optionalAttrs (options ? storm-ui && options.storm-ui){
services.storm.ui = true;
} //
optionalAttrs (options ? storm && options.storm){
services.storm.extraLibraryPaths = [ pkgs.snappy custompkgs.pdfnet ];
services.storm.extraJars = [ "${custompkgs.pdfnet}/lib/PDFNet.jar" ];
services.storm.supervisor = true;
} //
optionalAttrs (options ? storm-staging && options.storm-staging){
services.storm.extraLibraryPaths = [ pkgs.snappy custompkgs.pdfnet ];
services.storm.extraJars = [ "${custompkgs.pdfnet}/lib/PDFNet.jar" ];
services.storm.supervisor = true;
services.storm.nimbus = true;
services.storm.ui = true;
services.zookeeper.enable = true;
} //
optionalAttrs (options ? zookeeper_enable && options.zookeeper_enable){
services.zookeeper.enable = true;
} //
optionalAttrs (options ? appserver && options.appserver){
services.appserver.enable = true;
services.appserver.configDir = "/var/lib/appserver/config";
services.appserver.extraLibraryPaths = [ pkgs.snappy custompkgs.pdfnet ];
} //
optionalAttrs (options ? build && options.build){
services.jenkins.enable = true;
services.jenkins.port = "8081";
} //
optionalAttrs (options ? haproxy && options.haproxy){
services.haproxy.enable = true;
} //
optionalAttrs (options ? logstash && options.logstash){
services.logstash-ot.enable = true;
} //
optionalAttrs (options ? basic-stuff && options.basic-stuff){
fileSystems = [
{
mountPoint = "/";
label = "nixos";
}
];
nix.maxJobs = 1;
boot.initrd.kernelModules = [ "ata_piix" "ohci_hcd" ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
boot.loader.grub.device = "/dev/sda";
services.cron.enable = true;
services.cron.systemCronJobs = ["@daily rm -f /var/tmp/.attdrv" "@daily find /tmp/nix-build* -type f -delete"];
boot.cleanTmpDir = true;
services.disnix.enable = true;
users.extraUsers.root.openssh.authorizedKeys.keys = [ "ssh-key" "ssh-key2" ];
services.openssh.enable = true;
services.openssh.permitRootLogin = "yes";
services.virtualbox.enable = true;
}
) distribution
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment