User

Clément Démoulins

From LRDE

Extraire des sous dossiers d'un dépôt git

Exemple, on veut extraire les papiers de Vaucanson du dépôt commun lrde-publis.

# Clone du dépôt
git clone git@git:lrde-publis.git
git clone --no-hardlinks lrde-publis vcsn-publis
cd vcsn-publis

# Filtre tout sauf ce qui match la pattern : (\.fsmnlp|\.ciaa|\.poosc|\.vaucanson|\.gitignore|\.gitmodules)$
git filter-branch --prune-empty --index-filter "git rm -r --cached --ignore-unmatch $(git log -p | sed -rne 's/^diff --git a\/([^/]+)\/?.* b\/.*$/\1/ p' | sort -u | egrep -v '(\.fsmnlp|\.ciaa|\.poosc|\.vaucanson|\.gitignore|\.gitmodules)$' | xargs echo)" HEAD

# Nettoyage du dépôt
git remote rm origin
git update-ref -d refs/original/refs/heads/master
git reflog expire --expire=now --all
git repack -ad

Commandes bien pratique de post installation

cron-apt

apt-get update;
apt-get install -y cron-apt;
wget http://sao-paulo.lrde.epita.fr/cluster/files/cron-apt-config               -O /etc/cron-apt/config;
wget http://sao-paulo.lrde.epita.fr/cluster/files/cron-apt-2-security-upgrade   -O /etc/cron-apt/action.d/2-security-upgrade;
wget http://sao-paulo.lrde.epita.fr/cluster/files/cron-apt-security.conf        -O /etc/cron-apt/apt-security-upgrade.conf;

LDAP

apt-get update
apt-get install -y autofs autofs-ldap nslcd libnss-ldapd nfs-common glusterfs-client
apt-get purge nscd
wget http://sao-paulo.lrde.epita.fr/cluster/files/autofs.default          -O /etc/default/autofs;
wget http://sao-paulo.lrde.epita.fr/cluster/files/autofs.if-up            -O /etc/network/if-up.d/autofs;
chmod +x /etc/network/if-up.d/autofs;
wget http://sao-paulo.lrde.epita.fr/cluster/files/ldap.conf               -O /etc/ldap/ldap.conf;
wget http://sao-paulo.lrde.epita.fr/cluster/files/cacert.pem              -O /etc/ssl/certs/lrde-cacert.pem;
wget http://sao-paulo.lrde.epita.fr/cluster/files/nsswitch.conf           -O /etc/nsswitch.conf;
wget http://sao-paulo.lrde.epita.fr/cluster/files/nslcd.conf              -O /etc/nslcd.conf;

Docker

Commandes

docker build -t TAG_NAME .
Construit une image docker à partir d'un Dockerfile
docker run -t -i IMAGE CMD
Démarre un container intéractif à partir d'une image, si aucune commande n'est spécifiée, la commande définie par l'image est exécutée.
docker run -d IMAGE
Démarrage classique d'un container en mode daemon.
docker ps -a
Liste les containers
docker images -a
Liste les images
docker rm $(docker ps -a -q)
Delete all stopped containers
docker rmi $(docker images -q)
Delete ALL images
docker rmi $(docker images -q --filter "dangling=true")
Delete untagged images

Liens

Outils tiers

  • systemd-nspawn, similaire à docker mais basé sur systemd
  • LXC, technologie équivalente à docker mais prévu pour "booter" le container
  • Rocket
  • Swarm, orchestrateur pour docker
  • Compose, orchestrateur pour docker (≠ de Swarm ?)
  • CoreOS, OS serveur basé sur des containers


Récupération de disques

Paquet Debian

# Création d'une image 'cow' pour jessie
cowbuilder --create --basepath /var/cache/pbuilder/base-jessie.cow --distribution jessie
# Mise à jour
cowbuilder --update --basepath /var/cache/pbuilder/base-jessie.cow --distribution jessie

# Création du paquet avec gbp (si tout va bien)
gbp buildpackage

Ré-encodage vidéo

ffmpeg -i "concat:$(echo *.MTS | sed 's/ /|/g')" -c copy raw.mp4
ffmpeg -i raw.mp4 -codec:v h264_nvenc -gpu 2 -crf 25 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart output_1080p_crf25.mp4