ajout d'un iso cutom + cible make
							parent
							
								
									d2b528a357
								
							
						
					
					
						commit
						5759eca480
					
				| @ -0,0 +1,193 @@ | ||||
| { config, lib, pkgs, ... }: | ||||
| let | ||||
|   custom-generator = "generate-config.sh"; | ||||
|   r6dLib = import ./nixos-template-base/lib.nix; | ||||
|   hostname = "nixos-livecd.grudu.net"; | ||||
|    | ||||
|   dockerGitea = pkgs.dockerTools.pullImage { | ||||
|     imageName = "gitea/gitea"; | ||||
|     imageTag = "latest"; | ||||
|     sha256 = "0hxi9hcgrm7qp4bq9lvc0i2b84ry2m2c2dq98ajyp6j6hzn7f9pz"; | ||||
|   }; | ||||
|   dockerJenkins = pkgs.dockerTools.pullImage { | ||||
|     imageName = "jenkins"; | ||||
|     imageTag = "latest"; | ||||
|     sha256 = "1i70alhks87wl5s4yqs66f6rc5cgazna0pr8q3vn8qv99r7vwa86"; | ||||
|   }; | ||||
|   dockerSonar = pkgs.dockerTools.pullImage { | ||||
|     imageName = "sonarqube"; | ||||
|     imageTag = "latest"; | ||||
|     sha256 = "1ls3jg04flwxhf3c7jpm798zmwa9i4644jri2vymdzkwd0z63shp"; | ||||
|   }; | ||||
| in | ||||
| { | ||||
|   imports = [ | ||||
|     /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix | ||||
|     nixos-template-base/base.nix | ||||
|   ]; | ||||
|   # Custom name | ||||
|   isoImage.isoName = pkgs.lib.mkForce "${config.isoImage.isoBaseName}-grudu.net-${config.system.nixosLabel}-${pkgs.stdenv.system}.iso"; | ||||
|   # Avoid having the terminal flooded by kernel audit messages | ||||
|   boot.kernelParams = [ "audit=0" ]; | ||||
| 
 | ||||
|   # Files to copy to the liveCD | ||||
|   isoImage.contents = [ | ||||
|     { | ||||
|       source = ./generate-config.sh; | ||||
|       target = "/custom/${custom-generator}"; | ||||
|     } | ||||
|   ]; | ||||
|   environment.shellAliases = { nixos-generate-custom-config = "/iso/custom/${custom-generator}";}; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     # nécessaire pour bootraper | ||||
|     git | ||||
|     gpm | ||||
|     sudo | ||||
|     wget | ||||
|     vim | ||||
| 
 | ||||
|     # Complément | ||||
|     atop                    # monitoring | ||||
|     gitstats | ||||
|     glxinfo | ||||
|     gource | ||||
|     haskellPackages.bench  # outil pour générer des benchmarks | ||||
|     haskellPackages.pandoc-filter-graphviz | ||||
| 
 | ||||
|     #dockerGitea | ||||
|     #dockerJenkins | ||||
|     #dockerSonar | ||||
| 
 | ||||
|     # Smokeping | ||||
|     bind | ||||
|   ]; | ||||
| 
 | ||||
|    | ||||
|   networking.hostName = "${hostname}"; | ||||
|   services = { | ||||
|     openssh.enable = true; | ||||
|     virtualbox.guest.enable = true; | ||||
|     xserver.enable = true; | ||||
|   }; | ||||
| 
 | ||||
