Archivo | GNU/Linux RSS for this section

Crear cursos y migrar usuarios en Moodle 2.6.1

Cuando administramos un campus virtual no todo es mantener andando lo que ya funciona. En mi caso, este año me vi en un doble reto: Por un lado tenía que pasar de un campus corriendo en el servidor del colegio (que anda muy bien, pero que tiene un sistema de energía eléctrica y de conectividad que tiene caídas), a un campus hosteado en un servidor externo. Por otro lado, también tenía que hacer un upgrade del campus mismo, ya que la versión 2.4.1 temía que se quede vieja y pueda complicarme. Aparte, quería ver que cosas nuevas me ofrecía Moodle después de dos años.

En este artículo voy a hablar de dos de los temas que tuve que resolver:

Subir cursos

Bajo este nombre, aparece una nueva opción del menú Ajustes del sitio > Cursos. Y resulta que esto sirve para crear cursos de una manera muy similar a la que ya teníamos para crear usuarios. El principio de funcionamiento es crear un archivo tipo CSV (texto plano) con al menos tres campos obligatorios para cada curso: shortname, fullname y category. Aparte de estos hay muchas otras cosas que podríamos poner en el archivo para que nos pre-configure cada nuevo curso. No voy a explicar mucho más que esto del como se hace, porque ya está muy bien explicado en estos moodledocs:

http://docs.moodle.org/all/es/Subir_cursos

http://docs.moodle.org/all/es/A%C3%B1adiendo_un_nuevo_curso#Creaci.C3.B3n_masiva_de_cursos

Algunas consideraciones que pueden llegar a trabarnos por un rato:

  • Una vez que se elige el archivo a subir, cuidado porque el delimitador que moodle espera es punto y coma, en vez de solo coma. Hay que cambiarlo para que interprete correctamente.
  • En el archivo CSV no se pueden dejar espacios antes o después de los delimitadores porque deja de funcionar el sistema (en el caso de la creación de usuarios, eso no importaba).

Migrar usuarios

Otro de los problemas con que me encontré es que tengo más de 300 usuarios en el sistema del año pasado. No tengo intención de pasarlos a mano, no me gusta tocar cosas de la base de datos en forma directa y quería evitar todo lo posible que cada usuario tenga que volver a crearse su cuenta.

Encontré en un foro en inglés un truco tan simple como insospechado para mi. Se trata de traer a los usuarios “pegados” de un curso.

¿Cómo es esto?

Los cursos de cada año, me sirven de base para el año siguiente, de manera que el trabajo del profesor se reutiliza y mejora cada año. Para eso, hago un respaldo del curso en el campus del año anterior y lo restauro en el campus nuevo. En este año, incluso pude pasar de versión 2.4.1 a versión 2.6.1 de moodle sin contratiempos.

Como cada curso del colegio tiene de 11 a 14 cursos en el campus (uno por cada materia que se cursa), hice un respaldo de cada curso del colegio (por ejempo: 1° A) y en el respaldo incluí a los usuarios matriculados. El resto de los cursos (materias) no lo necesitaron más. Pero de esta manera, yo ya tengo como usuarios del campus a todos los alumnos que tenía el año anterior.

Consideraciones especiales de esto:

  1. Manualmente tengo que sacar a los alumnos que egresaron o se fueron por otro motivo del colegio.
  2. Tengo que dar de alta a los nuevos alumnos que ingresan (en mi caso eso lo hacen ellos mismos).
  3. Tengo que crear las cohortes y adjudicarle los alumnos según el curso en el que están (por ejemplo: Perez en 1° B, Gomez en 3° A, etc.).
  4. Si creo las cohortes en el nuevo campus con el mismo nombre que tenían en el viejo. Y lo hago antes de restaurar los cursos, no tendré que matricular nuevamente las cohortes una vez que esté restaurado este.

Espero que les sirva este artículo. Son bienvenidas las críticas y mejoras.

Por qué usar software libre en la educación

Trabajando con las PCs

Como experto en Software Libre que trabaja en educación, muchas veces me han preguntado:

¿Por qué hay que usar software libre en la escuela?

Lo cual siempre me ha parecido una pregunta difícil de contestar. La razón es que se trata de una pregunta mal formulada…

