15 déc. 2015

DevOps pour les Nuls (developpez.com)



DevOps (abréviation de développement et opérations), à l'instar de nombreuses nouvelles approches, est souvent un mot à la mode pour beaucoup de personnes. Tout le monde en parle, mais tout le monde ne sait pas ce que c'est. De manière générale, DevOps est une approche qui repose sur les principes Lean et Agile dans lesquels les responsables métier avec les services de développement, des opérations et d'assurance qualité collaborent pour délivrer le logiciel en continu dans l'objectif de permettre à l'entreprise de saisir plus rapidement les opportunités du marché et d'accélérer la prise en compte des retours clients. En effet, les applications d'entreprise sont si diverses et composées de tant de technologies, bases de données, d'équipements utilisateurs, etc., que seule une approche DevOps permet de gérer avec succès toute cette complexité. Cependant, les opinions sur son utilisation divergent.

Certains affirment que DevOps s'adresse aux professionnels uniquement. D'autres avancent qu'il tourne autour du cloud. IBM propose une vue large et holistique et considère DevOps comme une approche de livraison du logiciel orientée métier : une approche qui porte une fonctionnalité nouvelle ou une amélioration de l'idée jusqu'à la mise en production, en fournissant de la valeur métier aux clients finals de manière efficace et en capturant les retours des utilisateurs de cette nouvelle fonctionnalité. Pour ce faire, la participation de toutes les parties prenantes, bien au-delà des équipes de développement ou des opérations, est indispensable. Une véritable approche DevOps englobe les lignes métier, les utilisateurs, les responsables, les partenaires, les fournisseurs, etc.

Source et suite : http://bluemix.developpez.com/cours/devops-pour-nuls/

14 déc. 2015

Ansible Hands-On Training


Video :

Tutorial vidéo Ansible pour les Anglophones.

Je viens de découvrir un peu le potentiel d'Ansible pour le déploiement et ça me semble assez puissant.

Mise à jour:
quelques vidéos disponibles ici : http://www.ansible.com/resources

9 déc. 2015

Commande NETSTAT : utilisations pratiques

J'ai compilé ici des articles ayant un intérêt sur la commande netstat. Tout en réalisant les tests des commandes sur ma propre machine de test. Vous trouverez les sources.


Commande netstat utilisation basique

source http://openmaniak.com/fr/netstat.php

Netstat (NETwork STATistics) est un outil de ligne de commande qui fournit des informations sur votre configuration réseau ainsi que son activité.

Afficher la table de routage

#netstat -rn
-r: Tables de routage du noyau Linux.
-n: Affichage des adresses numériques à la place des noms d'hôtes.

root@VM-UBUNTU-01:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.250.0.10     0.0.0.0         UG        0 0          0 eth0
10.250.0.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
Afficher les statistiques rapides des interfaces

#netstat -i
-i: Interface

root@VM-UBUNTU-01:~# netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   5631321      0    143 0       2403793      0      0      0 BMRU
lo        65536 0      7752      0      0 0          7752      0      0      0 LRU
 Afficher les statistiques complètes des interfaces

#netstat -ie
-i: Interface
-e: Information étendue

root@VM-UBUNTU-01:~# netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 00:0c:29:e8:cc:d3
          inet addr:10.250.0.150  Bcast:10.250.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee8:ccd3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5631385 errors:0 dropped:143 overruns:0 frame:0
          TX packets:2403806 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3038943399 (3.0 GB)  TX bytes:3907704626 (3.9 GB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:7752 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7752 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:704050 (704.0 KB)  TX bytes:704050 (704.0 KB)
On peut souligner que la commande "netstat -e" est équivalente à la commande "ifconfig -a".

Afficher toutes les sockets réseaux ouvertes

#netstat -uta
-u: UDP
-t: TCP
-a: All

root@VM-UBUNTU-01:~# netstat -uta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp        0      0 10.250.0.150:ssh        10.250.0.50:40373       ESTABLISHED
tcp        0      0 10.250.0.150:ssh        10.250.0.50:46060       ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN

 Les sockets dans l'état listen sont incluses dans la sortie écran seulement lorsqu'on spécifie les options --listening (-l) ou --all (-a).

Les états possibles des sockets sont les suivants:
(repris de la page "man netstat")


ESTABLISHED:
SYN_SENT:
SYN_RECV:
FIN_WAIT1:
FIN_WAIT2:
TIME_WAIT:
 
CLOSED:
CLOSE_WAIT:
LAST_ACK:
LISTEN:
 
CLOSING:
 
UNKNOWN:
La socket a une connexion établie.
La socket attend activement d'établir une connexion.
Une requête de connexion a été reçue du réseau.
La socket est fermée, et la connexion est en cours de terminaison.
La connexion est fermée, et la socket attend une terminaison du distant.
La socket attend le traitement de tous les paquets encore sur le réseau avant d'entreprendre la fermeture.
La socket n'est pas utilisée.
Le distant a arrêté, attendant la fermeture de la socket.
Le distant termine, et la socket est fermée. Attente d'acquittement.
La socket est à l'écoute de connexions entrantes. Ces sockets ne sont affichées que si le paramètre -a,--listening est fourni.
Les deux prises sont arrêtées mais toutes les données locales n'ont pas encore été envoyées.
L'état de la prise est inconnu.

 Afficher toutes les sockets réseaux ouvertes (informations étendues)

#netstat -aute
-a: All
-u: UDP
-t: TCP
-e: Information étendue

 root@VM-UBUNTU-01:~# netstat -aute
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode
tcp        0      0 *:ssh                   *:*                     LISTEN      root       9022
tcp        0      0 localhost:mysql         *:*                     LISTEN      mysql      2310050
tcp        0      0 10.250.0.150:ssh        10.250.0.50:40373       ESTABLISHED root       2686139
tcp        0    320 10.250.0.150:ssh        10.250.0.50:46060       ESTABLISHED root       2696343
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      root       9024
tcp6       0      0 [::]:http               [::]:*                  LISTEN      root       2311284

 Afficher toutes les sockets en état "listen"

#netstat -lt
-t: TCP
-l: Socket en état listen

root@VM-UBUNTU-01:~# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
Afficher les statistiques par protocole

#netstat -s
-s: Statistiques résumées pour chaque protocole.

root@VM-UBUNTU-01:~# netstat -s
Ip:
    1778352 total packets received
    0 forwarded
    0 incoming packets discarded
    1778351 incoming packets delivered
    1244698 requests sent out
    1727 outgoing packets dropped
Icmp:
    3626 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 3626
    3626 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 3626
IcmpMsg:
        InType3: 3626
        OutType3: 3626
Tcp:
    4310 active connections openings
    124 passive connection openings
    0 failed connection attempts
    75 connection resets received
    2 connections established
    1766668 segments received
    2385158 segments send out
    47 segments retransmited
    0 bad segments received.
    104 resets sent
Udp:
    0 packets received
    3626 packets to unknown port received.
    0 packet receive errors
    3628 packets sent
UdpLite:
TcpExt:
    2 invalid SYN cookies received
    1480 TCP sockets finished time wait in fast timer
    7072 delayed acks sent
    18 delayed acks further delayed because of locked socket
    Quick ack mode was activated 24 times
    33 packets directly queued to recvmsg prequeue.
    4425586 bytes directly in process context from backlog
    7126 bytes directly received in process context from prequeue
    518714 packet headers predicted
    2240 packets header predicted and directly queued to user
    1076152 acknowledgments not containing data payload received
    115565 predicted acknowledgments
    21 times recovered from packet loss by selective acknowledgements
    24 congestion windows recovered without slow start after partial ack
    21 fast retransmits
    25 other TCP timeouts
    TCPLossProbes: 151
    TCPLossProbeRecovery: 54
    25 DSACKs sent for old packets
    89 DSACKs received
    40 connections reset due to early user close
    TCPDSACKIgnoredNoUndo: 51
    TCPSackShifted: 62
    TCPSackMerged: 47
    TCPSackShiftFallback: 68
    TCPDeferAcceptDrop: 55
    TCPRcvCoalesce: 181682
    TCPOFOQueue: 189
    TCPSpuriousRtxHostQueues: 31
IpExt:
    InMcastPkts: 2
    InBcastPkts: 4919
    InOctets: -1516352654
    OutOctets: -1698348110
    InMcastOctets: 72
    InBcastOctets: 1059047
    InNoECTPkts: 3222497
 Aller plus loin?

"Lister les ports ouverts avec Netstat"


source : http://www.memoinfo.fr/netstat-lister-ports-ouverts-linux.html

 La commande Netstat permet de lister tous les ports ouverts sur une machine, les connexions établies et enfin globalement les services réseaux en écoute.
Grâce à cette commande nous allons pouvoir vérifier tous les services installés, vérifier qu’ils fonctionnent bien sur les bons ports.
On pourra également, en profiter pour voir des services qui n’ont pas besoin d’être lancés et par conséquent les arrêter.
Et enfin, la commande Nestat permettra, en listant les ports ouverts, de configurer le firewall en fonction de nos besoins.

La commande netstat Linux peut prendre de nombreux paramètres. Mais voici une bonne base :

netstat -paunt

    -a : Tous les ports
    -t : Tous les ports TCP
    -u : Tous les ports UDP
    -l : Tous les ports en écoute
    -n : Affiche directement les IP. Pas de résolution de nom.
    -p : Affiche le nom du programme et le PID associé.

Ce qui donne un affichage du genre :

root@VM-UBUNTU-01:~# netstat -paunt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      820/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      26331/mysqld
tcp        0      0 10.250.0.150:22         10.250.0.50:40373       ESTABLISHED 19027/sshd: stanisl
tcp        0      0 10.250.0.150:22         10.250.0.50:46060       ESTABLISHED 19532/3
tcp6       0      0 :::22                   :::*                    LISTEN      820/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      11762/apache2
 Comment lire les résultats de la commande netstat, par colonnes :

  •     Proto : le protocole utilisé. Les classiques TCP et UDP mais également TCP6 et UDP6 pour les variantes IPV6.
  •     Recv-Q : Le nombre de Bytes dans la file d’attente de réception. Devrait toujours être à zéro
  •     Send-Q : Le nombre de Bytes dans la file d’attente d’envoi. Devrait toujours être à zéro
  •     Adresse locale : l’adresse et le port utilisé sur la machine locale
  •     Adresse distante : l’adresse et le port utilisé par la machine distante
  •     Etat : LISTEN quand le programme écoute et attend une connexion. ESTABLISHED lorsque la connexion est établie.
  •     PID/Program name : Le numéro de processus et le nom du programme

Vous savez tout sur la commande netstat Linux. A vos analyses !

bref RTFM

# man netstat

http://linux.die.net/man/8/netstat

1 déc. 2015

Bien choisir mon netbook

Texte datant de 27/08/2011 01:04

Adieu Macbook, Bonjour Netbook

Pendant mes années lycées en bac pro informatique, je testais tout un tas de matériel informatique. J'avais beaucoup entendu parlé d'Apple et de leurs Mac, mais mes souvenir dataient du début des années 90 à l'école avec l'apprentissage du traitement de texte sur Mac avec écrans en noir et blanc.

Puis un camarade m'a fais découvrir son iBook 12" PowerPC, j'ai très vite été séduit et j'ai sauté le pas en achetant cette machine. J'ai donc découvert Mac OS X Tiger. J'avais entendu bon nombre de critique à propos d'Apple, mais celles-ci n'étaient pour la plus part pas fondées ou étaient du dénigrement pur et simple.

J'ai ensuite acheté un Macbook 13" Intel Core 2 Duo et ait pu continuer à toucher à Mac OS X mais cette fois-ci Leopard.

J'ai toujours eu une utilisation saine de cette machine et de cet OS que je considère comme étant le plus aboutis en matière d'ergonomie et de simplicité d'usage. Bref, ce système répond parfaitement au besoin de Monsieur Toutlemonde : Facile à utiliser, assez sécurisé, stable. Mais, il y a un prix à ça: c'est très coûteux. Et si j'ai pu jusqu'à présent bénéficier d'avantages étudiants lié à ma condition et opérer des choix drastique en achetant les machine les plus économiques (iBook 12 " et ensuite macbook simple et pas macbook pro) je ne pourrais pas investir autant dans un ordinateur.

Aujourd'hui, j'ai donc vendu mon Macbook encore fonctionnel, et ce pour une simple raison: je ne pourrais pas l'emmener avec moi en Australie. Il est lourd, encombrant... Bref, en le vendant un peu en dessous de sa côte j'ai pu en tirer 350€ et ce pour une machine ayant un peu moins de 3 ans.

Bien choisir mon Netbook dans l'optique d'un voyage



N'étant pas un Macuser fanboy, je ne suis pas aller jusqu'à chercher un macbook air en occasion (et encore moins neuf).  Je m'adapte. J'avais un besoin en matière d'ordinateur lors de mon voyage, il fallait que ce soit :
  • un Portable
    • performant (rapport vitesse/autonomie) : Bonne marque, bon matériel
    • peu encombrant, léger, solide : pouvoir être transporter sans être un fardeau
    • passe partout (pas tape à l'oeil comme une grosse pomme) : ne pas tenter le diable, voyager en sécurité
    • économique: qui ne me coûte pas les yeux de la tête !
  • avec un os fonctionnel, cad:
    • stable, léger
    • me permettant de communiquer sur Internet
    • me permettant de faire de la bureautique
    • me permettant de trier mes photos/musiques

J'ai longtemps chercher et après de nombreuses recherches j'ai jeter mon dévolu sur un netbook de la marque Samsung : le NC210


Pourquoi et comment je l'ai sélectionné pour ne pas avoir de mauvaise surprise

Ce que je vais décrire ici s'applique dans certains cas à toute formes d'achat (sur Internet ou ailleurs).

  • j'ai fais un tour d'horizon de tous les netbook disponibles sur le marché
  • j'ai regarder les marques disponibles et vu les bonnes / les moins bonnes
    • Bonnes: Samsung, Asus, Sony,...
    • Moins bonnes : Packard bell, Hercules, Acer
  • Puis bon, je m'étais limité en budget à maximum 300 €
    • j'ai donc pu éliminé Sony car trop cher
    • je me suis focalisé sur Asus et Samsung
  • En  voulant être étique, je pourrais vouloir privilégié une de ces marques par proximité géographique ou pour soutenir l'économie de mon pays / de l'UE, cependant la plus part des marques, même occidentales produisent en Asie. Cela ne rentre malheureusement pas dans mes paramètres ici.
  • J'ai regardé les netbook ayant ces caractéristiques:
    • Samsung, Asus
    • Moins de 300€
    • poids inférieur à 1.3kg
    • autonomie importante (plus de 6h de batterie)
    • au moins 1go de Ram (pour la vitesse)
    • un processeur intel atom (offrant à la fois plus d'autonomie et un rapport performance)
  • J'ai aussi fais une recherche concernant d'éventuels problèmes, consulté les sites commes Amazon, Ciao, etc pour voir les commentaires des consommateurs 
  • Regarder des vidéos sur youtube de ce produit
  • J'ai été à la FNAC pour voir des netbook et pouvoir les prendre en main afin de les étudier de plus près. Même si je n'ai pas vu les modèles exacts, j'ai pu me faire une idée en matière de qualité des matériaux en fonction des marques
Le NC210 et répondait parfaitement à mes attentes, je l'ai donc commandé. Je l'attend. Cependant, en ayant fais un maximum de recherche sur ce produit, je pense qu'il y a de très forte chance que ce produit me plaise.

A suivre donc ...

Sun OpenBoot Parameters and commands

About Openboot :
The firmware in Sun's boot PROM is called OpenBoot. The main features of openboot are – initial program loading , & debugging features to assist kernel debugging. OpenBoot supports plug-in device drivers which are written in language Forth. This plug in feature allows Sun or any third-party vendors to develop new boot devices but without making any changes to boot PROM.

Accessing the openboot
Openboot console can be accessed by any of the following means . Be careful not to do this on a live system as you might end up in rebooting the server .
[...]

la suite : http://adminschoice.com/sun-openboot-parameters-and-commands

30 nov. 2015

Appréhender GNU screen en 5 minutes

Définition de wikipedia:
GNU Screen is a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session. It is useful for dealing with multiple programs from a command line interface, and for separating programs from the Unix shell that started the program. (https://en.wikipedia.org/wiki/GNU_Screen)

Je pars du principe que l'on est sous Debian ou Ubuntu.

Installer screen
# apt-get install screen
 Ouvrir une session screen:
# screen -S download_ubuntu

par exemple, dans mon cas, je veux lancer le téléchargement d'une ISO
# wget http://releases.ubuntu.com/15.10/ubuntu-15.10-server-amd64.iso
--2015-11-30 15:38:33--  http://releases.ubuntu.com/15.10/ubuntu-15.10-server-amd64.iso
Connecting to 10.49.64.5:8080... connected.
Proxy request sent, awaiting response... 200 OK
Length: 662700032 (632M) [application/x-iso9660-image]
Saving to: ‘ubuntu-15.10-server-amd64.iso’

 0% [                                                                                                                            ] 3 461 854    576KB/s  eta 18m 29s
Laisser courir le téléchargement
Taper simultanément [CTRL] + a puis d

[detached from 5049.download_ubuntu]
Lister les sessions screen actives:
# screen -ls
There are screens on:
        5049.download_ubuntu    (30/11/2015 15:38:01)   (Detached)
        5019.1  (30/11/2015 15:33:47)   (Detached)
2 Sockets in /var/run/screen/S-root.

Reprendre la session "download_ubuntu"
# screen -r 5049.download_ubuntu

Aller plus loin avec screen :

# man screen
https://www.gnu.org/software/screen/manual/screen.html

http://aperiodic.net/screen/quick_reference

http://web.mit.edu/gnu/doc/html/screen_13.html

23 nov. 2015

Timestamp, c'est quoi?

Timestamp ou Horodatage,

"L'horodatage (en anglais timestamping) est un mécanisme qui consiste à associer une date et une heure à un événement, une information ou une donnée informatique. Il a généralement pour but d'enregistrer l'instant auquel une opération a été effectuée." (https://fr.wikipedia.org/wiki/Horodatage)

En effet c'est très pratique enregistrer un fichier à l'instant T (par exemple, la génération d'un rapport)

Le script assez simple ci-dessous permet par exemple de générer un fichier fichier- et traduit le timestamp en langage humain:

#!/bin/sh
HORODATAGE=`date +%s`
FICHIER="fichier-$HORODATAGE.txt"
echo "creation du fichier $FICHIER"
touch $FICHIER
echo "$HORODATAGE humainement parlant correspond à la date du `date -ud @$HORODATAGE`"

ce qui donne :
$ ./temps_t.sh
creation du fichier fichier-1448275999.txt
1448275999 humainement parlant correspond à la date du lundi 23 novembre 2015, 10:53:19 (UTC+0000)

Sinon sur Internet, un bon moyen de décoder du timestamp :
http://tools.semsym.com/index.php?tool=timestamp

ou en encoder
http://tools.semsym.com/index.php?tool=timeencode

Différences majeures entre Red Hat 6, 7, 8 et 9

Quelles sont les différences majeures entre RHEL 6, 7, 8 et 9 ? Système de fichiers RHEL 6: Par défaut : ext4. Autres : ext2, ext3 supportés...