====== Opérations sur les hébergements ======
__le 10 novembre 2014 :__
FIXME La gestion des espaces d’hébergement n'est pas adaptée à la situation, si la solution actuelle fonctionne, elle est loin d'être facile à prendre en main.
Il serait bon de refaire le système en place.
===== Ajout d'un utilisateur =====
=== Utilisation de l'interface web ===
L'utilisation de l'interface web permettant de gérer les comptes des utilisateurs hébergés chez MiNET est expliquée [[wiki:hebergement:hebergement_externe:#creation|ici]].
Ce site exécute des commandes via ssh directement sur webusers.
=== Utilisation des scripts ===
Des scripts ont été écrits dans /usr/local/bin afin de permettre à un utilisateur root de configurer ou déconfigurer des comptes d'utilisateur.
* **web_adduser** permet l'ajout d'un utilisateur au serveur web qui sera configué comme il faut (ajoutez précédement l'utilisateur). Pour ajouter l'utilisateur plop, on tape la commande:
/usr/local/bin/web_auto_adduser.sh plop
Faites-le saisir et confirmer son mot de passe quand demandé...
* **web_info** donne les informations sur les répertoires des utilisateurs (taille et nombre de fichiers). Si vous utilisez all, il retourne la taille de /home et le nombre de fichiers contenus. Usage pour plop :
/usr/local/bin/web_auto_info.sh plop
/bin/web_info all
* **web_delete** permet la suppression de la configuration du site web d'un adhérent (le coupe) et sauvegarde son site dans une archive. Usage pour plop :
/usr/local/bin/web_auto_delete plop
* web_newdomain.sh **nom_adhérent** **extension** **répertoire_dans_son_www** : Permet l'ajout d'extensions de nom de domaines pour un adhérent.
Pensez aussi à lui ajouter un compte **phpmyadmin** sur [[wiki:services:sqlhosting]], comme détaillé [[wiki:hebergement:phpmyadmin | ici ]].
=== Configuration manuelle ===
Alternative au script web_adduser...
Commencez par créer un compte qui ne peut faire que du FTP. Ca donne par exemple pour toto :
adduser --shell /usr/sbin/proftpd toto
Et faites le saisir ses informations.
Dans son home, créez un répertoire www et lui rendre les droits dessus... et créez un lien symbolique dans /var/www vers son fichier www de son répertoire personnel.
Par exemple pour l'ajout de l'utilisateur toto:
mkdir /home/toto/www
chown toto /home/toto/www
cd /var/www
ln -s /home/toto/www toto
Ca y est le site est accessible :)
Il peut désormais utiliser le FTP pour modifier le contenu de son site.
Il faut encore que toto.wwwusers.minet.net pointe vers son dossier. Pour cela nous allons lui créer un virtual host :
Créez le fichier toto.wwwusers.minet.net dans /etc/apache2/sites-available
Il contiendra :
NameVirtualHost *:80
ServerAdmin webmaster@localhost
ServerName toto.wwwusers.minet.net
DocumentRoot /var/www/toto/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Et on fait un lien symbolique de **/etc/apache2/sites-enabled** vers **/etc/apache2/sites-available**, ce qui nous donne pour notre exemple :
cd /etc/apache2/sites-enabled
ln -s ../sites-available/toto.wwwusers.minet.net
Il ne reste plus qu'à lui créer une base dans **phpmyadmin** sur **sqlhosting**
===== Comment migrer WebUser =====
* 1 : Installez sur le nouveau serveur les paquets proftpd apache2 php5 php-db et éventuellement certains parmi ceux-ci : libapache2-svn libapache2-mod-python libapache2-mod-ldap-userdir libapache2-webauth
* 2 : Exécutez ce script en root sur le vieux serveur:
#!/bin/bash
mkdir /migrate
cd /migrate
tar -cvzfp home.tar.gz /home
tar -cvfzp mail.tar.gz /var/spool/mail
tar -cvfzp www.tar.gz /var/www
cp -r /etc/apache2 .
rm -r apache2/mods-available/ apache2/mods-enabled/
export UGIDLIMIT=500
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=655354)' /etc/passwd > /migrate/passwd.old
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=655354)' /etc/group > /migrate/group.old
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=655354) {print $1}' /etc/passwd | tee - | egrep -f - /etc/shadow > /migrate/shadow.old
cp /etc/gshadow /migrate/gshadow.old
Il permet de récupérer la liste des utilisateurs et toutes leurs infos, leurs /home, leurs mails, le contenu de /var/www, et la configuration apache.
Il reste à transférer tout ceci sur le serveur de destination :)
* 3 : On ressort les informations des utilisateurs sur le serveur d'arrivée dans /new :
cd /new
cat passwd.old >> /etc/passwd
# attention aux utilisateurs redondants !!!
cat group.old >> /etc/group
# de même
cat shadow.old >> /etc/shadow
cp gshadow.old /etc/gshadow
chmod 0400 /etc/gshadow
chown root:root /etc/gshadow
* 4 : Extraction des /home
cd /
tar –zxvf /new/home.tar.gz
tar –zxvf /new/mail.tar.gz
* 5 : Modification de la conf apache
cp -r /new/apache2 /etc/
* 6 : On n'oublie pas d'extraire le contenu du site web ^^
tar -zxvf /new/www.tar.gz
* 7 : Installez **proftpd** et configurez le pour que les utilisateurs soient captifs dans leurs homes.
* 8 : Importez les scripts web_* qui se trouve dans **/usr/local/bin** dans le vieux serveur. Rendez les executables seuleument par root.
* 9 : Pensez aussi à modifier l'adresse ip dans **/var/www/imagine.minet.net/webMNG** associée à webusers, sinon vous ne pourrez plus utiliser la superbe interface d'ajouts d'adhérents ;)
* 10 : Et dernier point super important: rajoutez ces lignes en fin de **/etc/sudoers**, afin que l'utilisateur web puisse effectuer sans mot de passe les commandes de gestion des utilisateurs situés dans son /home :
Cmnd_Alias WEBMNG = /home/web/mod_pass.sh, /home/web/web_auto_add_user.sh, /home/web/web_auto_delete.sh, /home/web/web_auto_info.sh, /home/web/web_auto_newdomain.sh, /home/web/web_info.sh
web ALL=(ALL) NOPASSWD: WEBMNG
Et voilà, théoriquement ça doit marcher... Sinon bonne chance !!!