El software libre es una solución de fondo para cuatro problemas de los espacios educativos:

  1. Enseñar la libertad (y responsabilidad) en la práctica diaria;
  2. Enseñar el código del software como la expresión cultural más fuerte de nuestro tiempo;
  3. Evitar el doble discurso existente cuando se usa software trucho en la escuela, mientras se proclama que robar es malo;
  4. y no caer en el dilema moral de beneficiar a nuestros alumnos compartiendo el software vs. evitar el delito de robar software al incumplir la licencia.

Ante estos argumentos que considero contundentes… yo les pregunto:

¿Por qué usar software privativo en la educación?

Creación de un entorno de pruebas seguras

Para poder hacer pruebas sobre versiones de prueba de OpenOffice.org, me vi en la necesidad de hacerme de un espacio seguro para que estas pruebas no implicaran tener que desinstalar la versión que tengo para hacer mis trabajos.

La respuesta técnica que me pareció más simple es esta que voy a explicar y que se suele conocer como “jaula chroot”.

Algunas explicaciones previas:

chroot

Es una manera de encapsular un espacio para que funcione como si fuera un sistema operativo aparte del que tenemos. Es decir como un sistema encapsulado dentro de otro.

debootstrap

Es un comando que permite crear un sistema operativo Debian, con los mínimos componentes instalados, dentro de una jaula chroot.

Pasos a seguir

  1. Tomar privilegios de root. Será más fácil para los pasos que siguen.
    sudo su

  2. Crear un directorio que luego servirá de jaula.
    mkdir /debian/

  3. Instalar el sistema de pruebas usando el comando debootstrap. En mi caso, elegí la versión de debian llamada “sid”, porque es la más actualizada de todas. Así puedo tener un sistema con las versiones más nuevas posibles de las librerías necesarias.
    debootstrap sid /debian/ http://ftp.debian.org/debian/

  4. Tenemos que hacer que cada vez que arranque nuestro sistema operativo anfitrión, monte el sistema de archivos proc en el entorno chroot.
    echo proc-debian /debian/proc proc none 0 0 /etc/fstab >> /etc/fstab
    y solo por esta vez, lo montamos manualmente
    sudo mount /debian/proc

  5. Configuramos la red, mínimamente, para que el entorno pueda comunicarse con el exterior.
    echo 127.0.0.1 localhost $(hostname) > /debian/etc/hosts

  6. Y copiar el archivo de instalación de OpenOffice.org que descargamos previamente, en un directorio dentro de la jaula, por ejemplo:
    cp OOo_3.3.0_Linux_x86_install-deb_es.tar.gz /debian/root/

  7. Ahora podremos acceder por primera vez a nuestro entorno chroot.
    chroot /debian/ /bin/bash

  8. El prompt ya nos muestra que estamos en el raíz del sistema, de nuestro sistema encapsulado. Ahí necesitamos instalar Java para que OpenOffice.org funcione totalmente como en un entorno de producción. Para eso preparemos la lista de donde toma los paquetes el debian encapsulado.
    echo “deb http://ftp.debian.org/debian sid main contrib non-free” > /etc/apt/sources.list
    actualizar
    apt-get update
    e instalar java
    apt-get install sun-java6-jre

  9. Instalamos el OpenOffice.org de la misma manera que lo haríamos en nuestro sistema anfitrión.
    cd /root/
    tar zxvf OOo_3.3.0_Linux_x86_install-deb_es.tar.gz
    cd es/DEBS/
    dpkg -i *deb

  10. Solo por prolijidad crearemos un usuario y probaremos OpenOffice.org desde ese.
    adduser uprueba
    y luego de contestar las preguntas interactivas…
    su uprueba

  11. Para lanzar la aplicación haremos:
    /opt/openoffice.org3/program/soffice

  12. Cuando querramos salir de la jaula podremos ejecutar el comando:
    exit
    o simplemente la combinación de teclas Ctrl+d

Los chicos vienen cada vez mejor

Primera clase de computación de cuarto grado.
Profesor pide: un pendrive de mínimo 4 gb. + 1 cuaderno
Alumno pregunta: Este año … QUE nos va a enseñar?
Profesor responde: computación.
Alumno dice: con Linux o con Software Trucho?
Profesor dice: con Windows
Alumno dice: trucho? o lo compraron?

Clase siguiente: el profesor trata de hacerse el oso, y el niño vuelve a la carga: – Y? averiguó?

Profesor: vamos a usar Windows y no están las licencias.

