PostHeaderIcon Générez automatiquement vos fichiers docker compose avec docker-autocompose

Article publié le 17 Février 2020.

 

J'ai découvert aujourd'hui un petit outil fortement sympathique qui pourrait servir à beaucoup de monde: docker-autocompose

Docker-autocompose permet de générer à partir d'un container existant le fichier docker-compose associé ce qui peut faire gagner du temps et s'avérer très pratique.

1) Prérequis

Docker-autocompose est codé en python, de ce fait il est nécessaire d'avoir les modules suivants d'installés:

  • pyaml
  • docker-py
  • setup-tools

Une petite installation via le gestionnaire de paquet de votre distribution ou via pip suffira.

2) Installation

L'adresse du repository git du projet:  https://github.com/Red5d/docker-autocompose

- Cloner le repo:

git clone https://github.com/Red5d/docker-autocompose

- Exécutez le script d'installation situé dans le répertoire docker-autocompose:

chmod 700 *.py

Lire la suite

PostHeaderIcon Tutoriel | Découverte de Prometheus et Grafana

Article publié le 28 Décembre 2018

Je profite du calme des fêtes de fin d'année pour vous faire partager ma veille techno sur l'outil de supervision Prometheus. Cet outil de supervision est l'un des plus puissants que j'ai pu tester! Dans ce tutoriel, vous trouverez toutes les manipulations que j'ai faites pour tester ce produit. Durant mes tests, je me suis servis de deux machines. L'une hébergeant prometheus et Grafana et la seconde qui hébergera les services à monitorer.

Je vais expliquer dans un premier temps comment installer Prometheus. Ensuite, je vais superviser une machine Linux hébergeant un service Apache et une base de données Mysql.… Lire la suite

PostHeaderIcon Tutoriel | Configurer la réplication master/slave d’une instance PostgreSQL

Article publié le 7 Septembre 2018

Un petit tutoriel sur la manière la plus facile de mettre en place une réplication Master/Slave d'une instance PostgreSQL. Une réplication Master/Slave est extrêmement utile. Elle vous permettra d'avoir un failover et donc une continuité de service en cas de perte de votre master mais également de répartir la charge en redirigeant toute les requête read-only (select) sur votre slave.

Dans ce tutoriel, deux instances PostgreSQL seront installées sur deux machines distinctes.

 La version utilisée lors de la rédaction de ce tutoriel est la version 10.  Si vous utilisez une version différente de postgresql, ce tutoriel sera toujours valable, seul le chemin du répertoire d'installation de postgresql et certaines commandes changeront légèrement.… Lire la suite

PostHeaderIcon Tutoriel | Installez facilement un cluster Kubernetes sous Debian ou Centos

Article publié le 20 Août 2018

Aujourd'hui un petit tutoriel sur l'installation d'un Cluster Kubernetes. La procédure ci-dessous vous indiquera la méthode la plus simple pour installer Kubernetes.

Pour exemple et également pour tester ce tutoriel, mon cluster sera composé d'un master et de deux workers.

 

1)  Installation sous Debian/Ubuntu

- Installez la version de Docker supporté par Kubernetes (sur chaque node):

apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk '{print $3}')

 

- Activez le démarrage automatique de Docker (sur chaque nodes) :

systemctl enable docker

- Paramétrez Docker afin qu'il utilise exclusivement systemd, pour cela éditez le fichier /etc/docker/daemon.json… Lire la suite

PostHeaderIcon Tutoriel | Installer et utiliser DockerSwarm

Article publié le 15 Août 2018

Docker Swarm est un outil conçu par Docker permettant de gérer un cluster de Container très facilement. En plus d'être simple à implémenter, Docker Swarm est extrêmement performant. Il peut supporter mille noeuds et cinquante mille container sans aucune dégradation de performance.

Ci-dessous un tutoriel complet sur comment installer et utiliser DockerSwarm.

 

1) Prérequis

Pour ce tutoriel, je vais utiliser 3 machines (la distribution importe peu)

Docker 1.13 ou supérieur doit-être installé sur chaque machine. Pour rappel, un tutoriel sur l'installation de Docker est disponible ici.

 

2) Schéma

