Archives pour avril, 2015

Shell : la commande du jour

Vérification de la syntaxe des scripts shell par récursion avec shellcheck :

# shellcheck -e SC2029,SC2034 $(find . ! -path './.git/*' -type f -executable -exec sh -c 'file {}|grep -q "shell script" && echo -n "{} "' \;)

Node.js : détecter la version requise depuis le fichier package.json

# jq ".engines.node" package.json|sed -ne 's/[^0-9]*\(\([0-9]\{1,4\}\)\(\.\([0-9]\{1,4\}\)\)\{0,2\}\)[^0-9]*/\1/p')

Git : ajouter un second serveur origin pour les push

Une astuce utile si vous travaillez avec un serveur git privé et que vous souhaitez aussi publier votre code sur un serveur public (et inversement) :

# git remote set-url --add --push origin git@gitlab.my.domain:mygroup/project.git

Shell : vérifier la syntaxe d’un script

Enfin un outil pour vérifier la syntaxe de vos scripts Shell : https://github.com/koalaman/shellcheck

# apt-get install shellcheck

Fleet : déploiement d’un service global avec une template

# vim zabbix@.service
[Unit]
Description=zabbix %i
Requires=docker.service
After=docker.service

[Service]
ExecStartPre=-/usr/bin/docker kill zabbix%i
ExecStartPre=-/usr/bin/docker rm zabbix%i
ExecStartPre=/usr/bin/docker pull bhuisgen/docker-zabbix-coreos
ExecStart=/usr/bin/docker run --name zabbix%i -p 1050%i:10050 -v /var/run/docker.sock:/coreos/var/run/docker.sock -v /proc:/coreos/proc:ro -v /sys:/coreos/sys:ro -v /dev:/coreos/dev:ro -v /dev/log:/dev/log --restart=always bhuisgen/docker-zabbix-coreos zabbix%i.my.domain 80.81.82.83
ExecStop=/usr/bin/docker stop zabbix%i
TimeoutStartSec=900

[X-Fleet]
Global=true
# export FLEETCTL_TUNNEL="cluster.my.domain"
# fleetctl submit zabbix@.service
# fleetctl load zabbix@.service
# fleetctl start zabbix@{0..4}

Unbound : mise en place d’un fake DNS

La mise en place d’une cache DNS peut être nécessaire pour bypasser le résultat de requêtes DNS.

# apt-get install unbound
# vim /etc/resolv.conf
# cat /etc/unbound/unbound.conf
 
server:
    local-zone: "my.domain." static
    local-data: "fake.my.domain. IN A 10.20.2.22"
    local-data-ptr: "10.20.2.22 fake.my.domain"

Node.js : installation d’un environnement multi-versions avec n

$ git clone https://github.com/tj/n.git
$ cd n
$ sudo su 
# make
# n latest
     install : node-v0.12.2
       mkdir : /usr/local/n/versions/node/0.12.2
       fetch : https://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz
   installed : v0.12.2
# n 0.10.38
     install : node-v0.10.38
       mkdir : /usr/local/n/versions/node/0.10.38
       fetch : https://nodejs.org/dist/v0.10.38/node-v0.10.38-linux-x64.tar.gz
   installed : v0.10.38
# n
  ο node/0.10.38
    node/0.12.2
Haut de page