Voilà une petite astuce pour prendre en compte rapidement les modifications du fichier /etc/fstab.
C’est très simple !
root~# mount -a
et voilà le tour est joué !
Il peut être intéressant et économique de monter des machines virtuelles sur un serveur. Le réseau ovh étant un peu particulier voici la procédure pour monter des vm rapidement.
# yum install kvm python-virtinst libvirt.x86_64 virt-top kernel
On y ajoute le nouveau kernel
# cat /boot/grub/grub.conf default=0 timeout=5 title linux centos6_64_kvm kernel /boot/vmlinuz-2.6.32-279.11.1.el6.x86_64 root=/dev/md1 ro initrd /boot/initramfs-2.6.32-279.11.1.el6.x86_64.img root (hd0,0) title linux centos6_64 kernel /boot/bzImage-3.2.13-xxxx-grs-ipv6-64 root=/dev/md1 ro root (hd0,0)
# rpm -Uvh http://mir01.syntis.net/epel/6/x86_64/epel-release-6-8.noarch.rpm
# reboot
# service libvirtd start # chkconfig --level 345 ksm on # chkconfig --level 345 ksmtuned on
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0 # cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BRIDGE=br0 ONBOOT=yes # cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=MYIPADRESS NETMASK=255.255.255.0 ONBOOT=yes GATEWAY=MYGATEWAY
# /usr/bin/qemu-img create -f qcow2 -o preallocation=metadata /home/vm/myimage.img 50G # virt-install --name=mymachine --ram=4096 --vcpus=1 --os-variant=rhel6 --disk=path=/home/vm/myimage.img --network=bridge=br0,type=virtio,mac=[MACOVH] --location=ftp://mir1.ovh.net/ftp.centos.org/6.5/os/x86_64 --accelerate -x "console=ttyS0"
Lors de l’installation, au moment du paramétrage réseau, il faut mettre ces informations :
ip : IP FAILOVER / 32 gateway : MONKVMSERVEUR mais avec 254 à la fin (la même gateway que notre kvm serveur) nameserver : 213.186.33.99
Sur ma Centos, j’ai besoin de paramétrer la route par défaut
# cat /etc/sysconfig/network-scripts/route-eth0 KVMSERVER .254 dev eth0 default via KVMSERVER .254 dev eth0 Have Fun !!
Deux solutions sans avoir à installer de softs supplémentaires :
/etc/init.d/qmail stop find /var/qmail/queue/mess -type f -delete find /var/qmail/queue/info -type f -delete find /var/qmail/queue/local -type f -delete find /var/qmail/queue/intd -type f -delete find /var/qmail/queue/todo -type f -delete find /var/qmail/queue/remote -type f -delete /etc/init.d/qmail start
# edit /var/qmail/control/queuelifetime file et mettre 1 seconde # /etc/init.d/qmail restart # vérifier que la queue est proche /var/qmail/bin/qmail-qstat # un fois que tout est bon remettre le bon queuelifetime (chez nous 259200) et redemarrer qmail
Comment mettre à jour son dns à partir des noms de machine (hostname) de son réseau perso ? A quelles choses près reproduire le dns à la sauce Microsoft… Attention tout ceci ne doit pas être reproduit dans un environnement d’exploitation où l’on préfère rester maitre de sa configuration
Prenons le cas où vous n’avez aucun de ces services installé sur votre serveur. Nous allons utiliser comme serveur DNS bind et le serveur dhcp de linux.
Il faut les paquets bind et dhcpd sur debian les voici :
root~# aptitude install bind9 dhcp3-server
Voici la conf auque vous devez arriver :
root~# cat dhcpd.conf # ip de votre serveur server-identifier 192.168.1.1; authoritative; #Spécifie la méthode pour se connecter au serveur dns ddns-update-style interim; #secret key la même qui sera mis dans le named.conf key mykey { algorithm hmac-md5; secret "secret_md5_hash"; }; # Cette section quelle clé utilisé pour chaque zone zone example.com. { primary 192.168.1.1; key mykey; } zone 1.168.192.in-addr.arpa. { primary 192.168.1.1; key mykey; } #Paramètres de la zone dhcp subnet 192.168.1.1 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option domain-name "blog.minitux.fr"; one-lease-per-client on; default-lease-time 14400; option routers 192.168.1.1; option domain-name-servers 192.168.1.1; }
root~# cat named.conf // La même clé que celle du dhcpd.conf key mykey { algorithm hmac-md5; secret "secret_md5_hash"; }; //Quelques options pour notre serveur options { forwarders {208.67.222.222;208.67.222.220; }; }; //Autoriser la communication entre dhcp et dns controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; 192.168.1.1; } keys { "mykey";}; }; //Les zones zone "blog.minitux.fr" { type master; notify no; file "/etc/bind/mintux.conf"; allow-update { key mykey; }; }; zone "1.168.192.in-addr.arpa"{ type master; notify no; file "/etc/bind/minitux.conf.rev"; allow-update { key mykey; }; };
root~# /etc/init.d/bind restart root~# /etc/init.d/dhcpd restart
Pour les postes Windows aucune configuration particulière…
Attention, par défaut le client dhcp de Linux n’envoie pas son hostname. Il faut pour decommenter une option dans le fichier du dhclient
send host-name "hostname"
Ou comment pouvoir se connecter en root à mysql quand on ne connait pas le mot de passe :
Voici les différentes étapes à suivre :
! Attention toutes les commandes devront être excécuter en tant que root système
# /etc/init.d/mysql stop Stopping MySQL database server: mysqld.
# mysqld_safe --skip-grant-tables & [1] 4388 Starting mysqld daemon with databases from /var/lib/mysql mysqld_safe[605]: started
# mysql -u root Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 5.0.13-Debian_1-log Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql>
mysql> use mysql; mysql> UPDATE user SET Password=PASSWORD('LE-MOT-DE-PASSE') WHERE user='root'; mysql> flush privileges; mysql> quit;
# /etc/init.d/mysql stop Stopping MySQL database server: mysqld STOPPING server from pid file /var/run/mysqld/mysqld.pid mysqld_safe[6186]: ended [1]+ Done mysqld_safe --skip-grant-tables # /etc/init.d/mysql start # mysql -u root -p
Voici le problème : Je souhaite sauvegarder mon répertoire local sur un ftp (par exemple free).
Le plus pratique aurait été rsync me direz vous ! mais il faut que rsync soit installé sur le serveur distant
J’ai trouvé un script perl, voici le lien du script :
Vous l’enregistez sur le disque dur à l’endroit de votre choix, ensuite cela s’utilise comme cela :
lftp -e "open ftpperso.free.fr ; user minitux ; mirror -n -R ton_dossier_local1 ton_dossier_distant1 ; bye"
Si vous voulez optimisez cela avec un script bash, voici un exemple :
# Script Bash # #!/bin/sh mirror='CHEMIN OU SE TROUVE LE SCRIPT MIRROR ' syncFTP () { lftp << EOF open -u 'minitux.password' ftpperso.free.fr mirror -n -R $1 $2; bye; EOF } syncFTP REP_LOCAL REP_DISTANT
Vous enregistrez ceci sous un fichier .sh avec un chmod +x et vous pourrez synchronisez votre répertoire aussi souvent que vous le souhaitez avec les fichiers qui ont changés.
Il peut être très intéressant de recevoir un email lorsque des mise à jour sont disponibles. Sur cet article nous partons du principe que l’envoi de mail fonctionne déjà.
Nous allons utiliser le package yum-cron.
# yum install yum-cron
Il faut pour cela éditer le fichier /etc/sysconfig/yum-cron et ajouter l’adresse email à MAILTO
MAILTO=email@address.com
Regardez le reste du fichier et soyez sur d’avoir désactivé les mises à jour automatique
On choisit de l’activer automatiquement et on démarre le service
chkconfig yum-cron on
service yum-cron start C'est tout !
Juste une petite astuce qui peut s’avérer bien pratique si vous avez souvent à taper votre mot de passe pour le sudo.
Grâce à ceci vous n’aurez plus à rentrer de mot de passe.
root~# sudoedit /etc/sudoers
Ajoutez ensuite ceci :
monuser ALL = NOPASSWD: ALL
Remplacer juste l’utilisateur monuser par le votre.
Enregistrez puis quittez !
Petite précision car ceci ne respecte aucune norme de sécurité … Si vous devez le faire sur des serveurs il faut choisir un programme :
monuser ALL = NOPASSWD: /usr/bin/shutdown par ex
Si vous souhaitez en savoir plus sur la commande sudo :
Voici le résultat d’un projet tout simple à mettre en place….
Le principe est simple ! Lorsque que notre base de données est modifié, les données sont reproduites sur un deuxième serveur de manière automatique.
Pour cela imaginons tout d’abord qu’une base de données soit en exploitation sur un serveur.
Ce dit « serveur » sera appelé serveur maitre.
Notre base de données sera répliqué sur un second serveur appellé serveur esclave.
Voici les étapes pour mettre en place cette réplication :
Création d’un utilisateur Mysql pour que le serveur esclave puisse accéder à la base de notre serveur maitre.
user@master:$ mysql -u root -p mysql -> GRANT REPLICATION SLAVE ON *.* TO rep_slave@192.168.1.100 -> IDENTIFIED BY 'password' WITH GRANT OPTION; mysql -> FLUSH PRIVILEGES; mysql -> quit;
Ensuite on édite le fichier de configuration de Mysql (my.cnf dans /etc/ normalement…)
avec les paramètres suivants :
server-id = 1 # à décommenter log_bin = /var/log/mysql/mysql-bin.log # où stocker les logs binaires binlog-do-db = entrepot # base que l'on souhaite répliquer binlog-ignore-db = mysql #base que l'on ne souhaite pas répliquer
Pour prendre en compte ces modifications, le service doit être redémarré.
root@master:# /etc/init.d/mysql restart
On vérrouille les tables de la base « entrepot » en mode lecture seule pour éviter les modifications éventuelles.
user@master:$ mysql -u root -p mysql -> USE entrepôt ; mysql -> FLUSH TABLES WITH READ LOCK ;
Les informations du serveur maître s’affichent telles que :
mysql -> SHOW MASTER STATUS; File Position Binlog_Do_DB Binlog_Ignore_DB mysql-bin.000012 98 entrepot mysql
Les informations File et Position seront nécessaires à la configuration du serveur esclave.
La base entrepot du serveur maître est exportée grâce à la commande suivante :
user@master:$ mysqldump -u root -p entrepot > entrepot.sql
Considérons que Mysql est installé sur le serveur esclave.
Voici les options à prendre en compte pour la configuration de ce service (dans my.cnf du serveur esclave) : server-id = 2 # numéro différent du master #log_bin = /var/log/mysql/mysql-bin.log # à commenter__
Création et importation de la base « entrepot » sur le serveur esclave.
user@slave:$ mysql -u root -p mysql -> CREATE DATABASE entrepot; mysql -> quit; user@slave:$ mysql-u root -p entrepot < entrepot.sql
Redémarrage du service Mysql pour prendre en compte les modifications de configuration.
root@slave:# /etc/init.d/mysql restart
Puis dans un shell Mysql :
mysql -> SLAVE STOP; mysql -> CHANGE MASTER TO MASTER_HOST='192.168.1.50', -> MASTER_USER='rep_slave', MASTER_PASSWORD='password', -> MASTER_LOG_FILE='MySQL-bin.000012', MASTER_LOG_POS=98; mysql -> SLAVE START;
Les tables du serveur maître doivent être déverrouillées :
mysql -> USE entrepot ; mysql -> UNLOCK TABLES ;
Le fichier de journalisation permet de savoir si la connexion s’est effectuée.
root@slave:# tail -f /var/log/mysql.log
Des informations de connexion en direction de la base maître doivent apparaître, cependant aucune erreur ne doit être présente.
Voilà c’est fini !
Pour plus d’infos il vous reste la doc mysql !