Ci-dessous un petit schéma qui résume très simplement le concept de Swarm et de ce que l'on va mettre en place avec ce tuto:

3) Création du Cluster Swarm

Un cluster swarm est composé de Managers chargés de l'orchestration du cluster et des Workers qui exécutent vos containers.… Lire la suite

PostHeaderIcon Tutoriel | Installation, configuration et utilisation d’un Docker Registry

Article publié le 13 Août 2018

Ce tutoriel complet expliquera comment installer, configurer, et utiliser un Docker Registry.

Pour suivre ce tutoriel, Docker doit-être installé sur votre machine. Un tutoriel vous expliquant comment installer Docker est disponible ici.

Nous allons travailler dans le répertoire /srv/myrepo.com et pour servir d'exemple l'adresse de notre repository sera myrepo.com. Le fichier host sera renseigné de tel manière à ce que l'IP de ma machine soit associé au nom myrepo.com.

- Dans notre répertoire de travail, nous allons créer deux répertoires:

mkdir -p /srv/myrepo.com/certs

mkdir -p /srv/myrepo.com/auth

- Nous allons ensuite généré dans le répertoire /srv/myrepo.com/certs… Lire la suite

PostHeaderIcon vim: Impossible de copier coller dans Debian Stretch

Article publié le 17 Avril 2018

 

Certains l'auront remarqué, depuis debian 9 (stretch), il est par défaut impossible de faire un copier coller depuis un terminal en utilisant vim.

Afin de résoudre ce petit désagrément, il suffit d'éditer le fichier /usr/share/vim/vim80/defaults.vim et de modifier la ligne suivante:

if has ('mouse')

set mouse=a

endif

 

par:

if has ('mouse')

set mouse=r

endif

 

 

 

image_print
Lire la suite

PostHeaderIcon Monitorer en temps réél vos machine Linux avec Netdata

Article publié le 9 Avril 2018

Netdata est un outil de monitoring très puissant. Il vous permet d'avoir un dashboard complet et en temps réel de l'état de votre machine. L'interface graphique est très belle et très pratique.

1) Installation

Cette méthode d'installation est adaptée pour toutes les distributions récentes:

- Lancez la commande suivante:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Le script va vérifier les prérequis et les installer pour vous:

Le script d'installation compilera et installera tous les modules nécessaires au fonctionnement de Netdata.

Une fois l'installation terminée, vous devriez avoir ceci:

2) Utilisation

Connectez vous à l'interface via l'adresse <ip ou dns de votre machine>:19999

Quelques screenshot pour vous montrer à quoi ressemble le dashboard de monitoring:

Enfin, Netdata est capable de faire le monitoring de la plupart des services installés sur votre machine (MySQL, Apache2, etc...):… Lire la suite

PostHeaderIcon Analysez les logs de vos serveurs web en temps réel avec GoAccess

Article publiée le 6 Avril 2018

J'ai découvert par hasard un petit outil fort sympathique nommé GoAccess. GoAccess vous permet d'analyser en temps réel les logs de votre serveur Web (Apache, Nginx ou autre) et d'avoir des statistiques détaillées (via votre terminal ou export au format HTML, CSV).

1) Installation

Sous Debian/Ubuntu:

- Ajoutez les dépôts officiels GoAccess:

echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list

- Ajoutez la clé GPG:

wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key add -

- Installez le package

sudo apt-get update && sudo apt-get install goaccess

 

Sous RedHat/Centos:

- Installez directement GOAcess depuis les dépots de la distribution

yum install goaccess

 

2) Utilisation

Pour générer un rapport:

goaccess -f <la log access de votre serveur web>   #A adapter selon votre serveur Web

 

Exemple de rapport:

Vous pouvez également générer un rapport sous forme de page HTML

Éditez le fichier /etc/goaccess est décommentez les lignes "date-format" et "time-format" en fonction du serveur web dont vous voulez analyser les logs.… Lire la suite

PostHeaderIcon Tutoriel | Installation d’un cluster ElasticSearch

Article publié le 28 Mars 2018

Un petit tutoriel qui pourra être utile à ceux qui, comme moi, ont souffert de la prise en main d'ElasticSearch ;-).

Ce tutoriel expliquera la marche à suivre pour monter un cluster ElasticSearch.

