Blog

Bienvenue...

...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)

Il y a 6 mois 2 semaines

Créer le repertoire s'il n'existe pas :

mkdir /etc/systemd/system/docker.service.d/

Créer le fichier :

echo '[Service]
Environment="HTTP_PROXY=http://<proxy-host>:<proxy-port>"
' > /etc/systemd/system/docker.service.d/http-proxy.conf
echo '[Service]
Environment="HTTPS_PROXY=https://<proxy-host>:<proxy-port>"
' > /etc/systemd/system/docker.service.d/https-proxy.conf

Reload systemctl & le daemon docker :

systemctl daemon-reload
systemctl restart docker
Il y a 7 mois 1 semaine

Editer le fichier /etc/logrotate.conf et dé-commenter la ligne #compress, ensuite ajouter les lignes suivantes :

# use bzip2 rather than gzip
compresscmd /usr/bin/bzip2
uncompresscmd /usr/bin/bunzip2
compressoptions -9
compressext .bz2

Verifiez bien le path vers bzip2... (which bzip2 et yum install bzip2 pour l'installer ;) )

source : Daniel Sokolowski's Blog

Il y a 7 mois 1 semaine

WORK IN PROGRESS

Ma version du script run.sh fourni dans la doc de sitespeed.io

L'idée ici était surtout de ne pas avoir a downloader l'image docker sytématiquement (1.7Go !), donc je l'ai "pull"ée une première fois, puis j'ai fait un docker save comme dans le script à la fin des runs...

#!/bin/bash
 
echo $$ > /var/run/ssio.pid
 
# Specify the exact version of sitespeed.io. When you upgrade to the next version, pull it down and the chage the tag
BASE_DIR=/var/www/sitespeed.io
SSIO_VER=6.5.4
DOCKER_CONTAINER=sitespeedio/sitespeed.io:$SSIO_VER
 
# Setup the network and default ones we wanna use
$BASE_DIR/start-networks.sh
THREEG="--network 3g"
CABLE="--network cable"
 
# Simplify some configurations
CONFIG="--config /sitespeed.io/config.json"
DOCKER_SETUP="--shm-size=1g --rm -v $BASE_DIR:/sitespeed.io -v /etc/localtime:/etc/localtime:ro --name sitespeed"
 
EXISTS=$(docker images |grep "sitespeed.io" | grep "$SSIO_VER" | wc -l)
if [ $EXISTS -eq 0 ] && [ -f $BASE_DIR/images/sitespeed.io-$SSIO_VER.tar ] ; then
   echo "loading docker image from $BASE_DIR/images/sitespeed.io-$SSIO_VER.tar..."
   docker load -i $BASE_DIR/images/sitespeed.io-$SSIO_VER.tar
elif [ $EXISTS -eq 0 ] ; then
  echo "no current image onboard, pulling it from docker..."
  # Get the container so we have it the next time we wanna use it
  docker pull $DOCKER_CONTAINER
fi
 
# Start running the tests
# We run more tests on our test server but this gives you an idea of how you can configure it
docker run $CABLE $DOCKER_SETUP $DOCKER_CONTAINER -n 3 /sitespeed.io/urls.txt $CONFIG
docker run $THREEG $DOCKER_SETUP $DOCKER_CONTAINER -n 3 --graphite.namespace sitespeed_io.emulatedMobile /sitespeed.io/urls.txt -c 3g --mobile true $CONFIG
docker run $CABLE $DOCKER_SETUP $DOCKER_CONTAINER -n 1 /sitespeed.io/others-urls.txt
 
if ! [ -f $BASE_DIR/images/sitespeed.io-$SSIO_VER.tar ] ; then
  echo "saving pulled image to $BASE_DIR/images/sitespeed.io-$SSIO_VER.tar"
  docker save $DOCKER_CONTAINER > $BASE_DIR/images/sitespeed.io-$SSIO_VER.tar
fi
 
echo "cleaning docker stuff..."
# We remove all docker stuff to get a clean next run
docker system prune --all --volumes -f
 
rm /var/run/ssio.pid
Il y a 7 mois 2 semaines

Des fois on en a besoin, lorsqu'on a pas encore fait les ouvertures de flux qui vont bien. J'ai trouvé un p'tit tuto qui marche bien ici

Je claque le code ici histoire de pas le perdre :P

Create a template service file at `/etc/systemd/system/[email protected]`. The template parameter will correspond to the name of target host:

[Unit]
Description=Setup a secure tunnel to %I
After=network.target
 
[Service]
Environment="LOCAL_ADDR=localhost"
EnvironmentFile=/etc/default/[email protected]%i
ExecStart=/usr/bin/ssh -NT -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -L ${LOCAL_ADDR}:${LOCAL_PORT}:localhost:${REMOTE_PORT} ${TARGET}
 
# Restart every >2 seconds to avoid StartLimitInterval failure
RestartSec=5
Restart=always
 
[Install]
WantedBy=multi-user.target

We need a configuration file (inside `/etc/default`) for each target host we will be creating tunnels for. For example, let's assume we want to tunnel to a host named `jupiter` (probably aliased in `/etc/hosts`). Create the file at `/etc/default/[email protected]`:

TARGET=jupiter
LOCAL_ADDR=0.0.0.0
LOCAL_PORT=20022
REMOTE_PORT=22

Note that for the above to work we need to have allready setup a password-less SSH login to target (e.g. by giving access to a non-protected private key).

Now we can start the service instance:

systemctl start secure-tunnel@jupiter.service
systemctl status secure-tunnel@jupiter.service

Or enable it, so it get's started at boot time:

systemctl enable secure-tunnel@jupiter.service

Pour forwarder un service d'une machine vers une autre il faut remplacer -L [...] par

[...] -R ${REMOTE_PORT}:localhost:${LOCAL_PORT} [...]

et ajouter

GatewayPorts yes

dans le /etc/ssh/sshd_config sur la machine distante pour autoriser SSH à pousser le port sur une autre interface que localhost

Du coup quand on fait un netstat ça marche :)

[root@myhost:~]# netstat -an |grep 8080
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN
tcp        0      0 :::8080                     :::*                        LISTEN
Il y a 7 mois 2 semaines

Une petite fonction bien utile à ajouter dans son .bashrc

whoswaps ()
{
  for file in /proc/*/status;
    do
        echo $file $(awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file);
    done | sort -k 3 -n -r | less
}

Pages