Essayons de désactiver AppArmor sur une Ubuntu 16.04 en nous basant sur la documentation.
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.
Mysql ne démarre pas... examinons le log:
juil. 07 10:39:37 ubuntu kernel: audit: type=1400 audit(1530952777.364:32): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/opt/mysql/ibdata1" pid=2959 comm="mysqld" requested_mask="wr" denied_mask="w
juil. 07 10:39:37 ubuntu systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
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.
Wow, on parle souvent des smartphones impossibles à démonter, en ce qui concerne le serveur HP Proliant Gen8 c'est totalement l'inverse, tout se fait sans tournevis de manière évidente. On ouvre le boîtier, on débranche les connecteurs sur la carte mère, et on la tire vers l'arrière, et voilà.
Une fois la carte mère extraite, il ne reste plus qu'à retirer le radiateur, enlever le Celeron puis insérer le Xeon, et après un petit changement de pâte thermique on remet le tout. Et au boot... ça marche !!
Le Xeon apporte un certain confort qui se ressent rapidement. L'exploration des partages Samba est plus fluide tout comme la navigation dans l'interface FreeNAS. Le démarrage des jails iocage aussi, même si non exempt de latences tant que le cache ARC n'est pas rempli :) Quand le prix des SSD de 1To baissera, je songerai à remplacer les disques mécaniques.
Samedi dernier, j'ai pris mon vélo au départ de Nantes pour rejoindre Redon en suivant une portion de la Vélodyssée. J'adore partir à l'aventure avec mon vélo, rouler 8 heures par jour et avaler des kilomètres à la recherche de villes et de paysages sympathiques.
De Nantes à Nort-sur-Erdre
La première partie du voyage consiste à rejoindre le canal. De Nantes à Nort-sur-Erdre l'itinéraire est très bien aménagé, j'étais même surpris, on ne pose quasiment jamais les roues sur la route réservée aux voitures. Il y a toujours une piste goudronnée réservée aux vélos, c'est agréable et confortable. On progresse vite.
En plus il faisait beau mais pas trop chaud :)
Le canal de Nantes à Brest
Une fois qu'on a rejoint le canal... woaw. C'est beau, c'est paisible, c'est sauvage, peut-être même un peu trop car on ne passe par aucune ville, aucun commerce, aucun point d'eau rien avant Redon (ce qui représente quand même ~70km). Autant dire qu'il faut emporter beaucoup d'eau, à manger, et un kit technique pour réparer le vélo en cas de panne.
C'est beau mais... ce n'est pas vraiment adapté aux vélos de route. Le long du canal ce sont des chemins, très praticables et pas trop accidentés, mais ce n'est pas du bitume lisse. Aucun problème pour un VTT, en revanche pour les vélo de route aux pneus fins et léger ce n'est pas bon du tout.
L'aller jusqu'à Redon s'est bien passé, 109km en ~6h (ce qui inclus la pause déjeuner), j'ai dormi là-bas et repris la route le lendemain. Le retour s'est mal passé puisqu'au bout de 50km mon pneu arrière a crevé, et en remplaçant la chambre à air je me suis rendu compte que c'était bien plus grave:
Le pneu est totalement fichu, presque éventré. Je l'ai échangé avec le pneu avant, qui lui était en bon état, mais j'ai crevé une dizaine de minutes plus tard à l'avant... et je n'avais plus de chambres à air. J'ai donc appelé à l'aide et le retour s'est fait en voiture. Bilan 2 pneus et les chambres à air à changer.
Je suis d'ailleurs preneur pour des conseils sur le type de pneus à choisir et sur une bonne marque de référence.
Je ne regrette pas cette sortie et j'ai pris beaucoup de plaisir à pédaler sur les chemins le long du canal. Si je dois le refaire ce sera avec plaisir et je prendrai des pneus plus résistants. J'espère avoir à nouveau l'occasion de parcourir la Vélodyssée dans un sens ou dans l'autre :)
Je possède depuis plus de 2 ans un HP ProLiant MicroServer Gen8 qui tourne sous FreeNAS et fait office de NAS comme son nom l'indique. Équipé d'un Celeron G1610T, il tourne sous FreeNAS a offert des performances correctes jusqu'à ce que je décide un jour d'activer le chiffrement des disques. Ce processeur ne supporte pas les instructions AES-NI, donc le chiffrement et déchiffrement sont fait de manière logicielle, c'est lourd.
Pour y remédier il est possible de changer le CPU et se tourner vers des Xeon un peu plus costauds. J'ai donc commandé un E3-1260L (4c/8t @2.40Ghz). Niveau TDP on passe de 35W pour le Celeron à 45W ce qui reste correct pour le refroidissement semi-passif, surtout que le CPU ne tourne pas à 100% en permanence. Ce CPU offre 8 cœurs logiques, le turbo, et les instructions AES-NI ce qui devrait booster FreeNAS et les jails FreeBSD que je lui fais supporter.
En attente de réception du CPU !
Depuis la publication de ce billet, vscode est à la mode. Et pourtant il y a de quoi grincer des dents, on pense immédiatement à Visual Studio et à Microsoft, s'agit-il d'une usine à gaz propriétaire qui sert à pondre du code pour IE6? Pas du tout.
vscode n'est pas Visual Studio, c'est un éditeur de texte avancé plutôt léger, sous licence libre (Expat), avec pas mal de plugins pour les différents langages. Et oui il s'agit de Microsoft, mais comme beaucoup j'ai passé l'âge de jouer à l'intégriste, et on peut dire qu'ils font des efforts depuis quelques années. En ce qui me concerne j'ai toujours codé avec vim, mon premier contact avec vscode fut donc un premier contact avec ce genre d'éditeur de texte. Et pour le moment je me prends au jeu, j'utilise vscode, c'est vraiment pas mal.
J'aime la possibilité de visionner mon arborescence, travailler sur un fichier tout en ayant un terminal à disposition (par exemple pour tester des playbook Ansible). Il y a un léger temps d'adaptation pour apprendre les raccourcis (ctrl+s), mais ça reste plus facile que vim :) Je n'ai pas réussi à configurer l'utilisation d'un proxy http (oui, ça existe encore dans certaines entreprises...) ce qui m'a obligé à passer par proxychains.
Je n'aime pas l'autocomplétion, par exemple quand je veux ajouter un <strong> devant un mot, il ajoute automatiquement le </strong> mais pas au bon endroit. Pareil quand on manipule les double quote " dans les yaml, l'ajout et suppression peut devenir un enfer. Mais bon c'est toujours moins pire que vim et son indentation agaçante dans les dernières versions :) et ça se maîtrise.
Je continue à utiliser vscode, on verra si dans 6 mois je suis revenu sur vim ou pas :)
Fil RSS des articles