2. Introduction
• Loïc Tosser, SysAdmin/DevOps chez Findspire
(http://findspire.com)
• Ancien étudiant Epitech
• Utilisateur de FreeBSD depuis 2008
2
3. FreeBSD
• The Power to Serve
• Système UNIX libre
• Base 386BSD
• Dernière version : FreeBSD 10
3
4. FreeBSD - Système
• FS par défaut : UFS et ZFS (yeaaaaah)
• Installation très simple en mode console
• Compilation kernel très simple
• Création d’iso avec kernel personnalisé encore
plus simple
4
5. #fetch source
svnup stable
#go to the default path of kernel conf
cd /usr/src/sys/amd64/conf
#create a folder for the kernel configuration, outside of the /usr/src
mkdir /home/kernel
#copy the generic conf
cp GENERIC /home/kernel/WOWIKERN
#symlink to your new conf
ln -s /home/kernel/WOWIKERN
#compile kernel
make buildworld
make buildkernel KERNCONF=WOWIKERN
make installkernel KERNCONF=WOWIKERN KODIR=/boot/kernel.monkernel
#define the new kernel as default on next boot
nextboot -k kernel.monkernel
reboot
#if everything is ok, install it and reboot
make installkernel KERNCONF=WOWIKERN
make installworld
reboot
FreeBSD - Kernel
5
6. FreeBSD - Logiciel
• Séparation des libs entre le système et les
logiciels
• Beaucoup de logiciels dans les ports
• Gestionnaire de package qui marche : pkg
• Ports : compilation des logiciels avec les options
de compilation que vous souhaitez
6
7. FreeBSD - Poudriere
• Gestionnaire de repo
• écrit par un Français (Bapt)
• permet en quelques lignes de commandes et
une liste de ports de créer facilement un repo
7
10. FreeBSD - Hyperviseur
• Bhyve
• Jeune projet encore assez limité
• mais déjà compatible libvirt
10
11. FreeBSD - Doc
• Doc officielle
• Man très complets (RTFM)
• mais peu d'exemples
11
12. SysAdmin
• Principes du SysAdmin
• Mettre à disposition des ressources
• Scripter au maximum
• Prévoir l’imprévisible
• Avoir des plans pour tout
12
16. À l’origine…
• Il y avait Debian, mais de gros problèmes :
• LXC buggé
• services qui se lancent tout seul
• repos externes nécessaires
16
17. Le temps du doute
• Passage à testing (oui, en prod), pour éviter pas
mal de problèmes
• Pas satisfaisant à terme
• Problèmes de fichiers de conf/log/… qui
changent trop
17
19. F vs D - Système
• pf > iptables
• Mises à jours cloisonnées
• Peu de logiciels installés de base (No Python !)
19
ExtIf ="em0"
set skip on lo0
scrub in all
block drop in on $ExtIf all
pass in on $ExtIf proto { tcp udp } to
($ExtIf) port { 80, 22}
pass out on $ExtIf all keep state
20. F vs D - Logiciels
• Logiciels plus à jour sur FreeBSD dans 95% des
cas
• Les fichiers de configuration sont respectés sur
FreeBSD
• Plus simple de créer votre propre repo avec
FreeBSD
20
21. F vs D - Logiciels
• pkg : moins d’anomalies
• tasksel ou équivalents absent sur FreeBSD
• Services qui démarre tout seul
21
22. Résultats
• Migration de nos serveurs frontaux en FreeBSD
• Réduction de la taille des recettes puppet
• Augmentation des performances de NGiNX
22