C'est pourtant clair, 3 sources de documentations nous disent que pour désactiver AppArmor il suffit de stopper le service. Très bien, essayons:
root@ubuntu:~# systemctl stop apparmor
root@ubuntu:~# systemctl disable apparmor
apparmor.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install disable apparmor
insserv: warning: current start runlevel(s) (empty) of script `apparmor' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (S) of script `apparmor' overrides LSB defaults (empty).
Utilisons la commande apparmor_status pour voir le status de AppArmor:
root@ubuntu:~# apparmor_status
apparmor module is loaded.
13 profiles are loaded.
13 profiles are in enforce mode.
/sbin/dhclient
/usr/bin/lxc-start
/usr/lib/NetworkManager/nm-dhcp-client.action
/usr/lib/NetworkManager/nm-dhcp-helper
/usr/lib/connman/scripts/dhclient-script
/usr/lib/lxd/lxd-bridge-proxy
/usr/lib/snapd/snap-confine
/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/usr/sbin/tcpdump
lxc-container-default
lxc-container-default-cgns
lxc-container-default-with-mounting
lxc-container-default-with-nesting
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
/sbin/dhclient (848)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
Diantre! C'est pas bon signe. Faisons un essai en installant mysql-server et en déplaçant son /var/lib/mysql ailleurs:
root@ubuntu:~# apt-get install mysql-server
root@ubuntu:~# systemctl stop mysql
root@ubuntu:~# mv /var/lib/mysql /opt/
root@ubuntu:~# sed -i "s@/var/lib/mysql@/opt/mysql@g" /etc/mysql/mysql.conf.d/mysqld.cnf
root@ubuntu:~# systemctl start mysql
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
AppArmor n'est pas désactivé du tout, on ne peut pas faire confiance à la documentation Ubuntu!!! Il faut en fait rebooter le serveur, vraiment génial quand celui-ci est déjà en production ou quand on essaie d'automatiser une installation avec Ansible.
Après quelques recherches je suis tombé sur cet article qui nous indique qu'on peut utiliser la commande service apparmor teardown :
root@ubuntu:~# service apparmor teardown
* Unloading AppArmor profiles [ OK ]
root@ubuntu:~# apparmor_status
apparmor module is loaded.
0 profiles are loaded.
0 profiles are in enforce mode.
0 profiles are in complain mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
root@ubuntu:~# systemctl start mysql
root@ubuntu:~# ps aux | grep mysql
mysql 925 0.0 13.2 1107628 134140 ? Ssl 10:43 0:00 /usr/sbin/mysqld
root 1224 0.0 0.0 14264 920 pts/0 S+ 10:46 0:00 grep --color=auto mysql
AppArmor nous laisse enfin tranquille, et sans rebooter le serveur :)
De manière amusant, teardown se traduit par démolir, raser. Est-ce une indication de l'état d'esprit de celui qui a codé le service de démarrage/arrêt d'AppArmor?
Je suis de moins en moins fan de Ubuntu sur les serveurs, car entre les très nombreuses mise à jour de Kernel (reboot fréquents) et les technologies maison de Canonical qui imite RedHat sans en avoir les moyens ou le talent, on se dit que rien ne vaut Debian ou CentOS sur un serveur.
Mouarf. Il y a quelques temps je me plaignais de ne pas avoir assez d'inspiration pour écrire, alors que maintenant je dirai presque qu'il y a trop de sujet sur lesquels j'ai envie de troller réagir.
Je trouve cela dommage car même s'il y a à mon sens pas mal de bugs, Unity est un excellent environnement qui arrive à proposer des choses intéressantes sans pour autant casser les habitudes des gens. Je trouve d'autant plus dommage de choisir GNOME comme futur environnement et je ne comprends pas ce choix, car ce qui plaît aux débutants et à un large public en général, c'est Linux Mint et son bureau Cinamon. Peut-être était-ce un choix par défaut étant donné qu'il existe déjà des variantes officielles pour tous les bureaux alternatifs (kubuntu, xubuntu...).
Au final je ne sais pas trop quoi penser, j'y vois un choix pragmatique, Ubuntu sacrifie son identité au profil de l'efficacité et cela ne présage rien de bon. J'espère que la distribution saura rebondir et nous convaincre que Canonical est toujours en bonne santé.
EDIT : Mir abandonné aussi... bon ça je m'y attendais, ce projet avait de moins en moins de sens et de plus en plus de retard.
J'adore FreeNAS parce que c'est du FreeBSD bien exploité (zfs + jails) et mis en forme proprement au travers d'un webui. J'en parle un peu plus dans cet article et vous encourage toujours à mettre votre NAS propriétaire synlogy et compagnie à la décharge pour vous acheter un vrai serveur digne de ce nom.
FreeNAS 9.10 est disponible depuis peu et se base sur FreeBSD 10.3 ce qui nous amène bhyve, l'hyperviseur concurrent à qemu-kvm très prometteur qui nous permet de faire tourner des VM Linux (entre autres) en plus des jails. Même si cette feature est encore considérée comme expérimentale par FreeNAS, elle est tout même documentée.
FreeNAS fournit l'outil iohyve qui s'inspire de iocage et s'appuie fortement sur zfs. iohyve est génial parce qu'il est non seulement simple à utiliser mais en plus très intuitif car on retient rapidement les commandes. Notez que dans FreeNAS 10 bhyve sera présent dans le webui, pour le moment il faut encore y aller à la main ;)
/!\ Avertissement /!\
Il ne faut pas modifier les fichiers système de FreeNAS, car non seulement ils seront écrasés lors de la prochaine mise à jour, mais en plus ils risquent d'interférer avec le webui. Par exemple au lieu de modifier le /etc/rc.conf on va plutôt aller dans la section tunables qui est prévue à cet effet. On installe pas non plus de paquets avec pkg. Toutes les manipulations du paragraphe suivant font appel à des outils déjà présents qui travaillent dans le zpool contenant les données.
Installation d'une VM ubuntu-server-16.04
La première chose à faire est de configurer iohyve, il va créer ses dataset ainsi que le bridge si celui-ci n'existe pas déjà. Notez que la manipulation n'écrase pas vos dataset ou votre zpool, ne vous embêtez pas à en faire un autre. Dans l'exemple suivant, mon zpool est data et mon interface réseau bge1 :
[root@freenas] ~# iohyve setup pool=data kmod=1 net=bge1
Setting up iohyve pool...
On FreeNAS installation.
Checking for symbolic link to /iohyve from /mnt/iohyve...
Symbolic link to /iohyve from /mnt/iohyve successfully created.
Loading kernel modules...
bridge0 is already enabled on this machine...
Setting up correct sysctl value...
net.link.tap.up_on_open: 0 -> 1
Le dataset Firmware sert pour démarrer des guest en UEFI mais nous ne l'utiliserons pas. Si vous voulez en savoir plus, vous pouvez consulter cette page de wiki détaillant l'installation de Windows avec iohyve.
Pour que iohyve et les modules kernel soient chargés au démarrage, on les ajoute dans la section General > Réglages dans le webui de FreeNAS :
Les paramètres ont l'air évidents, mais trois d'entre eux méritent un petit complément :
loader=grub-bhyve : Par défaut iohyve ne va pas charger de bios ou uefi dans bhyve donc il doit utiliser un bootloader externe, ici c'est grub2-bhyve.
ram=1G : pour ubuntu, ne pas mettre moins, j'ai essayé avec 256M et j'ai eu ce bug. Une fois l'installation terminée par contre, on peut baisser.
os=d8lvm : je n'ai pas trouvé beaucoup de détails mais cela indique à iohyve le type de système invité. d8lvm correspond à Debian 8 avec stockage lvm (ce que ubuntu propose par défaut). Sans lvm on peut utiliser os=debian.
Maintenant, on ouvre une seconde console (CTRL+ALT+F2) ou une seconde connexion SSH, puis on se connecte à la console de la VM (il n'y a rien pour le moment, c'est normal, elle ne fonctionne pas) :
[root@freenas] ~# iohyve console vm-ubuntu
On revient sur le premier terminal / SSH, puis on lance l'installation de la VM :
On retourne dans votre second terminal et là on voit enfin des choses apparaître :)
Cela rappelle beaucoup les installations de VM sur Xen.
On fait une installation normale de Ubuntu avec le réseau qui s'auto configure via DHCP. Lorsque c'est terminé, le reboot risque de ne pas fonctionner, il faut donc le faire à la main :
[root@freenas] ~# iohyve stop vm-ubuntu
Stopping vm-ubuntu...
[root@freenas] ~# iohyve list
Guest VMM? Running rcboot? Description
vm-ubuntu YES NO NO Tue Jul 12 22:38:55 CEST 2016
[root@freenas] ~# iohyve start vm-ubuntu
Starting vm-ubuntu... (Takes 15 seconds for FreeBSD guests)
Et la console confirme que ça fonctionne :)
Et voilà, ça fonctionne :)
La VM a même accès au réseau, on peut donc se logguer en SSH !
Conclusion
Encore une fois FreeNAS envoie du lourd et exploite les capacités de FreeBSD. iohyve permet d'utiliser bhyve + zfs tout en étant bien pensé et intuitif, et c'est une qualité rare (regard inquisiteur pointé vers lxd chez Canonical). Il est désormais possible d'avoir des VMs Linux sous FreeNAS ce qui conforte une fois de plus le fait que vous devriez jeter votre NAS propriétaire pour acheter un vrai serveur x86.
Dans cet article j'expliquais avoir adopté MATE car il est toujours vivant et j'adore l'ergonomie façon GNOME 2. Je m'étais calé sur Ubuntu MATE mais j'ai changé, car Ubuntu reste Ubuntu, c'est à dire que même si on a affaire à une LTS, c'est à dire une version phare bénéficiant de plus d'attention, on trouve toujours de nombreux petits bugs et défauts qui se révèlent pénibles une fois accumulés. Ubuntu c'est bien sur les serveurs, en desktop beaucoup moins, l'obsession de Canonical à ne pas vouloir repousser les dates de sortie pour peaufiner leur produit y est sûrement pour quelque chose.
J'ai donc commencé par installer Debian Jessie, l'unique, la référence en terme de stabilité. Malheureusement j'ai rencontré quelques désagréments, pas vraiment dus à Debian, mais à l'environnement matériel et logiciel trop récents : pas de défilement à deux doigts sur le touchpad (résolu en installant le kernel des backports), version de qt5 trop vieille pour installer le client seafile (contourné en utilisant la version 5.1.0 de ce dernier), difficultés à faire fonctionner Virtualbox (apparemment du à l'usage des backports). J'ai fait un essai en Debian Testing, mais je n'avais plus de son, plus de Virtualbox du tout, bref pas de chance. J'aurais pu prendre le temps de résoudre ces problèmes mais à vrai dire je mange déjà du Debian desktop et serveur au boulot, j'ai donc préféré essayer une autre distribution.
J'ai installé Fedora 24 MATE et j'ai été agréablement surpris. Je suis familier avec Fedora pour l'avoir utilisé pas mal de temps et cette distribution combine à mon sens trois points forts : des logiciels à jour, stables, et vanilla. Ses deux seuls défaut sont peut-être d'une part de trop s'occuper de GNOME3 au détriment des autres bureaux (ce qui commençait à se ressentir sur le spin KDE lorsque j'ai changé de distribution) et d'autre part le faible nombre de logiciels packagés ce qui oblige à utiliser les dépôts additionnels rpmfusion. Ces dépôts sont plutôt stables, mais il faut s'attendre à des surprises lors des mises à jour de kernel (par exemple avec les modules Virtualbox). Cependant Fedora a l'excuse de ne pas s'adresser aux débutants, ces petits défauts dus à l’aspect semi-rolling release sont donc peu gênants au final.
Capture d'écran tirée du LiveDVD.
Côté desktop MATE on a droit à la version 1.14.1, la dernière à l'heure où j'écris ce billet, très épurée, bien implémentée et dépourvue de bugs pour le moment. Fedora a remplacé yum par dnf, que je n'aimais pas beaucoup lors de mes tests en machine virtuelle (lent) mais qui se révèle fonctionnel.
Fedora 24 MATE était une curiosité, j'en ai finalement fait ma distribution du moment. Et bien sûr, MATE c'est toujours bien, mangez-en.
GNOME2 fut mon premier et seul véritable amour en matière de desktop Linux. C'est l'aboutissement de plus de 10 ans de développement, un ensemble cohérent et stable, simple et intuitif. Ce n'est pas une copie de l'interface de Windows mais ce n'en est pas non plus éloigné ce qui fait qu'on trouve rapidement nos repères. De plus il y a des thèmes de bureau jolis avec beaucoup d'éléments personnalisables.
Mais il a fallu que la catastrophe GNOME3 arrive, un bureau qui prend soin de déconstruire tout ce qui a été accompli avec GNOME2, comme si tout était calculé pour tromper et perdre les utilisateurs en se basant sur leurs habitudes. Par exemple il a fallu harceler les développeurs de GNOME au fil de plusieurs versions pour avoir enfin un bouton d’extinction. C'est con mais quand on se retrouve à chercher pendant des heures comment éteindre l'ordinateur, on se pose des questions sur l'avenir de Linux sur le desktop.
Après un passage sur KDE qui a fini par me lasser à cause de sa lourdeur visuelle et de ses mini bugs qui une fois mis bout à bout se révèlent pénibles, je me suis stabilisé pendant un moment sur Xfce. Pourquoi ? Parce qu'au fond ce n'est pas si éloigné de GNOME2 même si c'est moins bien car le rythme de développement est lent et l'ensemble manque de cohérence. Pourquoi est-ce que je n'ai jamais essayé MATE ? Parce que je ne pensais pas que le projet persisterait longtemps. Mais en fait si, le projet vit et un portage vers GTK3 est même en cours. Et il est proposé dans beaucoup de distributions, plus que Unity d'ailleurs.
Après 2 ans d'utilisation de Manjaro Xfce, poussé par le besoin de réinstaller mon OS afin d'activer le chiffrement et l'envie de tester autre chose, j'ai installé Ubuntu Mate. Et c'est drôle car ça me rappelle vraiment les anciennes versions de Ubuntu, celles avec GNOME2 et ça me file même un coup de vieux. La distribution est plutôt réussie puisque fournie avec un minimum de logiciels c'est à dire sans excès comme Manjaro par exemple qui embarque Steam sans que l'on sache réellement pourquoi.
Utiliser MATE c'est retrouver l'ergonomie de GNOME2, c'est un retour aux sources que j'apprécie beaucoup. Les desktop qui demandent un Core i7 avec 8GB de RAM et une GTX980Ti pour afficher l'animation d'un menu sont une plaie tout comme ceux qui essaient sans cesse de réinventer la roue en s'inspirant plus ou moins de l'ergonomie des tablettes en pensant que ça va être "cool" sur desktop. Un bureau ne devrait pas demander beaucoup de ressources ni prendre de la place à l'écran parce qu'après tout on s'en sert pour lancer des applications et manipuler des fenêtres.
Si vous aussi vous êtes un vieux con qui trouve que "c'était mieux avant" essayez MATE.