Servidor virtual (Moodle i altres). Manteniment

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

Partim del servidor virtual que han muntat els alumnes en el CS 2011-2012. L'objectiu és substituir la màquina 192.168.0.15 que ha estat funcionant els darrers 4-5 anys. Ara els serveis (Moodle, assistència, mantisbalmes, gestió de notes, fotovigilància, etc) correran sobre una màquina virtual, amb els avantatges que això comporta.

Instal.lació i configuració de la màquina virtual

nota: setembre de 2012. S'ha canviat la IP de la màquina virtual de 192.168.0.9 a 192.168.0.15. Com a màquina host és un Ubuntu Server 12.04 amb escriptori XFCE. S'ha instal.lat un Virtual Box. Dins d'aquest VirtualBox s'ha creat una màquina virtual amb Ubuntu Server 12.04 (sense escriptori), s'hi ha instal.lat un Apache, Mysql i la última versió del Moodle. Fins aquí han arribat els alumnes.

A partir d'aquí s'ha de configurar la màquina virtual amb més serveis, aplicacions i seguretat.

Còpies de seguretat i restauració de les màquines virtuals

La idea és fer scripts que automatitzin tot el procés d'apagada, clon, còpia de seguretat a disc remot i arrencada. La idea és fer una tasca cron i que les còpies siguin setmanals el cap de setmana. La gestió del VirtualBox en mode comanda, així com la restauració d'un clon, està explicat a:

Mapejar una unitat de xarxa en el disc NDAS

A l'institut disposem d'un disc NDAS de 500GB. En aquest disc anirem ficant els clons setmanals de la màquina virtual. En el Nautilus (o en el Thunar a xfce):

smb://administrador@192.168.0.55/vbox

En la consola:

$ smbclient -U administrador -W WORKGROUP '//192.168.0.55/vbox'

Ara creo una carpeta en la màquina local per mapejar aquesta unitat de xarxa:

$ mkdir /home/user/vbox

i edito el fitxer /etc/fstab per tal de que el recurs estigui disponible en l'inici del sistema i mapejat en la carpeta que acabo de crear. És important que el propietari de la carpeta sigui user, doncs el script que automatitzarà les còpies de la VM serà el user i no el root:

//192.168.0.55/vbox /home/user/vbox cifs username=administrador,password=pr**********,uid=user,gid=user,rw 0 0

Reiniciem. Ara ja puc comprovar com aquesta unitat està disponible en l'inici del sistema:

$ cp hola.txt /home/user/vbox
$ smbclient -W WORKGROUP -U administrador '//192.168.0.55/vbox'
Enter administrador's password: 
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.31]
smb: \> ls
  .                                   D        0  Mon Jun 11 16:40:29 2012
  ..                                  D        0  Mon Jun 11 16:41:23 2012
  hola.txt                            A        3  Mon Jun 11 16:40:29 2012

Configurar el servidor

Per al servidor host, la màquina virtual, i el mysql en la màquina virtual, fiquem el password del curs 12-13.

El primer que s'ha de fer és canviar els passwords que han ficat els alumnes. Senzillament:

$ passwd

i reiniciem

Canviar el password del root en el mysql:

$ mysql -u root -p

mysql> UPDATE mysql.user SET Password=PASSWORD('nuevacontraseña') WHERE User='root';
mysql> FLUSH PRIVILEGES;

Elimino la bd phpmyadmin i l'aplicació php phpmyadmin (que està a /etc/phpmyadmin i /usr/share/phpmyadmin)

mysql> drop database phpmyadmin

Eliminació del history en el cas de què s'hagi introduït algun password per pantalla (no és el cas, doncs la consola del mysql no compta):

$ history -c

Instal.lació i configuració del Moolde 12-13

Script/cron per automatitzar les còpies de la MV els dissabtes

copia_seg_maq_virtual_v1.sh:

#!/bin/bash
##############################  #Script by Joan Q, Còpia de seguretat de la màquina virtual del IES Jaume Balmes  ##############################    

tdate=`date +%d%m%y`
#echo $tdate

#per apagar la màquina virtual
/usr/bin/VBoxManage controlvm {7fa5f9a3-57e5-47ec-9dc0-8f81a78bd601} poweroff
sleep 4

#Per clonar una Màquina Virtual farem. Queda copiat a /home/user/VirtualBox VMs
/usr/bin/VBoxManage clonevm {7fa5f9a3-57e5-47ec-9dc0-8f81a78bd601} --name UbuntuServerMoodle_$tdate
sleep 180

#copiem la còpia de la MV al disc de xarxa (el script s'ha d'executar com a root per tenir permisos sobre la carpeta vbox)
cp -R /home/user/VirtualBox\ VMs/UbuntuServerMoodle_$tdate /home/user/vbox
sleep 600

#Per tornar a arrencar una Màquina Virtual:
/usr/bin/VBoxManage startvm {7fa5f9a3-57e5-47ec-9dc0-8f81a78bd601}
sleep 4

#Enviem la informació dels fitxers generats a wiki.joanillo.org
ls -la VirtualBox\ VMs/UbuntuServerMoodle_$tdate > /home/user/lsUbuntuServerMoodle_$tdate.txt
scp /home/user/lsUbuntuServerMoodle_$tdate.txt joan@wiki.joanillo.org:/home/joan/lsUbuntuServerMoodle.txt

#necessari el codi d'èxit per tal que no es torni a executar el script si el poso en el crontab
exit 0

I en la tasca cron fico que s'executi els dissabtes. Fixem-nos que el script l'executa l'usuari user i no el root doncs el VBoxManager l'ha d'executar el user i no el root per tal que funcioni. Així doncs, si faig cp sobre el disc de xarxa, aquest haurà de tenir permisos.

$ sudo joe /etc/crontab
* * * * 6 user /home/user/copia_seg_maq_virtual_v1.sh

Si vull que s'executi cada minut:

*/1 * * * * user /home/user/copia_seg_maq_virtual_v1.sh 
/etc/init.d/cron restart

Enterar-me de que ha anat bé (todo)

Típicament es pot configurar el servidor per rebre mail, i podria rebre un mail del resultat del procés. Així ho tinc implementat en el servidor wiki.joanillo.org. No duplicaré funcionalitats, ho faré més senzill.

Es tracta de fer un ls -la > maquines_virtuals.txt, i aquest fitxer enviar-lo per scp al servidor (sense demanar password, SSH#SSH_sense_demanar_password, funciona per scp igual que per ssh). Un cop tinc el llistat de màquines virtuals en el servidor wiki.joanillo.org, com que aquest servidor m'envia un mail cada divendres, senzillament és modificar el script que s'executa en aquest servidor per tal de què em doni la informació que m'interessa. La única cosa... la còpia de seguretat es fa el dissabte i el mail no s'envia fins divendres... per tant s'hauria de fer un petit canvi: el mail s'enviarà el diumenge.

El primer de tot és que la màquina virtual de l'institu confïi en wiki.joanillo.org per tal de què quan faig ssh o scp no demani el password. Segueixo

En el host de la màquina virtual escrivim:

$ ssh-keygen -b 4096 -t rsa
$ ssh-copy-id joan@wiki.joanillo.org

Hem utilitzat RSA en comptes de DSA. La utilitat ssh-copy-id ja ss'encarrega de fer la còpia de la clau pública a ~/.ssh/authorized_keys.

Ja estem acabant. Per notificar que la còpia de la MV s'ha fet bé, enviem al servidor wiki.joanillo.org la informació dels fitxers generats:

$ ls -la VirtualBox\ VMs/UbuntuServerMoodle_280612 > /home/user/lsUbuntuServerMoodle_280612.txt
$ scp /home/user/lsUbuntuServerMoodle_280612.txt joan@wiki.joanillo.org:/home/joan/lsUbuntuServerMoodle_280612.txt

Ara el scp es fa sense demanar password. Aquestes dues comandes s'executen al final del script que realitza la còpia de seguretat.

I finalment el script de control que envia un mail des del servidor també llegirà la informació d'aquest fitxer, i així l'administrador tindrà la notificació de què tot funciona correctament.


creat per Joan Quintana Compte, juny 2012

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines