Installer Mandriva chez Gandi
De Wiki de la communauté Mandriva.
- savoir ouvrir une console, passer en mode super-utilisateur ou avoir installé l'outil sudo
- savoir taper des commandes et des options courantes
- avoir des notions d'anglais (très recommandé)
Sommaire |
Création et migration du serveur (ancienne version=2008.1)
Il y a quelques astuces pour vous simplifier la vie. Je pars du principe que vous avez une machine linux sous la main pour mettre en place votre serveur et que vous savez utiliser une console ...
- Editez votre fichier hosts pour y ajouter l'adresse ip et le nom de votre serveur, ce sera plus simple pour se connecter
- sudo vi /etc/hosts
- # Ajouter une ligne
- adresse_ip mon_serveur
- Utilisez l'authentification à base de clé RSA, voir l'article Ssh, il n'y a pas besoin de taper son mot de passe chaque fois
- Lorsque vous re-démarrez votre serveur, il est bon de savoir quand il est opérationnel, pour cela lancer un
- ping mon_serveur
- Lorsque vous avez des réponses, votre serveur est opérationnel ;-)
- Ctrl+C pour sortir du ping
- ssh mon_serveur pour se re-connecter
Création en 2008.1
Création du serveur chez Gandi en version 2008.1, je ne lui ai pas donné de disque pour le moment.
Connexion au serveur en ssh, login en "su -" et changement du password root (passwd)
# Avant de lancer la mise à jour, mise en place de l'authentification par cle RSA # Si vous ne changez pas le mod du dossier, cela ne fonctionne pas ! ssh mon_serveur mkdir .ssh ; chmod 700 .ssh ; exit # Copie de la cle publique cd ; scp .ssh/id_rsa.pub mon_serveur:.ssh/authorized_keys2 ; ssh mon_serveur
Mise à jour de notre 2008.1
# Mise à jour de la version 2008.1 su - # Changement du mot de passe root passwd # Suppression des médias en gardant le média gandi (indispensable) vi /etc/urpmi/urpmi.cfg # Ajout des medias 2008.1 via http://easyurpmi.zarb.org/ au choix du ftp urpmi.addmedia --distrib ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2008.1/i586 # Mise à jour urpmi --auto --auto-update # Ajout de sudo, des locales française, des pages de man et ajout de mon utilisateur à sudo urpmi --auto sudo locales-fr man-pages-fr ; visudo # Afficher tous les messages en français vi /etc/sysconfig/i18n # Le fichier est vide, copiez/collez l'ensemble des lignes suivantes LANG=fr_FR.UTF-8 LANGUAGE=fr_FR.UTF-8:fr LC_ADDRESS=fr_FR.UTF-8 LC_COLLATE=fr_FR.UTF-8 LC_CTYPE=fr_FR.UTF-8 LC_IDENTIFICATION=fr_FR.UTF-8 LC_MEASUREMENT=fr_FR.UTF-8 LC_MESSAGES=fr_FR.UTF-8 LC_MONETARY=fr_FR.UTF-8 LC_NAME=fr_FR.UTF-8 LC_NUMERIC=fr_FR.UTF-8 LC_PAPER=fr_FR.UTF-8 LC_TELEPHONE=fr_FR.UTF-8 LC_TIME=fr_FR.UTF-8 SYSFONT=lat0-16 # Reboot de la machine reboot
Pour savoir quand vous pourrez vous re-connectez, il suffit d'un "ping mon_serveur" et d'attendre que votre serveur réponde ;-)
Mise à jour vers 2009.0
# Il y a un pb avec la mise à jour futur du paquet rootcerts sudo rm -rf /etc/ssl/certs # Changement de liste de paquets sudo vi /etc/urpmi/urpmi.cfg sudo urpmi.addmedia --distrib ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2009.0/i586 sudo urpmi --auto --auto-update # Trouver les nouveau fichiers de configuration sudo find /etc -name "*rpmnew" # Si besoin de comparer utilisez diff, comme par exemple sudo diff /etc/ssh/sshd_config.rpmnew /etc/ssh/sshd_config ## Acceptation de tous les changements sauf UN sudo mv /etc/ssh/sshd_config /etc/ssh/sshd_config-2008.1 ; sudo mv /etc/ssh/sshd_config.rpmnew /etc/ssh/sshd_config sudo mv /etc/login.defs /etc/login.defs-2008.1 ; sudo mv /etc/login.defs.rpmnew /etc/login.defs sudo mv /etc/securetty /etc/securetty-2008.1 ; sudo mv /etc/securetty.rpmnew /etc/securetty sudo mv /etc/services /etc/services-2008.1 ; sudo mv /etc/services.rpmnew /etc/services sudo mv /etc/sysctl.conf /etc/sysctl.conf-2008.1 ; sudo mv /etc/sysctl.conf.rpmnew /etc/sysctl.conf # Ne pas toucher au fichier des groupes sudo mv /etc/group.rpmnew /etc/group-2009.0 # Relancer le serveur sudo reboot
Mise à jour vers 2009.1
# Changement de la liste des paquets sudo vi /etc/urpmi/urpmi.cfg sudo urpmi.addmedia --distrib ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2009.1/i586 sudo urpmi --auto --auto-update # Trouver les nouveau fichiers de configuration sudo find /etc -name "*rpmnew" sudo mv /etc/group.rpmnew /etc/group-2009.1 # Mise à l'heure française de notre serveur, ce n'est pas utile de le mettre à l'heure par NTP, c'est le serveur XEN qui est à l'heure ! sudo rm /etc/localtime ; sudo ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime # reboot sudo reboot
# Vérifiez la date et l'heure de votre serveur date # Il arrive qu'il ne soit pas à l'heure, pourquoi ? Je ne sais ! # Une solution à l'aide des paquets NTP donnée par Rudy du support technique Gandi : sudo urpmi --auto ntp sudo sysctl -w xen.independent_wallclock=1 sudo ntpdate ntp.gandi.net sudo sysctl -w xen.independent_wallclock=1 # Contrôle du résultat (Nickel, merci Rudy !) date
# Une fois que votre serveur est à l'heure, vérifiez son nom # Nom FQDN (Fully Qualified Domain Name) hostname -f # Nom de votre machine hostname -a # Si vous n'obtenez pas mon_serveur.mon_domaine.tld' à la première question # et mon_serveur à la seconde, il faut faire quelques chose # Editez le fichier de configuration de votre réseau et la table des hosts sudo vi /etc/sysconfig/network # Il faut ces deux lignes, remplacez mon_xx par vos valeurs HOSTNAME=mon_serveur DOMAINNAME=mon_domaine.tld # Vérifiez que votre fichier hosts est correct sudo vi /etc/hosts # Vous devriez trouver ce pavé (w.x.y.z étant l'adresse IP de votre serveur) # --- Gandi DHCP Script --- w.x.y.z mon_serveur.mon_domaine.tld mon_serveur # --- End --- # Si ce n'est pas le cas faites la correction nécessaire # Relancez le test et vérifiez que vous avez bien positionné le reverse DNS dans l'interface de Gandi hostname -f ; hostname -a
Mise à jour vers 2000.0
A ce jour 27 avril 2010 à 19:58 (UTC) et après contact avec le support technique de Gandi, il ne faut pas mettre à jour vers 2010.0, en effet la gestion des périphériques ayant changée, il faut faire une mise à jour du kernel ! Si cette mise à jour n'est pas faite, gros pb au re-démarrage ... Voir plus loin ! D'après mon interlocuteur, Mandriva 2010.0 arrivera nativement à la fin du mois de mai 2010.
# Migration vers la 2010.0 sudo vi /etc/urpmi/urpmi.cfg sudo urpmi.addmedia --distrib ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2010.0/i586 sudo urpmi.addmedia --distrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2010.0/i586 sudo urpmi --auto --auto-update # Il a des choix à faire, je prends le choix 1 par défaut ! # Paquets orphelins : sudo urpme --auto-orphans # Trouver les nouveau fichiers de configuration sudo find /etc -name "*rpmnew" # Pas de nouveau fichiers # reboot sudo reboot # Impossible de se connecter sur le port 22 # Arret de la machine par l'interface et relance, toujours pas de connection sur le port 22 ! # Accès par la console GANDI
La solution ici : http://www.linuxquestions.org/questions/linux-networking-3/sshd-fatal-daemon-failed-no-such-device-279664/
# Suppression du fichier sudo rm /dev/null # Recréation du device /null sudo mknod /dev/null c 1 3 ; sudo chmod a+w /dev/null # Relancer le service et vérifier que cela fonctionne sudo service sshd restart ; sudo service sshd status
Création et migration du serveur (nouvelle version=2010.0)
Pre-requit
Gestion du DNS
Vous êtes chez Gandi, donc vous avez certainement réserver un domaine.
- Il faut ajouter un enregistrement de type A avec son nom de serveur, et l'adresse IP dans l'interface de votre domaine.
- Il faut mettre en place le reverse DNS : cliquer sur l'adresse IP v4 dans le gestionnaire des interfaces Gandi et saisir le nom complet de votre serveur.
Sur son ordinateur de bureau
- Editez votre fichier hosts pour y ajouter l'adresse ip et le nom de votre serveur, ce sera plus simple pour se connecter
- sudo vim /etc/hosts
- # Ajouter une ligne
- adresse_ip mon_serveur
- Utilisez l'authentification à base de clé RSA, voir l'article Ssh, il n'y a pas besoin de taper son mot de passe chaque fois
- Petit memento des commandes à passer :
- ssh mon_serveur
- mkdir .ssh ; chmod 700 .ssh ; exit
- scp ~/.ssh/id_dsa.pub mon_serveur:.ssh/authorized_keys ; ssh mon_serveur
Astuce pour connaître l'état de son serveur
Lorsque vous re-démarrez votre serveur, il est bon de savoir quand il est opérationnel, pour cela lancer un
- ping mon_serveur
- Lorsque vous avez des réponses, votre serveur est opérationnel ;-)
- Ctrl+C pour sortir du ping
- ssh mon_serveur pour se re-connecter
Création en 2010.0
Création du serveur chez Gandi en version 2010.0, je ne lui ai pas donné de disque pour le moment.
# Se mettre en super user su -
# Je supprime tous les médias sauf celui de gandi (102 dd) vim /etc/urpmi/urpmi.cfg
# Ajout des medias 2010.0 via http://easyurpmi.zarb.org/ au choix du ftp (si vous souhaitez utiliser une autre source) urpmi.addmedia --distrib ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2010.0/i586
# Je supprime les média non-free dont je n'ai pas besoin (mettre 'ignore' au bon endroit) vi /etc/urpmi/urpmi.cfg ; urpmi.update -a
# Mise à jour urpmi --auto-update
# Ajout de sudo, des locales française, des pages de man et ajout du groupe "wheel" à SUDO et ajout de mon utilisateur au groupe "wheel" urpmi --auto sudo locales-fr man-pages-fr p7zip ; visudo ; vim /etc/group
# Afficher tous les messages en français vim /etc/sysconfig/i18n
# Le fichier est vide, copiez/collez l'ensemble des lignes suivantes LANG=fr_FR.UTF-8 LANGUAGE=fr_FR.UTF-8:fr LC_ADDRESS=fr_FR.UTF-8 LC_COLLATE=fr_FR.UTF-8 LC_CTYPE=fr_FR.UTF-8 LC_IDENTIFICATION=fr_FR.UTF-8 LC_MEASUREMENT=fr_FR.UTF-8 LC_MESSAGES=fr_FR.UTF-8 LC_MONETARY=fr_FR.UTF-8 LC_NAME=fr_FR.UTF-8 LC_NUMERIC=fr_FR.UTF-8 LC_PAPER=fr_FR.UTF-8 LC_TELEPHONE=fr_FR.UTF-8 LC_TIME=fr_FR.UTF-8 SYSFONT=lat0-16
# Reboot de la machine reboot
Migration en 2010.1
ATTENTION : Ne pas migrer en 2010.1 !
# Suppression des médias en gardant le média gandi (indispensable) sudo vim /etc/urpmi/urpmi.cfg
# Ajout des medias 2010.1 via http://easyurpmi.zarb.org/ au choix du ftp sudo urpmi.addmedia --distrib ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2010.1/i586
# Ignorer les medias non-free sudo vim /etc/urpmi/urpmi.cfg
# Mise à jour (le système demande des choix, je prends le choix '1' pour tous) sudo urpmi --auto-update
# Reboot de la machine reboot
Sécurisation
A faire (todo)
Installation des paquets de base Web, Php, Mysql, Ftp
Mon idée est d'installer à la main le plus possible de chose pour en comprendre le fonctionnement, mais il y a une autre solution : utiliser un des meta-paquetages suivants : (je vous recopie ici la doc)
sudo urpmi --auto task-?? # Avec au choix task-lamp - Metapackage for the Linux, Apache, MySQL, PHP and Perl server task-lamp-extras - Metapackage for the Linux, Apache, MySQL, PHP/Perl/Python extras task-lamp-perl - Metapackage for the Linux, Apache, MySQL, Perl server task-lamp-php - Metapackage for the Linux, Apache, MySQL, PHP server task-lamp-python - Metapackage for the Linux, Apache, MySQL, Python server task-mds - Metapackage for the Mandriva Directory Server
Préparation de l'installation des services
# Pour le serveur web, nous créons un utilisateur système apache avec aucune possibilité de login sudo adduser --system --comment "Utilisateur système pour le serveur web" --home-dir /var/www --shell /sbin/nologin apache # Si besoin édition des fichier passwd et group sudo vi /etc/passwd ; sudo vi /etc/group # Installation de tous les paquets pour nos besoins sudo urpmi --auto p7zip lighttpd php-fcgi mysql php-mysql php-mcrypt php-mbstring proftpd
Serveur Web : lighttpd et gestion du php
# Création du dossier pour les fichiers pid de processus sudo mkdir /var/run/lighttpd ; sudo chown apache:apache /var/run/lighttpd # Déplacement du dossier /var/www dans le disque de données et attribution du bon propriétaire des fichiers sudo mv /var/www /srv/xvdb ; sudo ln -s /srv/xvdb/www /var/www ; sudo chown -R apache:apache /var/www /var/www/ # Mettez à jour la configuration de lighttpd en fonction de la page Lighttpd sudo vi /etc/lighttpd/lighttpd.conf # Démarrer le serveur, tester son fonctionnement et faire en sorte qu'il démarre tout seul au boot sudo service lighttpd start ; sudo service lighttpd status ; sudo chkconfig lighttpd on # Créer une page web de test voire la page Lighttpd et changer le propriétaire sudo chown apache:apache /var/www/html/index.html
Serveur de pages web : cherokee
// Le paquet cherokee installe un utilisateur systeme apache, donc pas besoin de l'installer // Installer le serveur (le paquet rrdtool est facultatif) sudo urpmi cherokee rrdtool // Créer un dossier pour les logs sudo mkdir /var/log/cherokee ; sudo chown apache:apache /var/log/cherokee // Indiquer à cherokee où mettre les log (modifier les lignes 30 & 34) ou le faire en mode graphique sudo vi /etc/cherokee/cherokee.conf // Je préfère que le dossier 'document_root soit dans /var/www/html (le modifier dans la configuration) sudo mkdir /var/www/html cd /var/www ;sudo mv images index.html html // Déplacement du dossier /var/www dans le disque de données et attribution du bon propriétaire des fichiers (si besoin) sudo mv /var/www /srv/xvdb ; sudo ln -s /srv/xvdb/www /var/www ; sudo chown -R apache:apache /var/www // Configurer le serveur à l'aide de la commande suivante : // Il ne faut pas oublier de configurer cherokee pour qu'il utilise l'utilisateur apache pour travailler. sudo cherokee-admin -b mon_ip // Pour configurer le serveur utiliser un navigateur et pointer l'url sur http://mon_ip:9090/ // Démarrer le serveur, tester son fonctionnement et faire en sorte qu'il démarre tout seul au boot sudo service cherokee start ; sudo service cherokee status ; sudo chkconfig cherokee on
ATTENTION : Après la mise en place de ces paquets, la commande sudo urpmi --auto-update indique qu'un certain nombre de paquets sont orphelins.
C'est faux ! Ne lancer pas la commande sudo urpme --auto-orphans ! C'est le paquet cherokee qui est en cause.
Serveur de bases de données : MySQL
# Déplacement du dossier /var/lib/mysql dans le disque de données sudo mv /var/lib/mysql /srv/xvdb ; sudo ln -s /srv/xvdb/mysql /var/lib/mysql ; sudo chown mysql:mysql /var/lib/mysql # Si nous avons des applications distantes qui accèdent à la base de données, il faut mettre à jour le fichier de configuration sudo vi /etc/my.cnf # Pour permettre l'accès distant, il faut commenter la directive skip-networking, peut-être ligne 47 # Démarrer le serveur, tester son fonctionnement et faire en sorte qu'il démarre tout seul au boot sudo service mysqld start ; sudo service mysqld status ; sudo chkconfig mysqld on #<todo> Il y a plein de Warning </todo> # Sécurisation de MySQL sudo /usr/bin/mysql_secure_installation
Installation de phpMyAdmin =
Il a deux façons de faire, à vous de choisir :
- L'installer derrière votre serveur web à la page http://mon_serveur.tld/mysql/
- L'installer en sous domaine http://mysql.mon_serveur.tld
Pour la première solution, il suffit de d'installer les fichiers dans /var/www/html ; pour la seconde il faut installer les fichier dans /var/www et paramétrer lighttpd. La première ne nécessite pas ou peux de paramétrage, je choisie la seconde.
# Récupération de la dernière version de phpMyAdmin sur leur serveur http://www.phpmyadmin.net/home_page/downloads.php A jour en date du 4 octobre 2010 à 08:16 (UTC) cd /var/www ;sudo wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.7/phpMyAdmin-3.3.7-all-languages.7z # Extraction du fichier et supression de l'archive sudo 7za x phpMyAdmin-3.3.7-all-languages.7z ; sudo rm -f phpMyAdmin-3.3.7-all-languages.7z # Création du lien, du fichier de configuration et attribution du propriétaire sudo ln -s phpMyAdmin-3.3.7-all-languages mysql ; sudo cp mysql/config.sample.inc.php mysql/config.inc.php ; sudo chown -R apache:apache phpMyAdmin-3.3.7-all-languages mysql # Terminer la configuration de phpMyAdmin en vous basant sur cette page MySQL sudo vi /var/www/mysql/config.inc.php # Modifier le fichier /etc/lighttpd/lighttpd.conf pour obtenir le sous domaine, voire Lighttpd sudo vi /etc/lighttpd/lighttpd.conf // Si vous utiliser cherokee, il faut créer un vserveur pour accéder à phpMyAdmin
Post-configuration pour le serveur ftp
# Afin de ne pas permettre à nos utilisateurs de remonter dans le serveur, il faut configurer notre serveur ftp sudo vi /etc/proftpd.conf # Dé-commenter la ligne DefaultRoot, ligne 67 (indicative) # Démarrer le serveur, tester son fonctionnement et faire en sorte qu'il démarre tout seul au boot sudo service proftpd start ; sudo service proftpd status ; sudo chkconfig proftpd on
Le mail et le groupware
Le gestionnaire de courrier Postfix
# Ajout de postfix sudo urpmi postfix # Edition du fichier de configuration sudo /etc/postfix/main.cf ##### A Ajouter dans le fichier de configuration # Noms d'hote et de domaine de la machine myhostname = mon_serveur.mon_domaine.tld mydomain = mon_domaine.tld myorgin = $mydomain
Le groupware Horde
# Télécharger la dernière version; l'extraire et la supprimer cd /var/www ; sudo wget ftp://ftp.horde.org/pub/horde/horde-latest.tar.gz ; sudo tar xzvf horde-latest.tar.gz ; sudo rm -f horde-latest.tar.gz # Création du lien et changement de propriétaire sudo ln -s horde-3.3.8 horde ; sudo chown -R apache:apache horde horde-3.3.8 # Ajout d'un sous-domaine (idem mysql)

