From 94faad1540291a68a9e7029460d57f76e115a7fa Mon Sep 17 00:00:00 2001 From: Alexandre LUCAZEAU Date: Thu, 21 Jul 2022 09:17:58 +0200 Subject: [PATCH] ADD : grafana post --- posts/Nixos/agenix.md | 4 +- posts/Nixos/nixos-kimsufi.md | 103 ++++++++++++++++++ posts/Nixos/nixos-option.md | 29 +++++ posts/{ => grafana}/grafana.md | 13 ++- .../repartition_CA_ville.png | Bin .../grafana => static}/repartition_ville.png | Bin 6 files changed, 143 insertions(+), 6 deletions(-) create mode 100644 posts/Nixos/nixos-kimsufi.md create mode 100644 posts/Nixos/nixos-option.md rename posts/{ => grafana}/grafana.md (95%) rename {posts/grafana => static}/repartition_CA_ville.png (100%) rename {posts/grafana => static}/repartition_ville.png (100%) diff --git a/posts/Nixos/agenix.md b/posts/Nixos/agenix.md index a1e2b43..06fa5d7 100644 --- a/posts/Nixos/agenix.md +++ b/posts/Nixos/agenix.md @@ -1,7 +1,7 @@ --- date: 2022-07-06 author: Alexandre LUCAZEAU -title: Gérer ses secrets quand on utilise git et qu'on partage son code +title: Gérer ses secrets quand on utilise git et qu'on partage son code (et Nixos) tags: - nixos - agenix @@ -194,3 +194,5 @@ transparente, et pour cause, le fichier age est déchiffré dans **/run/restic_p A partir de là, vous pouvez générer votre système avec **nixos-rebuild --switch** Vos services vons pouvoir fonctionner avec des mots de passes aux accès réduits, et ces fichiers seront versionnés dans git, sans risque de compromission. + +[Vous pouvez retrouver le code complet ici](https://git.atlanticaweb.fr/alexandre/nixos-config/src/branch/main/hosts/next) diff --git a/posts/Nixos/nixos-kimsufi.md b/posts/Nixos/nixos-kimsufi.md new file mode 100644 index 0000000..df73b82 --- /dev/null +++ b/posts/Nixos/nixos-kimsufi.md @@ -0,0 +1,103 @@ +--- +Date: 2022-05-26 +Author: Alexandre LUCAZEAU +Title: Installation de Nixos sur un serveur Kimsufi +Slug: +categories: Nixos +Tags: +- nixos +- documentation +- kimsufi +--- + +# Kimsufi mais pas totalement +Dans un précèdent article, on a parlé du script **nixos-infect** qui permet de remplacer un système existant par Nixos. + +Mais parfois ça suffit pas. J'ai un serveur KS-16, et ce dernier ne boot pas quand j'utilise le script. Nous allons donc faire une installation manuelle. + +Pour ce faire, je me suis basé sur la doc de https://mgdm.net/weblog/nixos-on-kimsufi/ + +On commence donc par booter en mode rescue. + +Ce serveur possède 3 disques de 2To +Je vais utiliser les disques en RAID 1. Cela me mettra à l'abris de la perte de 2 disques simultanées. + +On commence par supprimer le volume logique +lvremove /dev/vg/dat +puis le VG +vgremove vg +puis le PV +pvremove /dev/md127 +puis on supprime le RAID existant +dadm --stop /dev/md125 +mdadm --stop /dev/md12 +mdadm --stop /dev/md127 +Enfin on supprime les superblock des partitions existantes : +mdadm --zero-superblock /dev/sda2 +mdadm --zero-superblock /dev/sda3 +Enfin on supprime la table des partitions +wipefs -a /dev/sda + +# Phase 2 : partitionnement +Le disque sera partitionné en 3 parties. Une partition de boot en ext4 pour éviter toutes prises de tête, une seconde partition contenant tout l'espace disponible sauf 32Go et un swap de 32Go. +Sur un PC de bureau et encore plus sur un laptop, je mets un swap équivalent à la RAM pour l'hibernation. Sur un serveur perso, 8Go c'est largement suffisant. + +On commence par stocker dans des variables le nom de nos disques : + + DISK1=/dev/disk/by-id/ata-HGST_HUS724020ALA640_PN1134P6KV8PKW + DISK2=/dev/disk/by-id/ata-HGST_HUS726020ALA610_N4G3SPDY + DISK3=/dev/disk/by-id/ata-HGST_HUS726020ALA610_N4G3SR1Y + +Partionnement : + + parted /dev/sda -- mklabel msdos + parted /dev/sda -- mkpart primary 1MiB 512MiB # /boot + parted /dev/sda -- mkpart primary 512MiB -32GiB # / en ZFS + parted /dev/sda -- mkpart primary linux-swap -32GiB 100% # swap + +On format la partition de boot, le raid et on charge le module zfs et on crée le spool ainsi que les partitions zfs + + mkfs.ext4 -L boot $DISK1-part1 + mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2 + /sbin/modprobe zfs + zpool create -f -O mountpoint=none rpool $DISK1-part2 + zfs create -o mountpoint=legacy rpool/root + zfs create -o mountpoint=legacy rpool/root/nixos + +Je n'ai pas besoins de partition pour /home je préfère avoir 1 seule partition racine. +Maintenant que les partitions sont prêtes, on va les mounter et installer nixos. + +## Mount des partitions + + mount -t zfs rpool/root/nixos /mnt + mkdir /mnt/boot + mount $DISK1-part1 /mnt/boot + +# Installation de Nixos + +sfdisk --dump $DISK1 | sfdisk $DISK2 +sfdisk --dump $DISK1 | sfdisk $DISK3 +maddm --create /dev/md0 --level=0 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2 + mkfs.ext4 -L nix /dev/md0 + + chroot . /$INIT + mount /dev/md0 /mnt + mount /dev/sda1 /mnt/boot + mkdir /mnt/boot + nixos-generate-config --root /mnt + Editer /mnt/df + +création des répertoirs temporaires +mkdir -p inst host/nix +wget https://channels.nixos.org/nixos-21.11/latest-nixos-minimal-x86_64-linux.iso +modprobe loop +mount -o loop latest-nixos-minimal-x86_64-linux.iso inst +apt install squashfs-tool +unsquashfs -d host/nix/store inst/nix-store.squashfs '*' + chroot . /$INIT + mount -t zfs rpool/root/nixos /mnt + mount /dev/sda1 /mnt/boot + nixos-generate-config --root /mnt + NIX_PATH="nixpkgs=channel:nixos-21.11" nixos-install + passwd + diff --git a/posts/Nixos/nixos-option.md b/posts/Nixos/nixos-option.md new file mode 100644 index 0000000..9ae972c --- /dev/null +++ b/posts/Nixos/nixos-option.md @@ -0,0 +1,29 @@ +--- +Date: 2022-04-21 +Author: Alexandre LUCAZEAU +Title: Nixos de la documentation bien comme il faut :-) +Slug: +categories: Nixos +Tags: +- nixos +- documentation +- nixos-option +--- +# Nixos et la doc ? +Une fois entré dans l'univers de **Nixos**, la première chose qui m'a manqué c'est la documentation. + +La lecture du wiki n'est pas facile quand on débute. La source première est bien souvent les dépôts git de ses utilisateurs, une merveille même. + +Il y a un côté assez frustrant, la documentation semble tellement manquée. + +Pourtant, la documentation est complète et la lecture du code des paquets n'est pas très compliquée, on apprend vite à le comprendre. + +Un outil, magique, n'est pas suffisament mis en avant. Il s'agit de **nixos-option**. Cet outil est en réalité un indispensable. Il vous permettra de tout découvrir, et comment l'employer. + +Vous souhaitez mettre en place une sauvegarde avec **restic** ? Vous cherchez la doc sur la création des comptes utilisateurs ? + + nixos-option users.users + nixos-option services.restic.server + nixos-option + +Exécutée sans argument, vous aurez la documentation racine. Libre alors de parcourir les catégories pour découvrir la doc associé, avec des exemples, et la liste des attributs à un mot clé et sa sous arborescence. diff --git a/posts/grafana.md b/posts/grafana/grafana.md similarity index 95% rename from posts/grafana.md rename to posts/grafana/grafana.md index 63fbe82..15eb2de 100644 --- a/posts/grafana.md +++ b/posts/grafana/grafana.md @@ -1,15 +1,17 @@ --- date: 2022-07-17 author: Alexandre LUCAZEAU -title: "Grafana un assistant pour tout" -slug: +title: Grafana un assistant pour tout tags: - grafana +- data sciences +- decision science categories: -- virtualisation +- grafana draft: false description: "Grafana mon assistant commercial" --- + Dans le monde de l'IT, **Grafana** est très connu pour ses capacités de visualisation de données de supervisions. @@ -71,6 +73,7 @@ seront pas soumis à votre prestataire du moment : le dashboard vous appartient, données aussi, et le language SQL est un standard : combo gagnante. La requète SQL la suivante vous permez de suivre le volume par mois des ventes de Pulls. + `SELECT DATE_TRUNC('month',date_creation) AS "time", count(Libellé) AS Pull @@ -88,6 +91,6 @@ WHERE Libellé like 'Jean' group by DATE_TRUNC('month',date_creation)` On peut ainsi obtenir les grafiques suivants : -![répartition des commandes par ville](grafana/repartition_ville.png) +![répartition des commandes par ville](/static/repartition_ville.png) -![répartition du chiffre d'affaires par ville](grafana/repartition_CA_ville.png) +![répartition du chiffre d'affaires par ville](/static/repartition_CA_ville.png) diff --git a/posts/grafana/repartition_CA_ville.png b/static/repartition_CA_ville.png similarity index 100% rename from posts/grafana/repartition_CA_ville.png rename to static/repartition_CA_ville.png diff --git a/posts/grafana/repartition_ville.png b/static/repartition_ville.png similarity index 100% rename from posts/grafana/repartition_ville.png rename to static/repartition_ville.png