Sommaire
- Le principe
-
Détail sur les actions réalisées par les scripts
- setup bash
- setup vim
- Setup apt
- Installe des packages depuis les dépôts debian
- Setup Intel i915 (optimisations carte vidéo intel)
- Setup apparmor
- Setup du regdomain
- Setup dnscrypt_proxy
- Setup flatpak
- Setup Grub
- Setup IO scheduler
- Setup NetworkManager
- Setup Plymouth
- Setup swapiness, vfs_cache, etc.
- Setup tlp
- Setup tmp.mount
- Setup udev
- Setup ufw (règles pare-feu)
- Setup unattended-upgrade
- Setup usbguard
- installe des packages flatpak depuis les dépôts flathub
- setup firefox
- setup gnome preference
- setup usbguard_applet_qt
- setup xdg_mime (applications par défaut)
- Pour finir
Bonjour,
pour faciliter la configuration d'un ordinateur portable (ou fixe) sous Debian GNU/Linux 10 (Buster),
j'ai créé un projet sur gitlab nommé my-deb-laptop.
Lien vers le projet: https://gitlab.com/stephane.gambus/my-deb-laptop/tree/master
Il s'agit d'un ensemble de scripts bash orchestrés par le programme run.sh me permettant de réinstaller mon ordinateur facilement sans oublier des actions.
Le principe
- faire une installation de base d'une Debian 10 (ne pas saisir de mot de passe root et sélectionner le bureau Gnome)
- télécharger les scripts avec git (git clone https://gitlab.com/stephane.gambus/my-deb-laptop.git)
- lancer le programme principal (sudo ./run.sh)
note: Il faut être connecté à internet pour que le script fonctionne.
Détail sur les actions réalisées par les scripts
setup bash
- modification de $HOME/.bashrc
- dé commente les lignes d'alias pour root et utilisateur
- dé commente "export LS_OPTIONS=" pour root
- dé commente "force_color_prompt=yes" pour utilisateur
- change "grep --color=" depuis 'auto' vers 'always' pour utilisateur
- active la completion du bash pour root et utilisateur
setup vim
- Modification de $HOME/.vimrc
- ajout de la ligne "source /usr/share/vim/vim81/defaults.vim"
- ajout de la ligne "set syntax=on"
- ajout de la ligne "set mouse=r"
Setup apt
- modification de /etc/apt/sources.list
- commente la ligne "deb cdrom:" line
- ajout du dépot contrib
- ajout du dépot non-free
- ajout du dépot buster-backports
Installe des packages depuis les dépôts debian
- main la liste des packages est dans ./my-deb-laptop/lists/apt_debian_main.list
- contrib la liste des packages est dans ./my-deb-laptop/lists/apt_debian_contrib.list
- non-free la liste des packages est dans ./my-deb-laptop/lists/apt_debian_non-free.list
Setup Intel i915 (optimisations carte vidéo intel)
- création du fichier /etc/modprobe.d/i915.conf
- ajout de la ligne "options i915 modeset=1"
- ajout de la ligne "options i915 fastboot=1"
- ajout de la ligne "options i915 enable_guc=3"
Quelques informations à ce propos: https://01.org/linuxgraphics/downloads/firmware
Setup apparmor
- lance la commande: aa-enforce /etc/apparmor.d/*
Setup du regdomain
- Mofification de /etc/default/crda
Setup dnscrypt_proxy
dans /etc/dnscrypt-proxy/dnscrypt-proxy.toml
avant: server_names = ['cloudflare']
après: server_names = ['cloudflare','cloudflare-ipv6','opendns']configure dnscrypt-proxy pour toutes les connexions
1) Précise à NetworkManager de ne pas utiliser le DNS fournis par le DHCP en créant le fichier /etc/NetworkManager/conf.d/no-dns.conf
2) redémarre le service NetworkManager.service pour éviter la recréation automatique de /etc/resolv.conf
3) force les requêtes DNS à passer par dnscrypt-proxy
remplace tout ce qui est dans /etc/resolv.conf par "nameserver 127.0.2.1"
Setup flatpak
- ajoute le dépot flathub sudo /usr/bin/flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo || echo "pb on remote-add"
Setup Grub
si le processeur est un Intel de génération Skylake,
alors, ajoute intel_pstate=skylake_hwp à la ligne GRUB_CMDLINE_LINUX_DEFAULT
Setup IO scheduler
- modification de /etc/sysfs.conf
- si un ssd est présent et si il supporte mq-deadline, alors on l'active.
Setup NetworkManager
- création du fichier /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
- ajout de la ligne [connection]
- ajout de la ligne wifi.powersave = 3
Setup Plymouth
- définit le thème par défaut sur futureprototype
Setup swapiness, vfs_cache, etc.
- Modification de /etc/sysctl.d/99-sysctl.conf
- ajout de la ligne "vm.swappiness=10"
- ajout de la ligne "vm.vfs_cache_pressure=50"
- ajout de la ligne "vm.dirty_writeback_centisecs=1500"
Setup tlp
- modification de /etc/default/tlp
avant: CPU_HWP_ON_AC=balance_performance
après: CPU_HWP_ON_AC=performance
avant: SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
après: SATA_LINKPWR_ON_AC="max_performance"
si un device nvme est present:
avant: DISK_DEVICES="sda sdb"
après: DISK_DEVICES="nvme0 sda sdb"
avant: MAX_LOST_WORK_SECS_ON_BAT=60
après: MAX_LOST_WORK_SECS_ON_BAT=15
si le chassis est un ordinateur portable et, un périphérique bluetooth est present
avant: #DEVICES_TO_DISABLE_ON_STARTUP=
après: DEVICES_TO_DISABLE_ON_STARTUP=bluetooth
si le périphérique supporte powersupersave
avant: PCIE_ASPM_ON_BAT=powersave
après: PCIE_ASPM_ON_BAT=powersupersave"
Setup tmp.mount
- met le répertoire /tmp en mémoire en guise d'optimisation
Setup udev
- création du fichier /etc/udev/rules.d/70-solo_key.rules pour supporter les clés solokeys https://solokeys.com/
Setup ufw (règles pare-feu)
- enable ufw
- default deny incoming
- default allow outgoing
- allow udp multicast packets incomming and outgoing
- allow tor incomming
Setup unattended-upgrade
- active les mises à jour automatique
Setup usbguard
- modification de /etc/usbguard/usbguard-daemon.conf
- ajout du login utilisateur dans le parameter IPCAllowedUsers=
- active le service usbguard.service
installe des packages flatpak depuis les dépôts flathub
- la liste des packages installés est dans ./my-deb-laptop/lists/flatpack_flathub.list
setup firefox
ajout de parametres personnels dans le fichier user.js de l'utilisateur
Pour avoir une meilleur visibilité sur un écrans FullHD
layout.css.devPixelsPerPx 1.3Pour désactiver la géolocalisation
geo.enabled falsepour définir la page de démarrage
browser.startup.homepage https://duckduckgo.com/pour que Netflix fonctionne directement
media.gmp-gmpopenh264.enabled true
media.eme.enabled true
setup gnome preference
- Applique les paramètres présents dans ./my-deb-laptop/lists/gnome_settings.list
setup usbguard_applet_qt
- Création du fichier $HOME/.config/USBGuard
setup xdg_mime (applications par défaut)
- Applique les paramètres présents dans ./my-deb-laptop/lists/xdg_mime.list
Pour finir
Il est possible d'avoir un menu plus attrayant en installant l'extension de gnome-shell nommée gnomenu via logiciel (gnome-software), mais je ne l'ai pas automatisé.
Pour ceux qui le souhaitent, après installation de gnomenu, vous pouvez utiliser les configurations ci-dessous en tant qu'utilisateur:
schemadir="$HOME/.local/share/gnome-shell/extensions/gnomenu@panacier.gmail.com/schemas/"
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu hide-workspaces 'true'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu hide-panel-menu-arrow 'true'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu hide-panel-view 'true'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu hide-panel-apps 'true'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu use-panel-apps-icon 'false'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu use-panel-apps-label 'false'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu use-panel-view-label 'false'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu use-panel-menu-label 'false'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu use-panel-view-icon 'false'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu hide-useroptions 'true'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu hide-shortcuts 'true'
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu panel-menu-icon-name "['debian-swirl']"
gsettings --schemadir $schemadir set org.gnome.shell.extensions.gnomenu use-panel-menu-label 'true'
/usr/bin/gnome-shell-extension-tool -d 'apps-menu@gnome-shell-extensions.gcampax.github.com' && true # app-menu
/usr/bin/gnome-shell-extension-tool -e 'gnomenu@panacier.gmail.com' && true # gnomenu
gsettings set org.gnome.shell enabled-extensions "['dash-to-panel@jderose9.github.com', 'redshift@tommie-lie.de', 'remove-dropdown-arrows@mpdeimos.com', 'TopIcons@phocean.net', 'alternate-tab@gnome-shell-extensions.gcampax.github.com', 'openweather-extension@jenslody.de', 'ubuntu-appindicators@ubuntu.com', 'EasyScreenCast@iacopodeenosee.gmail.com', 'gnomenu@panacier.gmail.com']"
En espérant que cela pourra vous servir…
# Silent boot
Posté par bubar🦥 (Mastodon) . Évalué à 8. Dernière modification le 18 juin 2019 à 18:45.
Bonjour Stéphane, merci pour ce premier journal : intéressant ! (solokeys, je ne connaissais pas, par exemple, et très sympa le dnscrypt_proxy !)
Pour un ordi personnel, portable ou pas, j'aime bien avoir un boot clean, 'propre', sans aucun message, sans voir le chargeur de démarrage, sans rien jusqu'au bureau. Parceque c'est joli, agréable, que la personne ne s'intéressant pas au système n'a pas ce besoin, tandisque le 'réparateur' n'en a, lui, pas besoin :-)
Du coup, ça donnerait grosso-modo : retrait de plymouth, 'rd.systemd.show_status=0' en option de boot, récupération de l'image 'bgrt' de l'uefi (si la distrib ne fait pas ça toute seule) pour avoir le logo constructeur, passage de grub en 'hidden' (ou timeout 0 si la distrib le fait pas). Pour au final avoir un truc comme ça Qu'en penses tu ?
[^] # Re: Silent boot
Posté par stephane.gambus . Évalué à 5.
Bonjour Tankey,
Merci de ton retour trés interessant.
Je viens de tester un redémarage après modification de /etc/default/grub
- sudo apt remove plymouth
- modif GRUB_TIMEOUT=5 en GRUB_TIMEOUT=0
- suppression de splash sur la ligne GRUB_CMDLINE_LINUX_DEFAULT=
- ajout de rd.systemd.show_status=0 sur la ligne GRUB_CMDLINE_LINUX_DEFAULT=
- sudo update-grub
ça me parait vraiment clean en effet ! (j'ai tout de même à saisir un password à saisir pour la partition LVM chiffrée). C'est aussi beaucoup plus rapide pour démarrer. (en ressenti)
Je viens de voir que l'on peut toujours accéder à GRUB malgré la présence de GRUB_TIMEOUT=0 en appuyant sur SHIFT, mais je n'ai pas encore testé…
Par contre, je n'ai pas bien compris la partie "récupération de l'image 'bgrt' de l'uefi" (mon ordi est un Dell XPS 9350) J'aurais bien testé ça…
[^] # Re: Silent boot
Posté par bubar🦥 (Mastodon) . Évalué à 7. Dernière modification le 18 juin 2019 à 22:25.
BGRT pour Boot Graphics Resource Table (
bootime_graphics_resource_table_support
dans le noyau), une extension acpi (EfiBootServicesData) qui indique où se trouve le 'logo' dans l'efi pour l'utiliser puis libérer cette portion.Plymouth intègre cette possibilité : le système extrait tout seul l'image (le logo constructeur souvent) et l'affiche en fond d'écran, en y ajoutant le logo de la distribution (et une petite animation). Cependant ce merge est assez récent et je n'ai pas regardé si Buster l'intégrait. Par défaut me suis dit "non", du coup la solution de se passer de plymouth est sympa (perso, même avec un plymouth qui fait ça, je vire quant même plymouth pour ne garder qu'un logo fixe). On trouve ce logo dans
/sys/firmware/acpi/bgrt/image
Ensuite, fbcon et efifb savent afficher cette image lors du boot (pas essayé / vérifié pour simple_fb), enfin .. si je me trompe pas.Concernant doc et discussion, ce mail sera mieux que mes mots.
(ça me fait rudement plaisir de voir ces petits raffinements arrivés par défaut, quel changement en qq années, aujourd'hui il n'y a plus rien à faire pour que ça fonctionne)
Ah oui, ça l'idéal serait d'entrer ce mot de passe via Coreboot (ou l'uefi, à défaut) mais c'est pas encore fait :-)
[^] # Re: Silent boot
Posté par stephane.gambus . Évalué à 4.
Salut Yvan ! (Heureux d'avoir de tes nouvelles par le biais de ce journal)
Merci de tes explications.
coreboot n'est malheureusement pas disponible sur mon laptop. Mon prochain sera probablement un Librem 13 pour cette raison, ainsi que pour ratatiner l'Intel Management Engine. J'attends une génération de processeur qui intègre en hardware la correction de spectre/meltdown/etc. + un clavier français. En attendant je pense prendre le téléphone Librem 5)
Plymouth est actuellement en version 0.9.4-1.1: amd64 dans Debian 10 Buster (même version en sid)
Je n'ai pas trouvé ce merge dans le changelog
https://metadata.ftp-master.debian.org/changelogs//main/p/plymouth/plymouth_0.9.4-1.1_changelog
Le format de l'image est bmp
file /sys/firmware/acpi/bgrt/image
/sys/firmware/acpi/bgrt/image: PC bitmap, Windows 3.x format, 450 x 432 x 24
j'ai affiché l'image en ligne de commande
eog /sys/firmware/acpi/bgrt/image
Le logo de DELL est bien affiché dans le viewer eog !
Avec un flasheur de bios, on pourrait modifier le logo directement dans le firmware si Bootguard n'est pas activé. (ce qui est le cas pour mon laptop)
# ansible
Posté par liberforce (site web personnel) . Évalué à 10.
Ce type d'automatisation, c'est un boulot pour ansible.
Pour mon setup vim, j'utilise un dépôt git à part, et je fais juste un lien symbolique vers le dossier en question vers
$HOME/.vim
. Pas besoin de fichiervimrc
à côté ($HOME/.vimrc
), car vim lit aussi$HOME/.vim/vimrc
, ainsi toute la config vim tient dans un unique dossier, la rendant facilement déployable sur une nouvelle machine.[^] # Re: preseed
Posté par Gabin3 . Évalué à 3.
Ça a aussi bien sa place dans une config preseed. Et si l'ami se limite à Debian (ce qui est bien :)), il peut en faire un paquet, voire meta-paquet.
[^] # Re: preseed
Posté par LaBienPensanceMaTuer . Évalué à 3.
J'ai pas bien compris pourquoi Gabin3 a été tant moinssé … ses suggestions sont on ne peut plus pertinentes … (et je dis pas ça parce que j'ai fait les mêmes 10 comments plus bas).
[^] # Re: ansible
Posté par bubar🦥 (Mastodon) . Évalué à 4. Dernière modification le 19 juin 2019 à 21:27.
en théorie oui, en pratique non.
ça cause de "comment aider quelqu'un à passer sous gnu/linux, ici Debian Buster, sans prise de tête ni perte de temps", pas de "comment industrialiser le process", dans ce dernier cas on aurait démarré par "bootp pxe", pas par ansible. mes 2 cents.
Cette solution par script convient tout à fait pour une install-party, ansible aussi mais ça va pas être la même de préparation (ou alors on se pointe en disant "j'ai tout fait en 3 playbooks" … "ok, super, mais en vrai on a pas l'infra pour suivre")
[^] # Re: ansible
Posté par kna . Évalué à 7.
Tu peux utiliser ansible localement, il doit juste être installé sur la machine.
[^] # Re: ansible
Posté par Laurent J (site web personnel, Mastodon) . Évalué à 4.
Ah ? il faut une infra pour lancer Ansible ? J'ai du louper quelque chose dans son utilisation alors :-)
Je ne pense pas que dans une install party, il soit trop compliqué d'indiquer de faire un
sudo apt install ansible
… Parce qu'au final, que ce soit un répertoire complet de scripts bash ou un répertoire complet de scripts ansible, ça revient au même, sauf que dans le premier cas, bash est déjà installé.# Ansible
Posté par Laurent J (site web personnel, Mastodon) . Évalué à 5.
Je me suis fait aussi des scripts de configuration pour ma machine. Par contre j'ai utilisé Ansible. Ça m'évitait d'avoir à gérer "l'idempotence".
[^] # Re: Ansible
Posté par stephane.gambus . Évalué à 3. Dernière modification le 19 juin 2019 à 11:40.
Javais plusieurs possibilité
- coder en bash
- coder en ansible
- faire un master custom de debian et y ajouter ajouter les scripts directement (installation tout automatisée de bout en bout)
le plus simple et rapide m'a semblé être le bash pour une première version (je n'ai pas encore regardé ansible)
Ansible à l'air très intéressant…
actuellement je configure ça dans .vimrc:
ajout de la ligne "source /usr/share/vim/vim81/defaults.vim"
ajout de la ligne "set syntax=on"
ajout de la ligne "set mouse=r"
Me conseillez vous d'autres lignes de configuration complémentaires pour vim ?
[^] # Re: Ansible
Posté par Yves (site web personnel) . Évalué à 4. Dernière modification le 19 juin 2019 à 13:51.
Salut ! et merci pour cet intéressant inventaire (quoique de mon côté j’utilise plutôt Ansible).
Pour vim, j’ai trouvé ça sur Internet et je trouve que c’est assez confortable à utiliser :
(à copier tel quel avec les caractères Unicode)
J’y ai ajouté aussi :
avec
~/.vim/bundle/vim-editorconfig
qui est un clone de https://github.com/sgur/vim-editorconfig.git, en « detached HEAD » sur la dernière version (dernier tag).[^] # Re: Ansible
Posté par stephane.gambus . Évalué à 0.
Très intéressant ton projet home-server.
Il va me falloir du temps pour tout regarder =)
[^] # Re: Ansible
Posté par liberforce (site web personnel) . Évalué à 10.
De la config pour vim, ce n'est pas ce qui manque, c'est plutôt l'inverse. Il y a des gens qui partagent des
.vimrc
énormes adaptés à leur workflow, et impossible pour le profane de se les approprier. Mon conseil: fais de l'additif. Crée ta config à partir de ce que tu peux trouver à droite et à gauche, mais ne pars pas d'une grosse config existante pour l'édulcorer.Après plusieurs années d'utilisation de vim "à la vi", je m'y suis mis plus sérieusement.
Les ressources que j'ai utilisées et que je conseille:
- l'appli "Vim Master" android avec des quiz de tous niveaux. Même quand tu te trompes, comme on te donne la bonne réponse et ce que chaque réponse a comme effet, tu as moyen de comprendre pourquoi tu t'es trompé et découvrir des nouvelles fonctionnalités.
- Vimcasts qui te donnera plein de pistes de personnalisation, par l'auteur de "Practical Vim" (que je recommande aussi). Le mieux est de reprendre toutes les vidéos (ou les transcriptions) dans l'ordre chronologique.
- Une conférence de Max Cantor qui montre déjà plein de choses qu'on peut faire sans avoir besoin de plugins, juste en connaissant les fonctionnalités présentes de base dans vim.
- Cet article sur comment découper et structurer son
.vim
plutôt qu'avoir unvimrc
de plusieurs centaines de lignes (et d'autres articles)[^] # Re: Ansible
Posté par mornik . Évalué à 1.
Moi j'ai 2 vimrc. Celui qui se suffit à lui même et qui est transporté sur les machines sur lesquels je bosse (via une fonction qui assure la connexion ssh)
Le second, est celui de ma machine de travail avec plusieurs plugins et tout.
Le premier est fait pour offrir le maximum de confort/fonctionnalité sur un maximum de système ayant un vim ancien.
[^] # Re: Ansible
Posté par flan (site web personnel) . Évalué à 6.
Mon point de vue sur la question :
- ansible réclame une passe après installation (donc installer Ansible) et il faut pouvoir récupérer facilement le script (pas forcément compliqué, cela dit),
- le preseed est un peu complexe à faire évoluer (faut refaire une image et c'est pénible), c'est pénible à débugguer et on ne peut pas le reclaquer facilement,
- le metapaquet est un peu complexe à régénérer, potentiellement ça implique d'avoir un miroir Debian (avec la gestion de clefs que ça implique), c'est pénible à débugguer et il faut en plus s'occuper de la montée de version
- le script bash va demander de réinventer pas mal de choses par rapport à Ansible (pour le structurer, pour assurer l'idempotence, …) et sera plus compliqué à prendre en main par quelqu'un d'autre.
[^] # Re: Ansible
Posté par liberforce (site web personnel) . Évalué à 3. Dernière modification le 20 juin 2019 à 14:49.
Ansible n'a besoin d'être installée que sur la machine qui exécute le script, pas la machine cible. Le cas où il n'y a qu'une machine, tu as effectivement besoin d'installer ansible, mais dans le cas où tu as plusieurs machines à administrer (ordi fixe + ordi portable par exemple), tu peux appliquer ta configuration sur tes deux machines en une seule passe, et cela potentiellement à partir d'une troisième machine.
Comme tu le dis, ansible te permet aussi de gérer l'idempotence: tu lances plusieurs fois ton script ansible tu arrives dans le même état final F. Tu changes la config de la machine cible, relances ton script ansible → tu arrives encore dans l'état F, même si l'état initial était différent. Ansible te permet de te concentrer sur l'état final à atteindre. Après ce n'est pas une solution magique, mais globalement ça fait le job, et c'est réplicable d'une machine à une autre.
[^] # Re: Ansible
Posté par flan (site web personnel) . Évalué à 2. Dernière modification le 20 juin 2019 à 15:11.
Je pensais plus au premier cas, en effet (machine solo), mais même dans le second, il y a potentiellement un peu de travail à faire sur la machine cible (configuration réseau si elle est un peu complexe, injection des clefs publiques si absence de mot de passe, etc.). Mais bon, dans tous les cas c'est un travail à faire :)
Par expérience :
- le méta-paquet est une mauvaise idée (cycle de vie du paquet à gérer, ainsi que les miroirs APT, les clefs GPG, …) dans tous les cas,
- si on utilise un preseed (installation de l'OS automatisée), sa phase de post-install doit être minimale (en gros permettre la configuration par ansible, puppet ou tout autre équivalent) et ne surtout pas faire autre chose,
- le bash est une mauvaise idée car trop dur à maintenir quand il est complexe.
Mais bon, c'est assez rassurant qu'Ansible, pensé pour configurer des machines soit meilleur dans ce domaine qu'un Bash qui est très généraliste.
# FAI
Posté par thomasv . Évalué à 6.
En utilisant FAI (Fully Automatic Installation), il est possible de créer une image d’installation contenant déjà tous les paquets souhaités. Cela peut faire gagner un peu de temps si l’objectif est de déployer cette configuration sur plusieurs machines.
Son auteur en a fait une présentation à la MiniDebConf Hamburg l’an dernier, ainsi qu’à DebConf18 (celle de la MiniDebConf a l’avantage d’être sous-titrée).
[^] # Re: FAI
Posté par LaBienPensanceMaTuer . Évalué à 2.
Debian permet aussi nativement cette opération via son installeur.
C'est le preseeding
# Après le script, après ansible ... le paquet Debian ou mieux, l'image preseed !
Posté par LaBienPensanceMaTuer . Évalué à 7.
… le paquet Debian !
Puisque la cible de ta démarche est clairement de ré-installer une Debian, pourquoi ne pas tout simplement passer par un paquet Debian:
Par le jeu des dépendances, tu pourras installer tout les paquets de ton choix.
Tu pourras installer des fichiers de configuration spécifiques à ton paquet (et donc installer des crontabs, des fichiers de /etc/apt/sources.list.d, etc…)
Installer des diversions sur certains fichiers, etc…
Tu pourras passer par les scripts de postinst et preinst pour faire les diverses opérations restantes.
Sinon, l'alternative au paquet est carrément l'installation automatisée de Debian à l'aide du système de preseed
[^] # Re: Après le script, après ansible ... le paquet Debian ou mieux, l'image preseed !
Posté par stephane.gambus . Évalué à 1.
Un package, c'est bien, mais surtout si ça peut être basculé dans les dépôts officiels de Debian.
Preseed, c'est bien pour faire ça propre distribution
- installation classique + avec ajout de packages
- installation du dernier kernel provenant des backports
- paramétrages divers
- changement du fond d'écran pour mettre madistrobuntu
Toutes ces solutions sont intéressantes…
Pour la prochaine testing:
je tenterais de contacter les mainteneurs de vim et bash afin de voir si ils peuvent ajouter par défaut quelques paramétrages "conviviaux" dans le cas ou la cible est un desktop ou laptop (task-desktop ou task-laptop)
il faudrait que je demande à Debian (qui ?) si ils accèderaient un package qui commente la ligne CDROM, qui active contrib non-free et les backports
il faudrait aussi que je liste la liste des packages à créer.
par exemple:
L'idéal serait que le distribution s'améliore dans le cas d'utilisation Desktop/Laptop…
[^] # Re: Après le script, après ansible ... le paquet Debian ou mieux, l'image preseed !
Posté par LaBienPensanceMaTuer . Évalué à 4.
Non, pas vraiment. Yocto ou buildroot, c'est pour faire sa propre distribution.
Le résultat d'un preseed restera une distri Debian.
Perso je vois plus ça comme une alternative au script de OP, un moyen de se faire un "master" pour pouvoir ensuite installer des desktops et/ou serveurs à la chaine.
La démarche est pas idiote… pourvu qu'ils t'entendent ;-)
Ca devrait être desactivé depuis longtemps, cette histoire de CD-ROM.
De mon point de vue, c'est l'installeur qui devrait poser la question à la fin de l'installation…
Ou tout faire dans un paquet … ça marche aussi, mais en effet, c'est moins propre.
Limite, le truc qui me vendrait du rêve serait un service web ou tu choisirais à la carte les modifs de configuration que tu veux apporter (bashrc, vimrc, …) puis, sur validation, te génèrerait à la volée un paquet genre
custom-config-XXXXXXXX.deb
.Ensuite,
wget <L'url du .deb> && dpkg -i <le .deb>
et on en parle plus :)# Centralisation du DNS
Posté par Glandos . Évalué à 3.
Merci pour l'article.
J'aurais une remarque, concernant le DNS. Pourquoi ne pas avoir tout simplement installé un résolveur local comme
unbound
?La configuration utilisée ici permet certes de chiffrer les requêtes DNS, mais seulement jusqu'à CloudFlare ou OpenDNS. Le dernier fournit d'ailleurs un service de DNS menteur.
Avec
unbound
, toutes les requêtes sont visibles en clair par un attaquant actif. Soit le F.A.I., soit une boîte noire sur le trajet. Mais le risque me paraît moins probable que de confier toutes nos requêtes à une seule entité.[^] # Re: Centralisation du DNS
Posté par stephane.gambus . Évalué à 1.
Suite à ta remarque, je viens de lire ceci:
https://www.bortzmeyer.org/opendns-non-merci.html
Il y a 2 besoins:
1 Confidentialité
- encrypter les requêtes DNS (protection contre attaquant/FAI/boite noire)
- distribuer les requêtes DNS sur différents services DNS (les services DNS n'ont qu'une vue partielle + résilience)
2 Fiabilité des réponses
- avoir des réponses fiables et non trafiquées au requêtes DNS
Ma configuration ne répond que au premier.
Ta proposition unbound ne répond que au second.
Si je comprends bien, pour permettre de répondre aux 2 besoins, il faudrait identifier d'autres providers DNS fiables et supportant dns over tls.
Il suffirait alors de compléter la ligne de configuration:
server_names = ['cloudflare','autre n°1','autre n°2*','autre n°…','autre n°n']
# NixOS
Posté par Guillaum (site web personnel) . Évalué à 3.
C'est typiquement le genre de chose que fait très bien NixOS: https://nixos.org/
Toute la configuration de ton système est décrite dans un (ou plusieurs) fichier de conf qu'il est facile de versionner. Il n'y a pas "d'étapes" lors de l'installation, ou de configuration à modifier, ton système est une unique configuration qui va être déployée de façon atomique.
À titre d'exemple, au travail nous utilisons des dell XPS 13. J'avais un modèle de 2017 qui m'a été changé vers un modèle de 2018. Lancement du live cd, copie de ma configuration, j'ai juste adapté une ligne ou deux pour prendre en compte la densité de l'écran qui n'est pas la même.
nixos-install
et quelques minutes plus tard, j'avais exactement ma configuration déployée, avec ma configuration d'emacs, mon.gitrc
, mes comptes utilisateurs, mes images docker pre-chargés, mon installation de wine pour jouer à Diablo. Mes paramètres de configuration GTK sont aussi décrits (avec https://github.com/rycee/home-manager)NixOS vient avec quelques autres avantages, comme nix prè-installé, la possibilité de booter sur une ancienne configuration (i.e. toutes les configuration précédentes sont sauvegardés). Dans le rare cas ou une mise à jour se passe mal (jamais arrivé en 2 ans), tu peux reprendre la dernière version et continuer à travailler.
Home-manager peut être utilisé sans NixOS pour seulement décrire son environnement personnel, c'est à dire toutes les applications installée pour un utilisateur particulier, ses services personnel (
systemd --user
) et la configuration de toutes ses applications.Quelques contraintes pour NixOS, c'est une distribution linux différente, ce n'est donc pas la solution si vous devez absolument conserver un environnement debian ou autre. NixOS est aussi très strict sur la reproductibilité et n'expose dans l’environnement par défaut pour ainsi dire rien. Ainsi un binaire pré-compilé chargé sur NixOS a de grande chance de ne pas fonctionner. Je vois cela comme un avantage (i.e. cela force la reproducibilité), et en pratique c'est très rare que nixpkgs (i.e. la base de paquet de nix, donc NixOS) n'ai pas le paquet demandé.
[^] # Re: NixOS
Posté par stephane.gambus . Évalué à 0.
Changer de modèle tous les ans avec cette gamme d'ordinateur portable, c'est du luxe ! Je n'en connais pas beaucoup qui ont ce privilège…
En effet, Nixos a l'air intéressant. Il faudra que je creuse ce sujet…
Il me semble que Suse Linux a aussi un endroit unique de configuration. (Yast)
Actuellement, je teste Clear Linux qui a aussi une gestion de package atypique. (il n'y a pas grand chose dans /etc et c'est déroutant)
En marge des tests de distributions et de gestionnaires de package, je suis centré sur Debian stable pour mon ordinateur personnel car j'aime bien être en Rolling Release tous les 2 ans =)
C'est surtout possible grâce aux backports pour certains besoins, et à flatpak pour d'autres.
Concernant APT, j'ai identifié une nouvelle fonctionnalité disponible dans Debian 10 Buster pour renforcer sa sécurité. (désactivée par défaut)
Extrait du draft de la release note:
Toutes les méthodes de APT(par exemple http et https) sauf cdrom, gpgv et rsh utilisent le bac à sable) seccomp-BPF fourni par le noyau Linux pour limiter la liste des appels système autorisés, et intercepter
les autres grâce à un signal SIGSYS.
https://www.debian.org/releases/buster/amd64/release-notes.fr.pdf
J'ai activé cette fonctionnalité dans mon projet sur Gitlab…
[^] # Re: NixOS
Posté par Guillaum (site web personnel) . Évalué à 2.
Oui, enfin j’espère que ton employeur te fourni un nouveau PC quand le précédant n'est plus en état de fonctionner. En gros, me concernant, c'était un nouveau dev de chez nous qui voulait un 2017 (car il a des ports USB type B), alors j'ai échangé le mien contre un 2018 avec plaisir.
Après on parle d'un PC à 1500 euros. C'est entre 2 jours et une demi journée de consulting. Ce n'est pas le genre de décisions que je prend, mais si j'avais a les prendre, je dirais que si mon consultant à 1500 euros la journée a besoin d'un nouveau PC à 1500 euros pour gagner 2h d'autonomie, 20% de performance et doubler sa RAM, ce qui au final va lui faire gagner plusieurs minutes par jour, je paye tout de suite.
Sous nixos, c'est
/usr/bin
qui est vide ;)./etc
contient des liens symboliques vers la configuration courante.Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.