Archives pour la catégorie ‘Linux’

Docker : inspecter les commandes healthcheck

Pour voir en temps réel les commandes healthcheck effectuées sur chacun des containers :

$ docker system events --filter event=exec_start
2017-01-19T14:53:32.979634882+01:00 container exec_start: /bin/sh -c /etc/cont-consul/check || exit 1 fa7c8221a53e2a76e61f290c4008f67ea2548b923cc42a11e9234ee0db4cab54 (com.docker.compose.config-hash=b4b13e5e0066bd757aa944cc01869736eb1d150ac04516e19028d070ef5f502c, com.docker.compose.container-number=1, com.docker.compose.oneoff=False, com.docker.compose.project=dev, com.docker.compose.service=zabbix-agent, com.docker.compose.version=1.9.0, image=registry.foobot.io/foobot/zabbix-agent, name=dev_zabbix-agent_1)
2017-01-19T14:53:33.985556968+01:00 container exec_start: /bin/sh -c /etc/cont-consul/check || exit 1 a009ecbbb3cdce6da2bdf6ae073b9d323bcc2921eafc82206f7e4719e37a617a (com.docker.compose.config-hash=2e83302dfa763cf4185883bed56a64cd8e9207d3a78f06fd250bc158aafedde6, com.docker.compose.container-number=1, com.docker.compose.oneoff=False, com.docker.compose.project=dev, com.docker.compose.service=rabbitmq, com.docker.compose.version=1.9.0, image=registry.foobot.io/foobot/rabbitmq, name=dev_rabbitmq_1)
2017-01-19T14:53:35.252389013+01:00 container exec_start: /bin/sh -c /etc/cont-consul/check || exit 1 a7398fd76d95544ac6cd8d02fbacb9608d5fd3443c1afb4fa0b4606dc032476c (com.docker.compose.config-hash=3c3cae569ff98e6a7e91b8e6734bfed22e9c5df90c8bd593539ef4876e2bda25, com.docker.compose.container-number=1, com.docker.compose.oneoff=False, com.docker.compose.project=dev, com.docker.compose.service=mariadb, com.docker.compose.version=1.9.0, image=registry.foobot.io/foobot/mariadb, name=dev_mariadb_1)
2017-01-19T14:53:39.875116453+01:00 container exec_start: /bin/sh -c /etc/cont-consul/check || exit 1 1f41e9a3b5b63601042dbf5dcd758342e217f0f5d5685d76e9f61b2a2c155a5a (com.docker.compose.config-hash=733b83db2c39e867d08158e3101decdc5e3d70fa0653fea7f44139e29b47d2fa, com.docker.compose.container-number=1, com.docker.compose.oneoff=False, com.docker.compose.project=dev, com.docker.compose.service=dynamodb, com.docker.compose.version=1.9.0, image=registry.foobot.io/foobot/dynamodb, name=dev_dynamodb_1)

Fabric : redémarrer un host distant

Voici la méthode que j’utilise pour redémarrer convenablement un hôte avec Fabric en lieu et place de la méthode reboot fournie par l’API :

from fabric.state import *

def mytask:
    sudo("shutdown -r +1")
    time.sleep(120)
    connections[env.host_string].get_transport().close()
    run("uptime")

Cette méthode est fonctionnelle sur une instance EC2 sous systemd. Le délai d’attente peut être adaptée si besoin, mais la déconnexion à l’hôte est forcée pour que Fabric réétablisse le tunnel SSH dans tous les cas.

Linux : fixer la keymap d’un clavier mac alu FR

Le genre de truc qui m’agace depuis de nombreuses années avec mon clavier mac alu sous Linux, c’est l’inversion des touches #/@ et </>. Donc voici « enfin » le fix :

# echo 0 > /sys/module/hid_apple/parameters/iso_layout

Et pour rendre la configuration permanente:

# vim /etc/modprobe.d/hid_apple.conf
options hid_apple iso_layout=0

Docker : collection d’images Alpine Linux pour intégration avec Consul

Depuis quelques mois, j’utilise mes propres images Docker basées sous Alpine Linux. En dehors d’un gain substantiel de volume (une instance Tomcat passe de 420 Mo avec une base Ubuntu à 170 Mo sous Alpine Linux application incluse), ces images sont destinées à une utilisation avec Consul afin de configurer et reconfigurer à chaud les services – initialisés par s6-overlay – grâce à consul-template.

Amazon EC2 : scripts de gestion des disques éphémères

Voici les scripts et unités systemd que j’utilise pour gérer les disques éphémères de mes instances Amazon EC2.

Docker : activer les restrictions RAM & swap

# vim /etc/default/grub 
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
# update-grub
# vim /etc/default/docker
DOCKER_OPTS="--exec-opt native.cgroupdriver=cgroupfs"
# shutdown -r now

Debian : fix startup Docker 1.7 & kernel 4.1

sept. 20 19:34:19 muse systemd[1]: Started Docker Application Container Engine.
sept. 20 19:34:19 muse docker[18643]: time="2015-09-20T19:34:19.773439875+02:00" level=error msg="[graphdriver] prior storage driver \"aufs\" failed: driver not supported"
sept. 20 19:34:19 muse docker[18643]: time="2015-09-20T19:34:19.773487551+02:00" level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"
# rm -rf /var/lib/docker/aufs
# systemctl start docker

Debian : fix crash Netbeans 8

# vim /etc/java-8-openjdk/accessibility.properties
#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

Linux : afficher la consommation swap par processus

# for file in /proc/*/status ; do awk '/^(VmSwap|Pid|Name)/{printf $2 " " $3}END{ print ""}' $file; done | sort

Linux : tester les performances I/O

# hdparm -t -T /dev/sda
# dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
# bonnie++ -d /mnt -r 8000 -u toto
Haut de page