Merge branch 'upgrade-16.09' = les machines sont migrées
						commit
						bb617fbf13
					
				| @ -1,11 +0,0 @@ | ||||
| # nixos-template-base | ||||
| 
 | ||||
| Ce dépôt stocke une configuration générique des machines. | ||||
| Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN). | ||||
| 
 | ||||
| Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs. | ||||
| 
 | ||||
| # Lien pour install sur machine distante | ||||
| 
 | ||||
| * https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot | ||||
| * https://github.com/NixOS/nixpkgs/issues/13305 | ||||
| @ -0,0 +1,41 @@ | ||||
| # nixos-template-base | ||||
| 
 | ||||
| Ce dépôt stocke une configuration générique des machines. | ||||
| Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN). | ||||
| 
 | ||||
| Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs. | ||||
| 
 | ||||
| # Lien pour install sur machine distante | ||||
| 
 | ||||
| * https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot | ||||
| * https://github.com/NixOS/nixpkgs/issues/13305 | ||||
| 
 | ||||
| # Notes pour l'upgrade de 16.03 vers 16.09 | ||||
| 
 | ||||
| * mettre le dépôt base sur la branche upgrade-16.09 | ||||
| * changer le channel nixos : ```nix-channel --add https://nixos.org/channels/nixos-16.09 nixos``` | ||||
| * activer x11 dans le configuration.nix | ||||
| 
 | ||||
| ~~~ | ||||
| services.xserver.enable = true; | ||||
| ~~~ | ||||
| 
 | ||||
| * remplacer le bootloader si gummiboot était utilisé | ||||
| 
 | ||||
| ~~~ | ||||
| boot.loader.gummiboot.enable = true; | ||||
| ~~~ | ||||
| 
 | ||||
| devient | ||||
| 
 | ||||
| ~~~ | ||||
| boot.loader.systemd-boot.enable = true; | ||||
| ~~~ | ||||
| 
 | ||||
| Pour résoudre les soucis d'upgrade, il est conseillé : | ||||
| * de désactiver tous les imports (sauf `hardware.nix`) | ||||
| * d'ajouter `.../localisation.nix` dans les imports sous peine d'être en clavier US | ||||
| * d'ajouter ```nixpkgs.config.allowUnfree = true;``` | ||||
| * d'ajouter `vim` aux paquets | ||||
| * de réactiver petit à petit les lignes désactivées | ||||
| 
 | ||||
| @ -0,0 +1,18 @@ | ||||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkIf mkMerge mkThenElse; | ||||
|   cfg = config.r6d.config-generator; | ||||
|   computers = config.r6d.computers; | ||||
|   profiles = config.r6d.profiles; | ||||
| in | ||||
| 
 | ||||
| mkIf true { | ||||
| 
 | ||||
|   # fix: Hostname -s renvoie "Unknown host" alors que hostname renvoie la bonne valeur | ||||
|   #      Il s'avère que hostname vérifie la validité du FQDN et du reverse. | ||||
|   #      Fixer ces paramètres dans les hosts permet de faire tomber en marche | ||||
|   networking.extraHosts = ''                                                                                                                                                                                                                                                  | ||||
|     127.0.0.1   ${config.networking.hostName}                                                                                                                                                                                                                              | ||||
|   ''; | ||||
| } | ||||
| @ -0,0 +1,32 @@ | ||||
| { 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-builder { | ||||
| 
 | ||||
|   # Paquets | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|   ]; | ||||
| 
 | ||||
|   # Services | ||||
| 
 | ||||
| 
 | ||||
|   virtualisation.virtualbox.host.enable = true; | ||||
|   nix.gc.automatic = true; | ||||
| 
 | ||||
|   users.users."hydrabld" = { | ||||
|     description = "Execution des jobs hydra"; | ||||
|     group = "nixbld"; | ||||
|     extraGroups = [ "nixbld" ]; | ||||
|     isNormalUser = true; | ||||
| 
 | ||||
|     openssh.authorizedKeys.keys = [ | ||||
|       "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGYpjcWJCf8dXpv2LmoIaNVbwZXEC50QUU6Az+lqeD89 hydra radx" | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| @ -0,0 +1,60 @@ | ||||
| { 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 = { | ||||
|     "monstre.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTTrLhq1Cwm0rpnwEIxSLqVrJWZnt+/9dt+SKd8NiIc"; | ||||
|     "pedro.dubronetwork.fr".publicKey   = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7fjo2ysLqlfSo6BKnc6I6m1ayoPrbwEEyTKZmUzsOD"; | ||||
|     "ocean.prunetwork.fr".publicKey     = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINCaRuTl8iCTUE4XInOpkSlwQj5Re4w4Iq+gNIlJe8pA"; | ||||
|     "radx.prunetwork.fr".publicKey      = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGyoXdTEnxSgZTMfRfVH+bpOGZJtJpydAijcRGsZik7U"; | ||||
|     "rollo.dubronetwork.fr".publicKey   = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID4lWgS/sVdcZvnAAN+lBSOcCL9ISdAUsjp1kh9lalNu"; | ||||
|   }; | ||||
| 
 | ||||
|   # une fois installé : | ||||
|   # 1. créer chef SSH : ssh-keygen -C "hydra@pedro.dubronetwork.fr" -N "" -f /etc/nixos/id_buildfarm | ||||
|   # ssh-keygen -t ed25519 -C "hydra MACHINE" -f /etc/nixos/hydra-ssh-key | ||||
|   # 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"; | ||||
|   }; | ||||
|    | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue