Linux - Exemple pour CentOS
Configurer le réseau IP
#
# Exemple de gestion de la couche réseau TCP/IP sur CentOS/RHEL/OEL 6.x
#
#
#
# Voir la config IP :
# ===================
# Ancienne commande :
ifconfig
# Nouvelle commande :
ip addr
ip -d addr
#
#
# Voir les routes :
# =================
# Ancienne commande :
route
route -n
# Nouvelle commande :
ip route
ip -d route (-d = -detail)
ip -d -4 route (-4 pour avoir uniquement route ipv4)
#
#
# Edition du fichier FILE /etc/sysconfig/network :
# ------------------------------------------------
#
# Ce fichier /etc/sysconfig/network est utilisé pour spécifier les informations nécessaires pour configurer le réseau sur la machine
#
# Les valeurs suivvantes peuvent y être positionnées:
#
## NETWORKING=<value>, où <value> peut avoir l'une des valeurs suivantes:
#### yes — correspond à " le réseau doit être configuré".
#### no — correspond à " le réseau ne doit pas être configuré".
## HOSTNAME=<value>, où <value> correspond au Fully Qualified Domain Name (FQDN)
## GATEWAY=<value>, où <value> est l'addresse IP de la passerelle du sous-réseau.
## GATEWAYDEV=<value>, où <value> est l'interface à utiliser pour joindre la passerelle telle que eth0. Configurez cette option si vous avez plusieurs interfaces sur le même sous-réseau
## et qu'il faut préciser quelle interface doit être choisie pour atteindre la passerelle.
## NISDOMAIN=<value>, où <value> iest lke nom de domaine NIS.
## NOZEROCONF=<value>, --> <value> positionné à TRUE désactive la route zeroconf
/etc/sysconfig/network-scripts/ifcfg-<interface-name> :
-------------------------------------------------------
Pour chaque interface réseau physique, il existe un script ou fichier de configuration de l'interface
Chacun de ces fichiers fournit les informations specifiques d'une interface réseau particulière
Exemple avec DHCP :
-------------------
DEVICE="eth0"
BOOTPROTO=dhcp
NM_CONTROLLED="no"
PERSISTENT_DHCLIENT=1
ONBOOT="yes"
TYPE=Ethernet
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="eth0"
[
Exemple en IP stratique :
-------------------------
DEVICE="eth0"
HWADDR="00:21:70:10:7E:CD"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
# BOOTPROTO=dhcp
IPADDR=10.16.1.106
NETMASK=255.255.255.0
#
GATEWAY=10.16.1.1
# IMPORTANT : la GATEWAY est parfois positionné dans le fichier global /etc/sysconfig/network
FILE /etc/hosts :
-----------------
L'objectif principal de ce fichier est la résolution des noms d'hôtes qui ne peuvent
être résolus autrement (DNS notamment).
Quel que soit le type de réseau sur lequel l'ordinateur est connecté, ce fichier doit une ligne
qui définit l'address IP du périphérique loopback (127.0.0.1) comme correspondant à localhost.localdomain.
FILE /etc/resolv.conf :
-----------------------
Ce fichier spécifié les addresses IP des serveurs DNS servers et des domaines de recherches.
A moins de le configurer manuellment autrement, les scripts d'initialisation du réseau renseignent automatiquement
les bonnes valeurs de ce fichier.
Dès que la configuration réseau a été terminée, le réseau peut être inialisé via la commande :
==============================================================================================
sudo service network restart *
ou bien
/etc/init.d/network restart
Changement du nom d'hôte (hostname) :
=====================================
Il existe 4 étapes à réaliser :
1 -- Modifier Sysconfig/Network
Changer la valeur de HOSTNAME= pour indiquer la nouveau FQDN de votre machine
# Exemple : sudo nano /etc/sysconfig/network
--> HOSTNAME=My-Comp061.mycompany.com
2 -- Modifier le fichier Hosts :
Changer the le nom d'hôte qui est associé à l'adresse IP principale de la machine dans /etc/hosts,
-- Nécessaire pour le gestion du réseau interne :
# Exemple : sudo nano /etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.1.61 My-Comp061.mycompany.com My-Comp061
3 -- Exécuter la commande Hostname :
Cette commande 'hostname' va permettre de modifier le nom d'hôte de façon à être enregister au niveau de l'invite de commandes
Attention: cela n'active pas encore les modifications faites dans les fichiers !!
hostname My-Comp061.mycompany.com
# Pour vérifier :
hostname
4 -- Relancer les services réseaux :
/etc/init.d/network restart
Changer l'adresse Mac :
=======================
#
$ ifconfig -a | grep HWaddr
ou
$ ifconfig -a | grep ether
eth0 Link encap:Ethernet HWaddr 00:80:48:BA:d1:20
he hexadecimal numbers in blue denote my machine's MAC address.
Yours will be different. Learn how to use the ifconfig Linux command.
NB : vous pouvez aussi utiliser ethtool pour retrouver la hardware address (Mac Address) de votre machine.
Ensuite, se logguer en root et taper les commandes suivantes pour, par exemple, affecter la Mac Address 00:04:4d:50:e3:67 :
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:04:4d:50:e3:67
# ifconfig eth0 up
# ifconfig eth0 |grep HWaddr
ou # ifconfig eth0 |grep ether
Application --> Clonage d'une VM :
==================================
Modifier le hostname en suivant la procédure décrite ci-dessus
Générer une nouvelle Addresse Mac en suivant la procédure décrite ci-dessus
Change l'addresse IP de la machine (pull from a file)
Regénérer les clés ssh
Placer les clés pour les hôtes autorisés à leur place
Scanner les fichiers dans /etc /usr, dans /sbin et dans /opt pour retrouver les références à l'ancien nom d'hôte pour corriger si nécessaire.
Regénerer de nouvelles clés SSH :
=================================
1 - Trouver les clés SSH actuelles
#
$ ls -al ~/.ssh
#
# Lister les fichiers dans le répertoire .ssh directory,
Vérifier si vous y retrouver des fichiers dont le nom est soit id_rsa.pub ou id_dsa.pub. Sinon, aller directement à l'étape 2
Si oui, sautez l'éatape 2 to step 2. Otherwise, skip to step 3.
2- Generer une nouvelle clé SSH
Exécuter les commandes suivantes, en substituant your-email@your-company.com par votre adresse Email.
Laisser les paramètres par défaut de préférence - Aussi, lorsqu'on vous demande "Enter a file in which to save the key", appuyer simplement sur Enter pour continuer.
ssh-keygen -t rsa -C "your-email@your-company.com"
...
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
Ensuite, vous devez fournir une "passphrase".
...
# Enter passphrase (empty for no passphrase): [Type a passphrase]
# Enter same passphrase again: [Type passphrase again]
Vous devez voir des indications ressemblant à :
# Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 08:0a:e5:45:ba:23:49:76:c6:6d:d0:57:8b:e1:b3:ce your-email@your-company.com
#
Ensuite, ajouter la nouvelle clé à l'agent SSH :
# Lancer l'agent ssh en tache de fond
ssh-agent -s
# Agent pid 59566
Ajout de la clé
$ ssh-add ~/.ssh/id_rsa
Gestion du Bonding
#
# Exemple de configuration dune Interface Bonding sur CentOS/RHEL/OEL 6.x
#
#
# Il s'agit dans l'exemple de créer un bonding entre les interfaces Ethernet eth0 and eth1
# Le nom du Bonding sera bond0. Ensure that you’re connected to your host via a console.
# le Bonding sera crée en mode Active/failover
#
# En premier lieu creation du fichier de configuration du Bonding ifcfg-bond0
# Bien entendu, remplacer les valeurs ci-dessous par les votres selon votre configuration TCP/IP
#
#
cd /etc/sysconfig/network-scripts
vi ifcfg-bond0
# Contenu du fichier
DEVICE=bond0
IPADDR=192.168.10.1
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
NM_CONTROLLED=no
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
#
#
# En second lieu edition des fichiers de configuration des interfaces Ethernet : ifcfg-eth0 et ifcfg-eth1
# Remplacer les valeurs selon la configuration de votre machine et de votre réseau
# Les interface Ethernet physiques sont configurées en tant qu'esclave du Bond0
# Le master est le Bond0
#
# vi ifcfg-eth0
DEVICE=eth0
USERCTL=no
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
#
# vi ifcfg-eth1
DEVICE=eth1
USERCTL=no
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
#
#
# Note : si NM_CONTROLLED est ON, vous devrez définir les entrées HWADDR également ici et de façon très stricte !
# Pour chaque interface, configurez le module de bonding. miimon est la fréquence de monitoring des liens en millisecondes
# downdelay et Updelay sont les temps d'attente en millisecondesavant d'activer ou de désactiver une interface dans le bond
# pour eviter le phénomène de "flapping" : il doivent être un multiple de la valeur de miimon
# Important : /etc/modprobe.conf is obsolète dans CentOS 6.x - Ainsi, un fichier approprié doit être créé sous /etc/modprobe.d
# Dans notre cas, ce fichier est bonding.conf:
#
# vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 mode=active-backup miimon=100 downdelay=200 updelay=200
#
#
# Pour tester, chargez manuellment le module avec les options nécessaires
# Sachez que le mode par défaut du bonding est le mode round-robin
#
modprobe bonding mode=active-backup miimon=100 downdelay=200 updelay=200
#
# Relancer les services réseaux
service network restart
#
#
# Vérifier que c'est OK avec ifconfig -a,
# Vous pouvez aussi faire un cat sur /proc/net/bonding/bond0:
#
#
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 50:ad:00:c4:63:5d
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:ad:00:c4:67:72
Slave queue ID: 0
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 50:ad:00:c4:63:5d
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:ad:00:c4:67:72
Slave queue ID: 0
#
#
# Rebootez le serveur afin de valider le fonctionnement suite à un redémarrage
Gestion du service DHCP
En construction...
Gestion du service ISCSI
# Le but est d'ajouter un disque ISCSI
# et de faire une copie de données via Rsync entre un répertoire
# du disque local vers ce nouveau volume ISCSI
#
# ==============================================================================================
# Partie 1 : PREPARATION
# ==============================================================================================
#
#
# Installation de SSH :
# ---------------------
yum -y install ssh
#
#
# Installer le composant initiator ISCSI :
# ---------------------------------------
yum -y install iscsi-initiator-utils :
#
#
# Installation de Rsync :
# -----------------------
yum -y install rsync
#
#
# Mettre à jour le serveur (équivalent Windows Update) :
# ------------------------------------------------------
yum update yum
yum update
#
#
#
# ==============================================================================================
# Partie 2 : CONFIGURATION ISCSI et RECONNAISSANCE DU DISQUE
# ==============================================================================================
#
#
# Vérifier ou modifier la conf ISCSI :
# ------------------------------------
vi /etc/iscsi/iscsid.conf
#
#
# Afficher l'IQN du serveur :
# ---------------------------
more /etc/iscsi/initiatorname.iscsi
#
#
# Voir et démarrer le service ISCSI :
# -----------------------------------
service iscsi status
#
# Si pas démarré : service iscsi start
#
# Activer le démarrage du ISCSI au démarrage (boot) du serveur :
# --------------------------------------------------------------
chkconfig --list
systemctl list-unit-files
chkconfig --add iscsi
chkconfig iscsi on
#
#
# Se connecter à toutes les target :
# ----------------------------------
iscsiadm –m node –l
# ou
iscsiadm -m node --login
#
#
# Voir le statut des connexions ISCSI :
# -------------------------------------
iscsiadm -m session
iscsiadm -m node -o show
#
#
# Découvrir les target ISCSI d'un serveur :
# -----------------------------------------
iscsiadm -m discovery -t sendtargets -p 192.168.11.114
# ou
iscsiadm --mode discovery --type sendtargets --portal 192.168.11.114
#
#
# Confirmer le status après la découvertes des target :
# ------------------------------------------------------
iscsiadm -m node -o show
#
#
# Se connecter à une target en particulier :
# -------------------------------------------
iscsiadm -m node -l -T iqn.1991-05.com.microsoft:ars-adm-03-vdlinux01-target -l -p 192.168.11.114:3260
# ou
iscsiadm --mode node --targetname iqn.1991-05.com.microsoft:ars-adm-03-vdlinux01-target --portal 192.168.11.114 --login
#
#
# Se déconnecter de toutes les target :
# -------------------------------------
iscsiadm –m node –u
#
#
# Se déconnecter d'une target en particulier :
# --------------------------------------------
iscsiadm –m node –u –T iqn.2001-05.com.equallogic:0-8a0906-3a86b2a07-c4e150b3415519cb-centos-cluster –p <Group IP address>:3260
#
#
# Trouver le nom d'un device ISCSI (excellente commande):
# -------------------------------------------------------
iscsiadm -m session -P3
#
#
# ==============================================================================================
# Partie 3 : PRÉPARATION DU DISQUE
# ==============================================================================================
#
#
# METHODE 1 : Préparer le disque (par exemple /dev/sdb) avec PARTED :
# ===================================================================
#
# Voir les partitions :
# *********************
cat /proc/partitions
#
#
# create a label :
# ****************
[root@www ~]# parted --script /dev/sdb "mklabel msdos"
#
# create a partition :
# ********************
[root@www ~]# parted --script /dev/sdb "mkpart primary 0% 100%"
#
# format with EXT4 :
# ******************
[root@www ~]# mkfs.ext4 /dev/sdb1
#
# montage du nouveau disque :
# ***************************
[root@www ~]# mount /dev/sdb1 /mnt
#
# Afficher le nouveau Filesystem :
# ********************************
[root@www ~]# df -hT
#
#
# METHODE 2 : Préparer le disque (par exemple /dev/sdb) :
# =======================================================
#
# Création du device :
# ********************
fdisk -l
fdisk -cu /dev/sdb
#
# Création du Filesystem :
# ************************
mkfs.ext4 /dev/sdb1
# ou bien :
mkfs -t ext4 /dev/sdb
#
# Montage du filesystem :
# ***********************
mkdir -p /mnt/my_vol1
mount /dev/sdb1 /mnt/my_vol1/
#
# Afficher le nouveau Filesystem :
# ********************************
df -Th
#
# ###################################################################
#
# Ajout du disque dans fstab pour qu'il soit monté automatiquement à chaque reboot :
# ----------------------------------------------------------------------------------
#
vim /etc/fstab
# Ajouter l'entrée suivante dans le fichier fstab :
# *************************************************
/dev/sdb1 /mnt/my_vol1/ ext4 defaults,_netdev 0 0
#
# Vérifier syntaxe FSTAB correcte :
# *********************************
mount -av
# TIPS : -a = all mount point - v = verbose
#
# Explication :
# *************
Après avoir créé le filesystem osur le disque, assurez-vous d'utiliser l'option de montage _netdev dans /etc/fstab.
# --> Cela indique à l'OS que le filesystem réside sur un périphérique qui nécessite un accès réseau
# Lorsque vous utilisez l'option _netdev option, cela empêche le système de monter ces filesystem
# avant que le réseau ne soit activé.
#
#
# Par exemple:
# ************
# Pour monter le disque sdb1 sur le poiunt de montage /data
# Ajouter la ligne suivante dans /etc/fstab :
#
/dev/sdb1 /data ext4 _netdev 0 0
#
#
#
# ==============================================================================================
# Partie 4 : EN OPTION -- MISE EN PLACE SYNCHRO ENTRE UN DISQUE LOCAL ET LE NOUVEAU DISQUE
# ==============================================================================================
#
#
# Lancer la copie vers le répertoire cible (avec purge préalable) :
# -----------------------------------------------------------------
# Exemple : rsync -av --delete /DirectorySource/ /DirectoryCible/
rsync -av --delete /usr/mydatasToCopy/ /mnt/iSCSI_VOL01/
#
# Ajout de la tache de synchro des volume via RSYNC :
# ---------------------------------------------------
crontab -e
#
Pour lancer la tache à 22H00 :
#
0 22 * * * rsync -av --delete /Directory1/ /Directory2/
#
#
# ==============================================================================================
# Partie 5 : DÉPANNAGE
# ==============================================================================================
#
# Si pb d'accès au volume lors du reboot (volume system passe en Read-only) :
# ---------------------------------------------------------------------------
# Demarrer suite au pb (mettre FS en RW)
#
mount -o remount,rw /
A noter
En construction...