Niño: ok. le digo a mi mamá que fotocopie los libros, que no los compre y uds . saquen del sitio: ENSEÑANZA basada en VALORES porque nos estan vendiendo pescado podrido. Mentir es decir cosas que no son. Si compran las licencias enseñan con software comercial y sino usen SL. (Si, así bien prepotente, con la misma prepotencia que se le enseñó software privativo y trucho hasta ahora). Segundos despues: BOLONQUI. Niño en dirección.

Conclusión: se sometio el tema a debate, colegio chico, decisiones rápidas. Y hoy el gabinete tiene Ubuntu, Firefox, Ooooooooooo, y muchas otras apliaciones…

En SOLAMENTE 2 semanas una comunidad de 600 chicos aprox. está utilizando SL. (Del otro ya tienen en su casa, ahora podrá ELEGIR conociendo las dos – infinitas- opciones).

No es tan difícil. Quizás pensemos que es más dificil de lo que es. El colegio tomó la decisión de utilizar SL en todos los casos en que haya herramientas que reemplacen el software privativo TRUCHO, y comprar aquello que no encuentre sustituto. En el primer relevamiento ya descartaron que haya que invertir en eso.

En las escuelas muchas veces se trabaja por DESCONOCIMIENTO con software privativo trucho.

Basta un pequeño idealista para por lo menos sembrar la idea.

Es cierto que no siempre se tiene tanto éxito ni tan rápido, pero vale la pena intentarlo, antes que vole porque é pichón es mucho más fácil.

P.D.: ¡Gracias Andrea!

Configurar red manualmente en Ubuntu/Debian

Debo reconocer que el servicio DHCP nos ha hecho la vida mucho más fácil, en especial desde que hay un servidor de DHCP en cualquier dispositivo que ande por ahí… en nuestra red.

Hoy es común que cualquier modem, access point, router wifi, etc. tenga uno funcionando.

Con esto no necesitamos hacer nada y nuestra máquina solita sale andando en la red.

Pero algunas veces necesitamos conectar la máquina manualmente. Ya sea porque no hay presente un servidor DHCP en la red o porque este nos está generando algún problema.

Suponiendo que tenemos una interfaz wifi (wlan0) en nuestra máquina, veríamos el archivo /etc/network/interfaces (el de configuración de red), de esta manera o algo parecido:

auto lo
iface lo inet loopback

Como vemos no hay ninguna referencia a nuestra wlan0, sin embargo, si vemos la lista de interfaces activas (comando ifconfig), veremos lo siguiente… o algo parecido:

lo        Link encap:Bucle local  
          Direc. inet:127.0.0.1  Másc:255.0.0.0
          Dirección inet6: ::1/128 Alcance:Anfitrión
          ACTIVO LOOPBACK FUNCIONANDO  MTU:16436  Métrica:1
          Paquetes RX:148 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:148 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0
          Bytes RX:11328 (11.3 KB)  TX bytes:11328 (11.3 KB)

wlan0     Link encap:Ethernet  direcciónHW 00:1d:92:ca:3f:ec  
          Direc. inet:192.168.1.3  Difus.:192.168.1.255  Másc:255.255.255.0
          Dirección inet6: fe80::21d:92ff:feca:3fec/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:4935 errores:34 perdidos:9167 overruns:0 frame:0
          Paquetes TX:7367 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000
          Bytes RX:3491065 (3.4 MB)  TX bytes:1151566 (1.1 MB)
          Interrupción:17 Memoria:f7d98000-f7d98100

Como vemos en la segunda línea de wlan0, tenemos asignada dirección IP (192.168.1.3… aunque puede decir cualquier otra cosa que no sea 169.254….).

Esta asignación de ip no se está haciendo mágicamente sino que la realiza un programa bastante nuevo llamado network-manager. Este programa suele interferir si queremos cambiar a una configuración de IP estática, por lo que lo desinstalaremos:

sudo aptitude remove network-manager

Paso siguiente, debemos editar el archivo de configuración, para ello ejecutaremos el comando:

sudo nano /etc/network/interfaces

Y lo dejaremos de esta manera:

auto lo
   iface lo inet loopback

auto wlan0
   iface wlan0 inet static
   pre-up iwconfig wlan0 essid MI_RED
   pre-up iwconfig wlan0 mode managed
   address 192.168.1.4
   netmask 255.255.255.0
   gateway 192.168.1.1