|   r6d.machines = r6dLib.applyProfilesToDirectory {} { | ||||
|     "${hostname}" = { | ||||
|       configurationFlags = { | ||||
|         dns_resolveur = true; | ||||
|         edition-photo = true; | ||||
|         jetbrains-licensed = true; | ||||
|       }; | ||||
|       configurationOptions = {}; | ||||
|       profiles = { | ||||
|         isDubronetwork = true; | ||||
|         isDubronetworkWorkstation = true; | ||||
|         isDesktopEnvironment = true; | ||||
|         isPrunetwork = true; | ||||
|         isPrunetworkWorkstation = true; | ||||
|         isWorkstation = true; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   users.extraUsers = { | ||||
|     livecd = { | ||||
|       password = "livecd"; | ||||
|       isNormalUser = true; | ||||
|       extraGroups = [ | ||||
|         "audio" | ||||
|         "docker" | ||||
|         "vbox" | ||||
|         "vboxusers" | ||||
|         "wheel" | ||||
|       ]; | ||||
|     }; | ||||
|     root = { | ||||
|       initialPassword="root"; | ||||
|     }; | ||||
|   }; | ||||
|    | ||||
|   # Paquets avec setuid root | ||||
|   security.wrappers = { | ||||
|     # outil de diagnostic réseau | ||||
|     fping.source = "${pkgs.fping}/bin/fping"; | ||||
|   }; | ||||
| 
 | ||||
|   networking.extraHosts = '' | ||||
|     192.168.10.1 servdevbrest dev1 | ||||
|     192.168.10.2 dev2 | ||||
|     192.168.10.3 dev3 | ||||
|     192.168.10.4 dev4 | ||||
|   ''; | ||||
| 
 | ||||
|   programs.man.enable = true; | ||||
| 
 | ||||
|   services.smokeping = { | ||||
|     enable = true; | ||||
|     imgUrl = "http://localhost:8081/cache/"; # défini dans nginx | ||||
|     probeConfig = '' | ||||
|       + FPing | ||||
|       binary = ${config.security.wrapperDir}/fping | ||||
|       + FPing6 | ||||
|       binary = ${config.security.wrapperDir}/fping6 | ||||
| 
 | ||||
|       +DNS | ||||
|       #binary = ${pkgs.bind}/bin/dig | ||||
|       binary = /run/current-system/sw/bin/dig | ||||
|       forks = 5 | ||||
|       offset = 50% | ||||
|       step = 300 | ||||
|       timeout = 15 | ||||
|     ''; | ||||
|     targetConfig = '' | ||||
|       probe = FPing | ||||
|       menu = Top | ||||
|       title = Suivi de la latence reseau | ||||
|       remark = Monitoring de la latence reseau. \ | ||||
|           Here you will learn all about the latency of our network. | ||||
|       + Local | ||||
|       probe = FPing | ||||
|       menu = Local | ||||
|       title = Local Network | ||||
|         ++ LocalMachine | ||||
|         menu = Local Machine | ||||
|         title = This host | ||||
|         host = localhost | ||||
| 
 | ||||
|         ++ Servdevbrest | ||||
|         probe = FPing | ||||
|         menu = servdevbrest | ||||
|         title = Servdevbrest | ||||
|         host = 192.168.10.1 | ||||
| 
 | ||||
| 	++ Servdevbrest2 | ||||
|         probe = FPing | ||||
|         menu = servdevbrest2 | ||||
|         title = Servdevbrest2 | ||||
|         host = 192.168.10.2 | ||||
| 	 | ||||
| 	++ Servdevbrest3 | ||||
|         probe = FPing | ||||
|         menu = servdevbrest3 | ||||
|         title = Servdevbrest3 | ||||
|         host = 192.168.10.3 | ||||
| 
 | ||||
| 	++ Servdevbrest4 | ||||
|         probe = FPing | ||||
|         menu = servdevbrest4 | ||||
|         title = Servdevbrest4 | ||||
|         host = 192.168.10.4 | ||||
| 
 | ||||
|         ++ MultiHost | ||||
|         menu = Multihost | ||||
|         title = Ensemble de mesures de latence | ||||
|         host = /Local/Servdevbrest /Local/Servdevbrest2 /Local/Servdevbrest3 /Local/Servdevbrest4 | ||||
|       ''; | ||||
|     }; | ||||
|   # Ports ouverts | ||||
|   networking.firewall.enable=false; | ||||
| 
 | ||||
|   # Pas besoin de mot de passe pour sudo | ||||
|   security.sudo.enable=lib.mkForce true; | ||||
|   security.sudo.wheelNeedsPassword=false; | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue