Catégorie : Mémo

18 août 2017 /

Installation

Installation de Docker via Aptitude:

sudo apt-get update
sudo apt-get install lxc-docker​

Installation de Docker via le script d’installation officiel:

wget -O dockerinstall.sh https://get.docker.com
sh ./dockerinstall.sh

Information

Afficher les informations sur la version de Docker installée​:

docker version

Obtenir la liste des commandes du client Docker:

docker help

Obtenir de l’aide sur les options d’une commande:

docker help nom_de_la_commande

Docker Hub

​Connexion à un compte Docker Hub:

docker login

Déconnexion du compte Docker Hub:

docker logout

Récupérer une image

Récupérer une image sans la lancer:

docker pull nom_de_l_image

Récupération d’une image Ubuntu dans sa dernière version:

docker pull ubuntu:latest

​Rechercher une image Nginx avec au moins 5 étoiles:

docker search --stars=5 nginx

Envoyer d’une image

Envoyer une image locale sur le registre Docker Hub:

docker push nom_image

Envoyer une image sur un registre privé:

docker push localhost:88/ubuntu

Dépôt de l’image depuis une autre machine (host=starmate):

docker push starmate:5000/ubuntu

Sauvegarde et restauration

Export d’une image sous forme d’archive:

docker save -o fichier.tar nom_image

Import d’une archive d’image:

docker load -i fichier.tar

Lancement de conteneur

Démarrer un conteneur arrêté:

docker start nom_image

Redémarrer un conteneur en cours:

docker restart nom_image

Redémarrer un conteneur en spécifiant la période de grâce:

docker restart -t 20 nom_image

Démarrer le conteneur de test Hello World:

docker run hello-world​

Démarrer un conteneur en mode interactif:

docker run -i -t ubuntu

Démarrer sans option d’un conteneur:

docker run ubuntu

Démarrer un conteneur avec un nom donné:

docker run --name=nom_donné nom_image

Démarrer un conteneur avec une commande donnée:

docker run nom_de_l_image commande_à_exécuter

Démarrer un conteneur en ajoutant une variable d’environnement:

docker run -e=nom_variable=valeur nom_image

ou

docker run -e nom_variable=valeur nom_image

Démarrer un conteneur en injectant une des variables d’environnement de la machine hôte:

docker run -e=nom_variable image_à_instancier

Démarrer un conteneur en injectant des variables d’environnement stockées dans un fichier:

docker run --env-file=nom_fichier nom_image

Démarrer un conteneur en modifiant son hostname:

docker run -h hostname_voulu

Démarrer un conteneur en montant un dossier dans le conteneur depuis la machine hôte en RO (read only):

docker run -v dossier_sur_hote:dossier_sur_l_image:ro nom_image

Démarrer un conteneur en mode détaché:

docker run -d nom_image

Démarrer un conteneur d’un registre privé en localhost (port 5000 vers 88):

docker run -d --name starmate -p 88:5000 starmate:2.0

Démarrer un conteneur d’un registre privé sur le réseau local (IPhost=starmate dans tous les fichiers hosts):

docker run -d --name starmate -p 5000:5000 starmate:2.0

Démarrer un conteneur du registre privé en réseau local (IPhost= starmate dans tous les fichiers hosts) en montant un dossier local de la machine host:

docker run -d --name starmate -p 5000:5000 -v /dossier_machine_host:/dossier_image_starmate starmate:2.0

Démarrer et supprimer un conteneur dès la sortie du processus:

docker run --rm hello-world

Connexion à un conteneur

Connexion à un conteneur en tant que root avec bash:

docker exec -u root -it ID_conteneur bash

Suppression de conteneur

Supprimer un conteneur arrêté:

docker rm loving_lovelace

Supprimer un conteneur de manière forcée:

docker rm -f nom_conteneur

Supprimer tous les conteneurs:

docker rm `docker ps -a -q`

Suppression d’une image

Supprimer une image:

docker rmi nom_de_l_image

Supprimer plusieurs images:

docker rmi image1 image2 imageN

Arrêt d’un conteneur

Arrêter un conteneur:

docker stop nom_image

Envoyer un signal à un conteneur:

docker kill -s code_du_signal nom_image

Monitoring

​Lister les conteneurs en cours de fonctionnement:

docker ps

​Lister tous les conteneurs:

docker ps -a

Lister les images Docker présentes sur la machine locale:

docker images

Lister les modifications d’un conteneur par rapport à son image de lancement:

docker diff identifiant_du_conteneur

Visualiser les logs d’un conteneur:

docker logs nom_image

Explorer les processus d’un conteneur:

docker top nom_image

Construction d’un conteneur

Persister l’état d’un conteneur en une nouvelle image:

docker commit identifiant_du_conteneur  nom_de_l_image

Tag

Tag d’un conteneur:

docker build -t identifiant_du_conteneur starmate:1.0

Modifier le tag d’un conteneur:

docker tag starmate:1.0 starmate:latest

Forcer le tag d’un conteneur (si tag déjà existant):

docker tag -f starmate:1.0 starmate:latest

 

17 août 2017 /

Installation

sudo yum update -y
sudo yum install httpd -y
sudo yum install perl perl-CGI -y
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Création d’un fichier de test CGI

Pour cela on va créer un répertoire de test:

mkdir /var/www/test_cgi
vi /var/www/test_cgi/hello.cgi

Et on y ajoute cela:

#!/usr/bin/perl
print "Content-type: text/html\n\n"; # Obligatoire
print "<h2>Hello world!</h2>";

Chargement du module mod_cgi.so dans Apache

On peux vérifier les modules présent dans la configuration principale d’Apache:

grep -n "LoadModule" /etc/httpd/conf/httpd.conf

Si il n’est pas présent, on va l’ajouter, pour cela on va localiser le module:

find /etc/httpd/modules/ -iname "*cgi*"

Cela devrait nous retourner:

/etc/httpd/modules/mod_cgi.so

Une fois trouvé, on ajoute cette ligne au fichier de configuration d’apache:

LoadModule cgi_module modules/mod_cgi.so

Particularité sur Ubuntu pour activer le module cgi:

sudo a2enmod cgi
sudo service apache2 restart

Déclaration du répertoire du script test dans httpd.conf

vi /etc/httpd/conf/httpd.conf

Puis on y ajoute ça:

<Directory "var/www/test_cgi">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>

On modifie également cette ligne comme ceci:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

qui devient:

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /test_cgi/ "/var/www/test_cgi/"

Attribution des droits

chmod 755 hello.cgi

On redémarre Apache:

sudo systemctl restart httpd.service

On peux maintenant tester le script à cette adresse:

http://@IP/hello.cgi

3 août 2017 /

Désactiver l’expiration du mot de passe et effacer l’historique des mots de passe pour une appliance VMware.

chage -M -1 root; echo "" > /etc/security/opasswd

18 juillet 2017 /

Voici le script AtoMiC-ToolKit (Automate your Media Center) pour Ubuntu et ses forks du site « htpcbeginner.com »

Certain logiciel comme Sickrage ou SabNzbd ne sont pas vraiment « newbie-friendly ».
Ce script va rendre cette tâche terriblement facile.

Voici la liste des logiciels qu’il peut installer:

FIlm

  • CouchPotato
  • Radarr
  • Watcher

Musique

  • Headphones

Séries TV

  • SickGear
  • SickRage
  • Sonarr

Livres

  • Lazy Librarian

Comics

  • Mylar

Téléchargement via Newsgroup

  • NZBGet
  • NZBHydra
  • SABnzbd+

Téléchargement via Torrent

  • Deluge
  • Jackett
  • qBittorrent
  • rTorrent
  • ruTorrent
  • Transmission avec WebUI

Média Serveur:

  • Emby
  • Madsonic
  • Plex
  • PlexPy
  • Subsonic
  • ubooquity
  • Kodi

Administration:

  • HTPC Manager
  • Muximux
  • Ombi
  • Organizr
  • Webmin
  • phpSysInfo

Utilitaires:

  • pyLoad
  • Resilio-Sync

Prévu dans le futur: DuckieTV, ktorrent, Monit, MusicBrainz, MythTV, ShellInABox, Tvheadend.

Avant de commencer, si ce n’est pas déjà fait, on configure sudo pour ne pas avoir à taper de mot de passe:

sudo visudo

Puis on ajoute à la fin les droit de notre utilisateur (ici starmate):

starmate ALL=NOPASSWD: ALL

On installe GIT:

sudo apt-get install git

On clone le dépôt « AtoMiC-ToolKit »:

git clone https://github.com/htpcBeginner/AtoMiC-ToolKit ~/AtoMiC-ToolKit

On va dans le dépôt que l’on vient de télécharger:

cd ~/AtoMiC-ToolKit

Et on lance avec sudo le script nommé « setup.sh »:

sudo bash setup.sh

 

On accepte l’avertissement avec « y » puis Entrée:

[pastacode lang= »bash » manual= »%20%E2%94%AC%20%E2%94%AC%E2%94%AC%20%E2%94%AC%E2%94%AC%20%E2%94%AC%20%E2%94%AC%20%E2%94%AC%E2%94%8C%E2%94%AC%E2%94%90%E2%94%8C%E2%94%80%E2%94%90%E2%94%8C%E2%94%80%E2%94%90%E2%94%8C%E2%94%90%20%E2%94%8C%E2%94%80%E2%94%90%E2%94%8C%E2%94%80%E2%94%90%E2%94%AC%E2%94%8C%E2%94%90%E2%94%8C%E2%94%8C%E2%94%90%E2%94%8C%E2%94%8C%E2%94%80%E2%94%90%E2%94%AC%E2%94%80%E2%94%90%20%E2%94%8C%E2%94%80%E2%94%90%E2%94%8C%E2%94%80%E2%94%90%E2%94%8C%E2%94%AC%E2%94%90%0A%20%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%20%E2%94%9C%E2%94%80%E2%94%A4%20%E2%94%82%20%E2%94%9C%E2%94%80%E2%94%98%E2%94%82%20%20%E2%94%9C%E2%94%B4%E2%94%90%E2%94%9C%E2%94%A4%20%E2%94%82%20%E2%94%AC%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%82%E2%94%9C%E2%94%A4%20%E2%94%9C%E2%94%AC%E2%94%98%20%E2%94%82%20%20%E2%94%82%20%E2%94%82%E2%94%82%E2%94%82%E2%94%82%0A%20%E2%94%94%E2%94%B4%E2%94%98%E2%94%94%E2%94%B4%E2%94%98%E2%94%94%E2%94%B4%E2%94%98o%E2%94%B4%20%E2%94%B4%20%E2%94%B4%20%E2%94%B4%20%20%E2%94%94%E2%94%80%E2%94%98%E2%94%94%E2%94%80%E2%94%98%E2%94%94%E2%94%80%E2%94%98%E2%94%94%E2%94%80%E2%94%98%E2%94%B4%E2%94%98%E2%94%94%E2%94%98%E2%94%98%E2%94%94%E2%94%98%E2%94%94%E2%94%80%E2%94%98%E2%94%B4%E2%94%94%E2%94%80o%E2%94%94%E2%94%80%E2%94%98%E2%94%94%E2%94%80%E2%94%98%E2%94%B4%20%E2%94%B4%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20__%20%20___%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%2F%5C%20%7C_%20_%20%7C%5C%2F%7C.%2F%20%20%20%20%20%7C%20_%20%20_%20%7C%7C_%2F.%7C_%20%0A%20%2F–%5C%7C_(_)%7C%20%20%7C%7C%5C__%20%20%20%7C(_)(_)%7C%7C%20%5C%7C%7C_%20%0A%0A—%3EDISCLAIMERS%3A%0A—%3EPlease%20read%20and%20agree%20to%20the%20following%20disclaimers%3A%0A1.%20AtoMiC%20ToolKit%20has%20only%20been%20confirmed%20to%20work%20on%20Ubuntu%5CDebian%20variants%2C%20Mint%2C%20Ubuntu%20Server%20and%20Raspbian.%0A2.%20www.htpcBeginner.com%2C%20its%20authors%2C%20or%20ToolKit%20contributors%20cannot%20be%20held%20accountable%20for%20any%20problems%20that%20might%20occur%20while%20using%20this%20ToolKit.%0A3.%20If%20you%20did%20not%20run%20this%20ToolKit%20with%20sudo%2C%20you%20maybe%20asked%20for%20your%20root%20password%20during%20installation.%0A5.%20Best%20used%20on%20a%20clean%20system%20(with%20no%20previous%20app%20install)%20or%20after%20complete%20removal%20of%20previous%20app%20installation.%0A4.%20By%20proceeding%20you%20agree%20to%20assume%20all%20risks%20and%20authorize%20the%20ToolKit%20to%20install%20any%20required%20packages.%0A%0AType%20y%2FY%20and%20press%20%5BENTER%5D%20to%20AGREE%20and%20continue%20with%20the%20installation%20or%20any%20other%20key%20to%20exit%3A%20y%0A » message= » » highlight= » » provider= »manual »/]

Il va vérifier ensuite si il a bien toutes ses dépendances, le cas échéant, il les installera:

[pastacode lang= »bash » manual= »—%3ECHECKING%20TOOLKIT%20DEPENDENCIES%20…%0AS%C3%A9lection%20du%20paquet%20checkinstall%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0A(Lecture%20de%20la%20base%20de%20donn%C3%A9es…%20333904%20fichiers%20et%20r%C3%A9pertoires%20d%C3%A9j%C3%A0%20install%C3%A9s.)%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Fcheckinstall_1.6.2-4ubuntu1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20checkinstall%20(1.6.2-4ubuntu1)%20…%0AS%C3%A9lection%20du%20paquet%20libtinyxml2-2v5%3Aamd64%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Flibtinyxml2-2v5_2.2.0-1.1ubuntu1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20libtinyxml2-2v5%3Aamd64%20(2.2.0-1.1ubuntu1)%20…%0AS%C3%A9lection%20du%20paquet%20libzen0v5%3Aamd64%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Flibzen0v5_0.4.32-1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20libzen0v5%3Aamd64%20(0.4.32-1)%20…%0AS%C3%A9lection%20du%20paquet%20libmediainfo0v5%3Aamd64%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Flibmediainfo0v5_0.7.82-1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20libmediainfo0v5%3Aamd64%20(0.7.82-1)%20…%0AS%C3%A9lection%20du%20paquet%20mediainfo%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Fmediainfo_0.7.82-1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20mediainfo%20(0.7.82-1)%20…%0AS%C3%A9lection%20du%20paquet%20mediainfo-gui%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Fmediainfo-gui_0.7.82-1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20mediainfo-gui%20(0.7.82-1)%20…%0AS%C3%A9lection%20du%20paquet%20par2%20pr%C3%A9c%C3%A9demment%20d%C3%A9s%C3%A9lectionn%C3%A9.%0APr%C3%A9paration%20du%20d%C3%A9paquetage%20de%20…%2Fpar2_0.6.14-1_amd64.deb%20…%0AD%C3%A9paquetage%20de%20par2%20(0.6.14-1)%20…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20man-db%20(2.7.5-1)%C2%A0…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20libc-bin%20(2.23-0ubuntu9)%C2%A0…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20desktop-file-utils%20(0.22-1ubuntu5.1)%C2%A0…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20bamfdaemon%20(0.5.3~bzr0%2B16.04.20160824-0ubuntu1)%C2%A0…%0ARebuilding%20%2Fusr%2Fshare%2Fapplications%2Fbamf-2.index…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20gnome-menus%20(3.13.3-6ubuntu3.1)%C2%A0…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20mime-support%20(3.59ubuntu1)%C2%A0…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20hicolor-icon-theme%20(0.15-0ubuntu1)%C2%A0…%0AParam%C3%A9trage%20de%20checkinstall%20(1.6.2-4ubuntu1)%20…%0AParam%C3%A9trage%20de%20libtinyxml2-2v5%3Aamd64%20(2.2.0-1.1ubuntu1)%20…%0AParam%C3%A9trage%20de%20libzen0v5%3Aamd64%20(0.4.32-1)%20…%0AParam%C3%A9trage%20de%20libmediainfo0v5%3Aamd64%20(0.7.82-1)%20…%0AParam%C3%A9trage%20de%20mediainfo%20(0.7.82-1)%20…%0AParam%C3%A9trage%20de%20mediainfo-gui%20(0.7.82-1)%20…%0AParam%C3%A9trage%20de%20par2%20(0.6.14-1)%20…%0ATraitement%20des%20actions%20diff%C3%A9r%C3%A9es%20(%C2%AB%C2%A0triggers%C2%A0%C2%BB)%20pour%20libc-bin%20(2.23-0ubuntu9)%C2%A0…%0A » message= » » highlight= » » provider= »manual »/]

Il nous demande ensuite le nom du compte auquel on a donné les droit sudo sans demande de mot de passe (starmate):

[pastacode lang= »bash » manual= »—%3EUSER%20INFORMATION%3A%0A—%3EType%20the%20username%20of%20the%20user%20you%20want%20to%20use%20for%20managing%20apps%20and%20press%20%5BENTER%5D…%0ATypically%2C%20this%20is%20your%20system%20login%20name%20(IMPORTANT!%20Ensure%20correct%20spelling%20and%20case).%20Do%20not%20use%20%22root%22.%20Current%20username%20is%20%22starmate%22%3A%20starmate » message= » » highlight= » » provider= »manual »/]

Et voila, vous pouvez maintenant installer avec beaucoup de facilité tous ce qu’il vous faut pour votre Home Cinéma:

Cette petite vidéo montre l’installation, la mise à jour et la desintallation de Sickbeard:

 

18 juillet 2017 /

J’ai trouvé un petit script nommé G213Colors, pour modifier les couleurs des LED d’un clavier Logitech G213 Prodigy.

En pré-requis, avec faut avoir le module Python pour gérer les ports USB d’installé, et bien sur un clavier G213:

sudo apt-get install -y python-usb python3-usb

On télécharge le script :

wget https://raw.githubusercontent.com/SebiTimeWaster/G213Colors/master/G213Colors.py

Le script doit être exécuté avec les droits root pour pouvoir accéder au périphérique (ID 046d:c336 Logitech, Inc.).

Si on exécute le script sans argument, c’est l’aide qui s’affichera:

sudo python G213Colors.py

G213Colors - Changes the key colors on a Logitech G213 Prodigy Gaming Keyboard

Options:
-c Set the standard color (white)
-c <color> Set a custom color
-c <color1> ... <color5> Set custom colors for the 5 segments
-b <color> <time> Sets a color breathing animation
-x <time> Sets a color cycling animation

Please note:
* Color is a hex encoded color in the format RRGGBB
i.e. ff0000 is red, 00ff00 is green and so on,
abbreviated formats are not allowed
* Time is in milliseconds, range: 32 - 65535

Changer la couleur des touches en blanc ( le blanc a été fixer sur la couleur ffb4aa):

sudo python G213Colors.py -c

qui est similaire à

sudo python G213Colors.py -c ffb4aa

Changer la couleur de toutes les touches en rouge (ff0000):

sudo python G213Colors.py -c ff0000

Pour un effet « pulsation » rouge sur tout le clavier avec un délais de 6000 millisecondes:

sudo python G213Colors.py -b ff0000 6000

Rotation avec toutes les couleurs et un délais de 6000 millisecondes entre chaque transition:

sudo python G213Colors.py -x 6000

Changer les couleurs des 5 parties du clavier:

sudo python G213Colors.py -c 33ffff 00ff00 ff0000 ff6600 ff00cc

Cela ne fonctionne cependant pas pour les champs 4 et 5 qui vont conserver leur couleur.

Par exemple, pour les couleurs de la France, on commence par fixer les champs 4 et 5 en rouge:

sudo python G213Colors.py -c ff0000

Puis on fixe la couleurs des champs 1, 2 et 3 en bleu et blanc:

sudo python G213Colors.py -c 0000ff 0000ff ffb4aa ff0000 ff0000

ou

sudo python G213Colors.py -c 0000ff ffb4aa ffb4aa ff0000 ff0000

Personnellement j’utilise:

sudo python G213Colors.py -c 0000ff 0000ff 0000ff ff0000 ff0000

Si les couleurs ne veulent plus changer, il suffit de débrancher le clavier, puis de le rebrancher.

Pour l’activer au démarrage, on commence par déplacer le script dans un répertoire ou il ne sera pas supprimé par erreur:

sudo mkdir /usr/local/g213colors
sudo mv G213Colors.py /usr/local/g213/

On peut maintenant l’activer au démarrage:

sudo vi /etc/rc.local

Puis on ajoute ces lignes, en laissant bien à la fin la ligne « exit 0 »:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#Clavier G213
python /usr/local/g213/G213Colors.py -c 0000ff 0000ff 0000ff ff0000 ff0000

exit 0

Et voila!

Source