Catégorie : Linux

15 décembre 2017 /

Pour cela, il faut éditer son .bashrc:

vi ~/.bashrc

Et y ajouter cela:

export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'

Il ne nous reste plus qu’a sourcer notre .bashrc:

reset

ou

source ~/.bashrc

2 décembre 2017 /

Sauvegarde sur un serveur FTP

On se met en mode administrateur:

enable

On passe en mode configuration:

conf t

On renseigne les informations de connexion au serveur FTP:

ip ftp username login_utilisateur
ip ftp password mot_de_passe

On sort du mode configuration:

end

Puis on lance la sauvegarde:

copy running-config ftp:

Il nous demandera alors l’adresse ip du serveur FTP, et le nom que l’on souhaite donner au fichier contenant la configuration.

Dans le fichier récupérer il faudra supprimez toute ligne débutant par « AAA » car cela peut bloquer sa restauration.

Pour restaurer depuis un serveur FTP

On passe en mode configuration sur le nouveau Cisco:

conf t

On renseigne les informations de connexion au serveur FTP:

ip ftp username login_utilisateur
ip ftp password mot_de_passe

On sort du mode configuration:

end

Puis on lance la sauvegarde:

copy ftp: running-config

Il nous demandera alors l’adresse ip du serveur FTP puis une fois connecté, le fichier qui contient la configuration à restaurer.

Sauvegarde en local via Minicom

On passe en mode administrateur sur le Cisco:

enable

On désactive le « –more– » pour afficher d’un coup la configuration:

terminal length 0

On accède au menu de Minicom pour lancer la capture de la sortie standard dans un fichier texte:

Ctrl+A puis Z puis L

On affiche la configuration actuelle pour la capturer dans notre fichier:

show running-config

Une fois la configuration affichée, on arrête la capture de log:

Ctrl+A puis Z puis L

On va maintenant sauvegarder la configuration de démarrage:

Ctrl+A puis Z puis L

On affiche la configuration de démarrage pour qu’elle soit capturée:

show startup-config

Une fois la configuration affichée, on arrête la capture de log

Ctrl+A puis Z puis L

Restauration en local via minicom

On lance Minicom et on se met en mode administrateur sur le Cisco:

enable

On passe en mode configuration:

conf t

Puis on affiche les options de minicom:
Ctrl+A puis Z puis Y

On sélectionne le fichier de configuration que l’on a en local pour que Minicom colle le contenu du fichier dans l’entrée standard.

On peut vérifier que la configuration s’est bien reportée:

show running-config

On oublie pas de sauvegarder la configuration une fois restaurer:

copy running-config startup-config
wr

11 novembre 2017 /

Nous pouvons consulter le niveau d’entropie disponible dans le fichier suivant:

/proc/sys/kernel/random/entropy_avail

Si le niveau d’entropie disponible est inférieur à 1000, le noyau va avoir des difficultés à générer des nombres aléatoires lorsque cela lui sera demandé. Le noyau va donc attendre tranquillou jusqu’à ce qu’il collecte suffisamment d’entropie. Idéalement, on aura une valeur avoisinant les 2000.

Le serveur SSH par exemple, qui utilise de l’entropie, peut souffrir de lenteurs lors de l’établissement de connexions si celle-ci vient à manquer. Cela affecte particulièrement les machines virtuelles.

Pour palier ce problème, le paquet haveged permet d’alimenter le noyau en entropie.

apt-get install -y haveged

ou

yum install -y haveged

On active le service

systemctl enable haveged

On va augmenter le niveau d’entropie à 2048 bits en éditant le fichier suivant:

vi /etc/default/haveged

Puis on modifie ce paramètre:

DAEMON_ARGS="-w 2048"

On redémarre le service:

systemctl stop haveged
systemctl start haveged

Pour voir le niveau d’entropie maintenant optimisé:

watch -n 0,1 cat /proc/sys/kernel/random/entropy_avail

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