Dans l'exemple ci-dessous, je vais monter un cluster ElasticSearch composé de trois nœuds.

 

1) Installation

Installez ElasticSearch sur chaque machine (au moment où ce tutoriel a été rédigé, la version courante d'ElasticSearch est la 6.2)

Installation sous Debian:

Téléchargez et installez la clé GPG:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Ajoutez le répo elasticsearch (à adapter en fonction de la version courante du moment):

echo "deb https://artifacts.elastic.co/packages/6.x/apt

Lire la suite

PostHeaderIcon Faites un audit de votre système avec Lynis

Article publié le 19 Février 2018

Je suis tombé par hasard sur un petit outil fort sympathique nommé Lynis. Lynis vous permet de faire un audit complet de votre système Linux/Unix. J'ai été très impressionné par sa précision,  Lynis va auditer jusqu'au moindre recoin de votre machine et vous faire un gros résumé de toutes les préconisations pour améliorer la sécurité et les performances de celle-ci. De plus Lynis détecte automatiquement les services installés et en fait l'audit  (Apache2, Squid, etc).

 

1) Installation

Sous Debian/Ubuntu:

- Installez la clé:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F

- Ajoutez le repo:

echo "deb https://packages.cisofy.com/community/lynis/deb/

Lire la suite

PostHeaderIcon Migrer vos fichier docker compose vers kubernetes avec Kompose

Article publié le 24 Janvier 2018

Mini article rapide pour vous parler de Kompose, un outil fort bien pratique pour convertir vos fichiers docker-compose.yml en yaml Kubernetes. Ceci est fortement appréciable notamment pour ceux qui débutent avec l'écosystème Kubernetes.

Installation

Lancez la commande suivante (n'oubliez pas de checker le numéro de version dans le lien qui peut évoluer dans le temps depuis l'écriture de cet article):

curl -L https://github.com/kubernetes/kompose/releases/download/v1.7.0/kompose-linux-amd64 -o kompose && mv kompose /usr/local/bin && chmod 755 /usr/local/bin/kompose

Utilisation

Dans l'exemple ci-dessous, je vais convertir le docker-compose de jenkins.

Contenu du docker-compose.yml:

version: "2"
volumes:
data-jenkins:
driver: "local"
services:
jenkins:
image: "jenkins:2.60.3"
ports:
- "8080:8080"
restart: "always"
volumes:
- "/srv/jenkins:/var/jenkins"

 

Convertissez votre fichier docker-compose avec la commande suivante:

kompose convert -f docker-compose.yml

Lire la suite

PostHeaderIcon Script | Purger les logs d’exécution Rundeck

Article publié le 16 Janvier 2018

Avec le temps, les performances de Rundeck peuvent fortement diminuer suite à l'accumulation de logs d’exécution stockée en base et générant en parallèle d'innombrables petits fichiers.

Il vous faudra donc mettre rapidement en place une solution afin de purger les logs d’exécution de Rundeck.

J'ai trouvé et modifié un petit script faisant très bien le boulot (utilisable si votre Rundeck utilise MySQL):

#!/bin/bash

#Nombre de jours de rétention des logs

KEEP=90

# A modifier si votre instance MySQL est hébergé sur une autre machine

HOST=localhost
PORT=3306
USERNAME=<user de votre base de donnée MySQL>
PASSWORD="<le mot de passe du user de votre base MySQL"
DB=<nom de la base de donnée MySQL Rundeck>

cd /var/lib/rundeck/logs/rundeck

JOBS=`find .

Lire la suite

PostHeaderIcon Tutoriel | Déployez facilement un cluster Kubernetes avec Rancher

Article publiée le 13 Janvier 2018

Article mis à jour le 21 Août 2018

Kubernetes est un orchestrateur de container docker extrêmement puissant mais également très fastidieux à déployer. Il existe pourtant un moyen très simple pour déployer Kubernetes en utilisant Rancher.

Rancher est un outil permettant de gérer vos environnements Docker de manière intuitive via une interface graphique  (site de Rancher: https://rancher.com/)

Pour ce tuto je vais utiliser trois machines sous Debian 9 avec docker installé. Pour ceux qui ne connaissent pas Docker, je leurs suggère de lire le tutoriel ci-dessous:

Tuto Docker | Démarrer avec Docker

Pour info un tutoriel rédigé le 20 Août 2018 explique comment installer Kubernetes from scratch (à la mano!)… Lire la suite

PostHeaderIcon AWX l’alternative gratuite à Ansible Tower

Article publiée le 03 octobre 2017

Tous les utilisateurs connaissent Ansible Tower, l'interface graphique pour gérer Ansible créé par RedHat qui est une solution très onéreuse! Hors une variante opensource existe également sponsorisé depuis peu par RedHat :AWX

Ci-dessous une petite doc d'installation dédiée adaptée aux distributions RedHat/CentOS:

  • Installez Ansible: yum install ansible
  • Créer le fichier install_aws.yml qui contiendra le playbook d'installation AWX:

- name: Deploy AWX
hosts: all
become: true
become_user: root

tasks:

- name: sort out the yum repos
yum:
name: "{{ item }}"
state: "latest"
with_items:
- "epel-release"
- "yum-utils"

- name: add the docker ce yum repo
yum_repository:
name: "docker-ce"
description: "Docker CE YUM repo"
gpgcheck: "yes"
enabled: "yes"
baseurl: "https://download.docker.com/linux/centos/7/$basearch/stable"

Lire la suite

PostHeaderIcon Tutoriel | Gérez vos container docker avec Portainer

Article publié le 2 Octobre 2017

Un petit tutoriel afin de vous présenter un outil peu connu mais extrêmement puissant vous permettant de gérer vos environnements Docker avec une simplicité sans égale: Portainer.

Si vous cherchez une interface graphique pour gérer votre environnement docker, portainer est fait pour vous!

Afin de suivre ce tuto, Docker doit-être installé sur votre machine. Un tuto sur l'installation et la configuration de  docker est disponible :

https://journaldunadminlinux.fr/tuto-docker-demarrer-avec-docker/

1) Installation de Portainer

Portainer est livré nativement dans un container docker. Pour le déployer :

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer

Une fois le container déployé connectez vous à l'interface web via l'adresse suivante: http://ipdevotremachine:9000

 

2) Configuration

Lors de la première connexion, il vous sera demandé de créer le mot de passe du user admin:

Il vous sera demandé ensuite de "brancher" votre instance portainer à votre machine Docker.… Lire la suite

PostHeaderIcon Présentation de Zentyal 5

Article publié le 1er Octobre 2017

Deux après la rédaction de mon article sur la solution IPCOP (https://journaldunadminlinux.fr/tutoriel-securiser-son-reseau-avec-ipcop/), je vais partager aujourd'hui ma nouvelle découverte: Zentyal.

Zentyal est une solution de sécurité (mais pas seulement) Opensource vous offrant pleins de fonctionnalités:

  • Mise en réseau (Networking)
    • Pare-feu (informatique) et routage
      • Filtrage
      • NAT (Network address translation) et redirections de port
      • VLAN 802.1Q (Réseau local virtuel)
      • Support de passerelles IP multiples (PPPoE and DHCP)
      • Règles de passerelle multiple, équilibrage de charge et basculement automatique
      • Lissage du trafic (à l'aide d'une couche d'application)
      • Suivi graphique de la vitesse du trafic
      • Système de détection d'intrusions dans le système
      • Client DNS dynamique
    • Infrastructure réseau
      • Serveur DHCP (Dynamic Host Configuration Protocol)
      • Serveur NTP (Network Time Protocol)
      • Serveur DNS
        • Mises à jour dynamiques via DHCP (Dynamic Host Configuration Protocol)
      • Serveur RADIUS (Remote Authentication Dial-In User Service)
    • Prise en charge VPN
      • Autoconfiguration de routes dynamiques
    • Proxy HTTP
      • Cache Internet
      • Authentification de(s) utilisateur(s)
      • Filtrage de contenu (avec des listes par catégorie)
      • Antivirus transparent
    • Système de détection d'intrusions
    • Serveur mail
      • Domaines virtuels
      • Quotas
      • Soutien pour Sieve
      • Récupération de compte externe
      • POP3 et IMAP avec SSL/TLS
      • Filtre antispam et antivirus
        • Listes grises, noires et blanches
      • Filtre proxy transparent POP3
      • Compte "catch-all" (fourre-tout)
  • Messagerie internet (webmail)
  • Serveur internet (web server)
    • Hôtes virtuels
  • Autorité de certification
  • Travail de groupe (workgroup)
    • Gestion centralisée des utilisateurs et des groupes
      • Soutien maître/esclave
      • Synchronisation avec un contrôleur de domaine Windows Active Directory
    • Windows PDC
      • Système de mot de passe
      • Assistance pour les clients Windows 7
    • Partage des ressources en réseau
      • Serveur de fichiers
        • Antivirus
        • Corbeille
      • Serveur d'impression
    • Groupware: partage de calendriers, agendas, repertoire, boîte mail, wiki, etc.
Lire la suite

PostHeaderIcon Tutoriel | Répartition de charge en fonction des ressources disponibles sur vos machines avec HAPROXY

Article publiée le 23 Septembre 2017

Il y a quelque temps, je suis tombé sur la problématique suivante: comment faire en sorte que mon LoadBalancer HAProxy répartisse les connexions sur les machines ayant le moins de charge CPU?

Un collègue m'a alors fait suivre une doc qui m'a apporté la solution.

Ci-dessous un petit tuto vous expliquant comment procéder en prenant comme exemple la répartition d'un flux SSH sur 2 machines. Rien ne vous empêche d'adapter ce tuto  pour rediriger d'autres type de connexion (HTTP, etc...)

1) Configuration de votre serveur HAPROXY

  • Installez HAPROXY:

Sous Debian/Ubuntu:

apt-get install haproxy

Sous RedHat/Centos

yum install haproxy

Éditez le fichier /etc/haproxy/haproxy.cfg… Lire la suite

PostHeaderIcon Monitoring | Superviser vos jobs rundeck

Article publiée le 6 Septembre 2017

I) Configuration de Rundeck

Suites aux précédents tutos sur rundeck: https://journaldunadminlinux.fr/tuto-installez-et-configurez-rundeck-ordonnanceur-opensource/ et https://journaldunadminlinux.fr/tuto-sauvegardez-vos-instances-rundeck/, je continue dans ma lancée en vous fournissant un petit script (très simpliste) vous permettant de monitorer vos jobs via un outil de supervision (zabbix, nagios, etc...)

Dans un premier temps, il est nécessaire de désactiver le délai d'expiration du token permettant de taper sur l'API de rundeck:

  • Éditez le fichier /etc/rundeck/rundeck-config.properties et ajoutez la ligne suivante:

rundeck.api.tokens.duration.max=0

  • Redémarrez Rundeck

service rundeckd restart

Authentifiez vous  avec un compte admin et cliquez sur le bouton "profil" en haut à droite de la page:

 

Créez ensuite un nouveau token en laissant à 0 le champs "Expiration in".… Lire la suite

PostHeaderIcon tuto | sauvegardez vos instances rundeck

Article publiée le 15 Août 2017

Suite à la rédaction du précédent article concernant l'installation et la configuration d'une instance rundeck (https://journaldunadminlinux.fr/tuto-installez-et-configurer-rundeck-ordonnanceur-opensource/), vous trouverez ci-dessous un outil permettant de sauvegarder entièrement votre instance rundeck.

 

1) Installation des prérequis

Les scripts de backups/restore que j'ai écrit utilisent le client en ligne de commande rundeck: "rd"

Installation sous Debian/Ubuntu

echo "deb https://dl.bintray.com/rundeck/rundeck-deb /" | sudo tee -a /etc/apt/sources.list
curl "https://bintray.com/user/downloadSubjectPublicKey?username=bintray" > /tmp/bintray.gpg.key
apt-key add - < /tmp/bintray.gpg.key
apt-get -y install apt-transport-https
apt-get -y update
apt-get -y install rundeck-cli

Installation sous RedHat/Centos

wget https://bintray.com/rundeck/rundeck-rpm/rpm -O bintray.repo
sudo mv bintray.repo /etc/yum.repos.d/
yum install rundeck-cli

Une fois l'installation terminée, éditez le fichier .profile… Lire la suite