Execution container selenium (docker)

Prérequis : avoir installé docker de cette façon : http://tech.ingesys.fr/2017/04/27/installation-docker-ubuntu-14-04/

Il suffit ensuite de lancer le container que l'on souhaite. Il en existe plusieurs, dont un avec chrome d'installé , et un autre avec firefox. Dans notre cas, nous prenons un dock avec selenium 3.4.0 et chrome.

Pour avoir la liste complète : https://github.com/SeleniumHQ/docker-selenium

- La commande pour l'exécuter :

$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.4.0-bismuth

- Pour voir si le port 4444 est bien ouvert :

$ netstat -ltnp |grep 4444

- On peut également récupérer l'id du container qui tourne ainsi :

$ docker ps

- On peut afficher les logs du container ainsi ( en récupérant l'id du container avec la commande précédente )

$ docker logs

installation docker sur ubuntu 14.04

- Supprimer toutes les anciennes versions :

$ sudo apt-get remove docker docker-engine

- lancer un update :

$ sudo apt-get update

- Installer les paquets pour permettre à apt d'utiliser des repos via https :

$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

- Ajouter la clé GPG de docker :

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

- Ajouter le repository docker :

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

- Refaire un update :

$ sudo apt-get update

- Installer docker-ce :

$ sudo apt-get install docker-ce

Propriétaire et groupe DocumentRoot sur plesk

Si comme moi vous avez "joué" avec le propriétaire et le groupe du DocumentRoot sur plesk (avec une belle erreur 403, permission denied à la clé) et que vous ne vous rappelez jamais comment il faut le remettre, voici les 2 commandes à exécuter pour tout remettre comme il faut :

chown -R utilisateur_plesk:psacln /votre/répertoire/httpdocs
chown utilisateur_plesk:psaserv /votre/répertoire/httpdocs

upstream sent too big header while reading response header from upstream

Environnement :
OS serveur : centos 6.9 avec Plesk 17.0.17
Site : prestashop
Clients : Ensemble des OS et navigateur

Pour les 2 dernières installations de sites sous Prestashop que j'ai faites, j'ai eu des timeout sur certaines actions. Cela vient du fait que la taille de buffer pour les scripts fastcgi était trop faible.

Il faut donc ajuster les 2 variables suivantes ainsi :

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;

Sur Plesk, vous pouvez le faire uniquement pour le domaine concerné par le problème, en allant dans Domaines --> cliquez sur le domaine souhaité --> paramètres d'apache et de nginx, et allez tout en bas de la page pour copier coller ces 2 variables dans "Directives supplémentaires Nginx"

NS_ERROR_NET_INADEQUATE_SECURITY

Environnement :
OS client : MacOS
Navigateur client : firefox 48
OS serveur : Linux ubuntu 16.04 avec plesk Onyx 17.0.17
Serveur web : nginx

En configurant un serveur sous Linux ubuntu 16.04 avec Plesk Onyx 17, nous nous sommes rendu compte que le site web hébergé dessus (un prestashop) ne s'affichait pas dans certains cas en https (ssl), et notamment avec un client sous MacOS avec le navigateur firefox.

A priori, dans cette version, plesk autorise des ciphers qui sont blacklistés par certains navigateurs. Pour remédier à ce problème, j'ai été obligé de forcer une liste de ciphers dans Nginx, en tapant la commande suivante en root :

plesk sbin sslmng --services=nginx --custom --ciphers="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA" --protocols="TLSv1 TLSv1.1 TLSv1.2"

Pour vérifier que la modification a été faite, il suffit d'afficher le fichier de configuration de nginx :

cat /etc/nginx/conf.d/ssl.conf
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

En espérant que ça puisse servir à d'autres personnes!

Gestion des périphériques avec udev

Udev permet de gérer les fichiers stockés sous /dev/. Ces fichiers sont créés uniquement si le périphérique correspondant est branché, et sont supprimés automatiquement lorsque le périphérique est déconnecté.
Les instructions udev se trouvent sous /etc/udev/rules.d/ (pour les distributions redhat) et déterminent les noms des fichiers, les autorisations, les propriétaires et groupes ainsi que les commandes à exécuter lorsq'un nouveau périphérique apparaît.

Pour vous donner un exemple, pour un lecteur dvd Pionner, j'ai ce contenu dans un fichier :

# PIONEER_DVD-RW_DVR-108 (pci-0000:00:14.1-scsi-0:0:0:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:14.1-scsi-0:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:14.1-scsi-0:0:0:0", SYMLINK+="cdrw", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:14.1-scsi-0:0:0:0", SYMLINK+="dvd", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:14.1-scsi-0:0:0:0", SYMLINK+="dvdrw", ENV{GENERATED}="1"

Création de systèmes de fichier sous linux : mkfs

Pour créer un système de fichier sous linux en ligne de commande, on utilise la commande mkfs.

Par exemple, pour créer un système de fichier en ext3, ayant pour label "sys_data", on lance cette commande :

mkfs -t ext3 -L sys_data /dev/sda5

Vous l'aurez compris, l'option -t sert à spécifier le type du système de fichier, et l'option -L, quant à elle, permet de définir le label du volume.

A noter que le commande mkfs est un programme frontal pour divers utilitaires de création de systèmes de fichiers.
Ainsi, quand on lance mkfs -t ext3, c'est en fait la commande mkfs.ext3 qui est appelée. Idem pour ext2 ou tout autre système de fichier.
Dernière chose à savoir, si l'option -t n'est pas utilisée, le système prend alors par défaut la commande mkfs.ext2.

cron.allow vs cron.deny

Si /etc/cron.allow et /etc/cron.deny n'existent ni l'un ni l'autre, seul l'utilisateur root est autorisé à installer de nouveaux fichiers crontab.

S'il n'existe que /etc/cron.deny, tous les utilisateurs peuvent installer des fichiers crontab, sauf ceux que répertorie /etc/cron.deny.

S'il n'existe que /etc/cron.allow, l'utilisateur root et les utilisateurs indiqués peuvent installer des fichiers crontab.

Si les deux fichiers existent, cron.deny est ignoré.

Notez que l'interdiction d'un utilisateur par le biais des fichiers ci-dessus ne permet pas de désactiver leur crontab installé.

Mon parcours au cnam

Il y a deux ans, lorsque j'étais en prestation pour un grand groupe de transport en commun sur la région parisienne, une responsable m'a bien fait comprendre que pour évoluer au sein du département ingénierie, mon petit diplôme bac+3 (en l'occurrence un DEESINF pour ceux que ça intéressent), ne suffirait pas. J'ai donc repris des études en cours du soir et à distance, en vue d'obtenir un diplôme d'ingénieur en systèmesd'information (ISI). Depuis, je ne suis plus en prestation dans cette entreprise mais cette envie de diplôme a quand même persisté.

Voici donc le cursus que j'ai suivi, et que je suis encore (c'est super long le CNAM!)

En 2010-2011 :

- NFE209 - Ingénierie des systèmes d'information - Audit et gouvernance
- NFE210 - Ingénierie des systèmes d'information - méthodologie avancée
- SMB137 - systèmes embarqués
- TET102 - Management social pour ingénieur et communication (en cours)

En 2009-2010 :

- NFE113 - conception et administration de bases de données (VES)
- NFP107 - systèmes de gestion de bases de données (VES)
- NSY104 - Architectures des systèmes informatiques (VES)
- RSX101 - Réseaux et télécommunication (VES)
- NSY103 - Linux, principes et programmation
- RCP101 - Recherche opérationnelle et aide à la décision
- EME102 - Management et organisation des entreprises
- NFE107 - Urbanisation et architecture des systèmes d'information