Algunas consideraciones para cambiar en cada caso:

  • En la primera línea estamos declarando que vamos a configurar manualmente (static)
  • Las líneas 2 y 3 activan la placa de red con los datos de la red que tenemos.
  • 192.168.1.4 es la IP que yo le pongo en mi caso, pero fijarse que esté en el rango de direcciones de la red que tenemos.
  • netmask es la máscara de red, también puede cambiar en algunos casos
  • gateway es la IP del dispositivo que sale a internet (el mismo access point, en general).

Una vez que lo tenemos así, guardamos los cambios (en la pantalla de nano dice como).

Para probar si quedó bien, podemos hacer lo siguiente:

sudo /etc/init.d/networking restart

En la misma pantalla nos mostrará si reinicia la red sin errores.

Luego probamos si salimos bien a internet:

ping -c 3 google.com

Si logra hacer los pings sin errores es que ya está todo correctamente configurado.

¿Y si solo quiero hacer que ande así por única vez?

Podés usar este comando:

sudo ifconfig wlan0 192.168.1.4 netmask 255.255.255.0

Ya tenés una IP en tu máquina. Cuidado que debe estar en el rango de IPs de tu red. Lo mismo con la máscara de red.

sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1

Con esto ya tenemos la ruta al default gateway (puerta de enlace) para que nuestra máquina sepa como salir a internet. Esa IP que puse es la del supuesto modem, access point o router de la red.

Con estos dos comandos ya está listo.

Si en vez de esto lo queremos hacer a la nueva usanza, entonces los comandos serían:

sudo ip address add 192.168.1.4/24 dev wlan0
sudo ip route add 0.0.0.0/0 via 192.168.1.4 dev wlan0

Estos dos métodos cambian la configuración de red pero se perderán cuando reinicies la computadora o los servicios de red.

Clonado de equipos con doble booteo

Hace algunos meses, tuve la necesidad de poner en funcionamiento varios laboratorios de informática con doble booteo (en algunos casos). Al pensar en los tiempos de instalación que eso demandaba me di cuenta que algo no me gustaba:

  • Instalación XP -> 1 hora
  • Instalación de programas varios -> 3 horas
  • Instalación de plugins -> 1/2 hora
  • Instalación GNU/Linux -> 1 hora
  • Instalación de programas extras y plugins -> 1/2 hora
  • Total = 6 horas por máquina (y ya teniendo descargado todo)

Las opciones que suelen tomar los administradores win, es la de hacer la instalación de a una y luego frizar las máquinas, pero esto tenía dos inconvenientes:

Así es que me lancé a buscar algún programa que me sirva para lograr lo que yo necesitaba:

  • Creé un script que me tomara todo el linux y lo volcara en otro disco para luego restaurarlo. Sirvió, pero solo sirve si no hay doble booteo. Tiene la ventaja de que no importen mucho los tamaños de los discos/particiones, mientras que los datos quepan.
  • Probé Ghost, pero no se las lleva bien con GNU/Linux. Algunos administradores me decían que habían podido clonar un Linux, pero no vi a ninguno entender el proceso en si mismo y odio hacer las cosas por arte de magia. De todas formas, en poco tiempo no entendí como hacerlo, no entendí al Ghost y no pensé jamás en dedicarle mucho tiempo a una herramienta privativa, teniendo opciones libres.
  • Probé partimage y anduvo bastante bien, aunque con el XP tenía ciertos problemas. Aparte, el proceso es bastante complejo si quisiera que los encargados de laboratorios que se quedarían trabajando (con menos experiencia que yo), pudieran hacerlo.
  • Probé dd y podía hacer todo lo necesario, pero era demasiado lento para mis expectativas.
  • Finalmente probé Clonezilla y me di cuenta que era perfecto para lo que yo quería.

Desde ese momento hasta hoy, lo comenté con muchas personas que lo empezaron a usar y con otros que me piden que escriba el proceso. Por eso tomé un tutorial que encontré en la red y lo modifiqué hasta donde me pareció que sería útil para que lo pueda usar un administrador que recién empieza con estos menesteres.

Lo adjunto en formato PDF para que sea más fácil su descarga e impresión.DRBL-Clonezilla

Con esta herramienta, he logrado cosas bastante interesantes, como clonar 40 netbooks en algo así como media hora. Creo que como muestra, sirve un botón.

Los invito a leer el tutorial, usarlo, mandarme correcciones, trucos, etc. También críticas si algo no les gusta.

A %d blogueros les gusta esto: