Skip to main content

jmar.fr

Wireguard: Déploiement et routage

# Installation L’installation est très simple. Il y a beaucoup de sources disponibles sur internet. Perso j’ai suivi la doc de https://wiki.archlinux.org/title/WireGuard qui est très complète. L’installation et la connexion se révèle très simple et ne pose pas de problème particulier. ## Configuration serveur [Interface] ListenPort = 51871 PrivateKey = (hidden) Address = 192.168.10.1/24, fdc9:281f:04d7:9ee9::1/64 [Peer] PublicKey = oENZzrPBIl1fBguDPNAzTEzBZtXh/3i1DoEXTBOg7jI= AllowedIPs = 192.168.10.2/32,fdc9:281f:04d7:9ee9::2/128 Endpoint = [2a01:cb05:83c2:5300:6665:4c49:6699:c6ea]:51871 ## Configuration côté client [Interface] Address = 192.

PostgreSQL: Trouver des doublons dans une table

Dans PostgreSQL, il existe les window functions qui permettent de faire des calculs sur un ensemble d’éléments liés aux éléments courants. Dans le cas présent, nous allons demander à PostgreSQL de regrouper les éléments en fonction de la valeur de deux champs. Jeu de test : CREATE TABLE double (id serial PRIMARY KEY, name text, value int ); INSERT INTO double (name, value) VALUES ('nom1', 1); INSERT INTO double (name, value) VALUES ('nom1', 2); INSERT INTO double (name, value) VALUES ('nom1', 3); INSERT INTO double (name, value) VALUES ('nom2', 1); INSERT INTO double (name, value) VALUES ('nom2', 2); INSERT INTO double (name, value) VALUES ('nom2', 3); INSERT INTO double (name, value) VALUES ('nom3', 1); INSERT INTO double (name, value) VALUES ('nom1', 1); INSERT INTO double (name, value) VALUES ('nom1', 1); Nous allons maintenant rechercher les doublons sur le couple nom, valeur.

Mise en place de firewalld

# Introduction FirewallD est une surcouche à Iptables installée par défaut sur RedHat 7 et CentOS 7. Contrairement aux anciens modèles de parefeux (system-config-firewall/lokkit), chaque changement nécessitait un redémarrage complet du parefeu. FirewallD récupère les informations sur les règle parefeu active via D-BUS et réalise les changement dynamiquement via celui-ci en utilisant les méthodes d’authentification de PolicyKit. FirewallD permet aussi entre autre de créer différentes zones et d’y appliquer des règles différentes.

Pypi Mirroring

# Installation d’un mirroir Pypi local $ROOTDIR = Répertoire de stockage du projet. Création d’un virtualenv pour héberger le projet virtualenv pypimirror Installation de pypimirror source pypimirror/bin/activate pip install pypimirror Depuis la version 1.0.15, il est demandé d’installer BeautifulSoup en version <=3.0.9999 hors ces versions ne sont plus disponibles sur Pypi … J’ai donc installé la 1.0.14. cd $ROOTDIR/pypimirror wget https://pypi.python.org/packages/source/z/z3c.pypimirror/z3c.pypimirror-1.0.14.tar.gz tar xvzf z3c.pypimirror-1.0.14.tar.gz cd z3c.pypimirror-1.0.14 python setup.py install Création du fichier de configuration.

Installation de PostgreSQL via YUM

Note: Toute cette procédure est applicable pour Centos6 # 1. Configurer le dépôt officiel rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm # 2. Installer les paquets nécessaires yum install postgresql93 postgresql93-server postgresql93-contrib --enablerepo=postgresql93 # 3. Créer le fichier de paramètres Sous Centos, il est possible de créer un fichier dans /etc/sysconfig/pgsql/. Ce fichier permet de fixer les valeurs par defaut de l’instance /etc/sysconfig/pgsql/postgresql-9.3: PGDATA="/srv/postgresql/" PGPORT="5432" PG_INITDB_OPTS="--locale=en_US.UTF8" # 4. Initialisation de l’instance /etc/init.d/postgresql-9.3 initdb Ne pas oublier d’activer PostgreSQL au démarrage de la machine :

Utilisation de Fabric sous Windows

# Prérequis Une version fonctionnelle de python. L’installation de Fabric nécessite pycrypto qui est assez compliqué à compiler. J’ai donc préféré chercher des binaires précompilés sur le net pycrypto-2.3.1.win7x64-py2.7x64.7z. Décompresser l’archive à la racine du virtualenv utilisé pour Fabric. # Installation de Fabric pip install fabric

Python sous Windows

# Installation Pour commencer télécharger l’installeur python2.7 sur le site officiel http://python.org/ftp/python/2.7.4/python-2.7.4.msi ## Mise en place de setuptool et pip Afin de faciliter l’installation des paquets python, il faut installer setuptool et pip. Pour ce faire, la documentation officiel python propose deux scripts qui font tout le travail. ez_setup.py et get-pip.py Une fois les deux scripts téléchargés, il suffit de les lancer .\ez_setup.py .\get-pip.py Ajouter les entrées suivantes dans le PATH Windows : C:\Python27;C:\Python27\Scripts\

Authentification PostgreSQL pour Proftpd

# Préparation de la base PostgreSQL ## Création de l’utilisateur CREATE USER ftp LOGIN ENCRYPTED PASSWORD 'sup3rs3cret'; CREATE DATABASE ftpuser OWNER ftp; CREATE TABLE users ( pkid serial PRIMARY KEY, userid text NOT NULL UNIQUE, passwd text, uid int, gid int, homedir text, shell text ); CREATE TABLE groups ( groupname VARCHAR(30) NOT NULL, gid INTEGER NOT NULL, members VARCHAR(255) ); Ajout de l’extention pgcrypto pour les mots de passe Nécessiste d’avoir le paquet contrib d’installé.

MySQL Procédures Stockées

J’ai eu besoin, dans le cadre d’un projet, de supprimer des lignes sur certaines tables contenant un ID spécifique. Cette manipulation devant se faire régulièrement, une procédure stockée a été créée. DELIMITER $$ DROP PROCEDURE IF EXISTS DeleteOrphan$$ CREATE PROCEDURE DeleteOrphan(IN hwid INT) BEGIN DECLARE done INT DEFAULT 0; DECLARE var_table VARCHAR(64); DECLARE curseur1 CURSOR FOR SELECT DISTINCT table_name FROM information_schema.tables WHERE table_name LIKE 'aaa_%' AND table_schema='MySchema'; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; -- Ouverture du curseur OPEN curseur1; REPEAT -- On récupère chaque élément dans var_table FETCH curseur1 INTO var_table; -- Si done = 0 (donc tant qu'on a pas SQLSTAT 02000 IF done = 0 THEN SET @query = CONCAT('DELETE FROM ', var_table,' WHERE hardware_id = ', hwid); PREPARE stmt FROM @query; EXECUTE stmt; END IF; UNTIL done -- Done = 1 si on a SQLSTAT 02000 (No data - zero rows fetched, selected, or processed ) END REPEAT; CLOSE curseur1; END$$ DELIMITER ;

PostgreSQL - Suppression de tables en fonction du Owner

Suite à une fausse manipulation, j’ai importé l’ensemble de mes bases de données dans la base template1. Conséquence, toutes les nouvelles bases de données créées le seraient avec le schéma de toutes les autres bases. C’est moche ! Le nombre de table étant importantes, j’ai donc créé une procédure stockée afin de supprimer rapidement les tables en fonction d’un owner passé en paramètre. Connexion à la base Postgres à nettoyer