Nicaragua es una nación centroamericana. Las crónicas históricas relatan convulsivos eventos. El sistema educativo ha pasado por diversos momentos y también ha entregado a la memoria del mundo la Cruzada Nacional de Alfabetización. El software libre, entre temas diversos, aporta interesantes herramientas para uso didáctico. Tópicos diversos de informática y otros tópicos de la coyuntura nacional e internacional podrán ser comentados a manera de aportar al entendimiento ciudadano y al bien común.
martes, 11 de agosto de 2020
lunes, 10 de agosto de 2020
miércoles, 5 de agosto de 2020
martes, 7 de julio de 2020
El modelo de tutoría virtual
El modelo de tutoría virtual (e-moderating) de Gilly Salmon, de cinco etapas describe las tareas o actividades que realizarán los docentes o personal de soporte técnico en los entornos de aprendizaje virtual (EVA).
El propósito es favorecer el aprendizaje de los estudiantes y determinar los actores y acciones en las interacciones en el EVA.
El EVA abarca los sistemas de cómputo, el software del EVA, el lenguaje de programación, los programas que ejecutan las tareas del EVA, los sistemas manejadores de bases de datos, los dispositivos de almacenamiento y servidores que alojan los archivos de los textos, documentos, tareas, presentaciones y cualquier otro documento que sea usado en el proceso de enseñanza-aprendizaje. Además, los servicios de Internet y dispositivos de interconexión de redes que hacen posible la interacción a distancia de docentes y estudiantes en un entorno de aprendizaje virtual mediado por la tecnología.
El EVA estaría más o menos descrito de esta manera:
Docente
|
Computadora
|
Estudiante–Computadora–Internet–EVA–Documentos
|
+Bases de datos
Las cinco etapas del modelo son, para el docente: 1) bienvenida y motivación, 2) familiarizar y crear puentes entre entornos culturales, sociales y de aprendizaje 3) tareas de facilitación y apoyo en el uso de materiales de aprendizaje 4) proceso facilitador 5) respuestas de apoyo.
Las cinco etapas del modelo para el personal de soporte técnico, correspondientes a las etapas del docente o estudiante son: 1) acceso al sistema 2) envío y recepción de mensajes 3) búsqueda personalización del software 4) conferenciar 5) proporcionar vínculos más allá del entorno inmediato.
Las cinco etapas descritas para el estudiante son: 1) acceso y motivación 2) socialización en línea 3) dar y recibir información 4) construcción de conocimientos 5) desarrollo.
La delimitación del entorno de acción de cada actor y de las acciones que puede realizar cada actor en el entorno delimitado propician un ambiente en el cual la tecnología por sí misma o las acciones humanas sobre los elementos tecnológicos o elementos de información almacenada o procesada en los sistemas de cómputo no son una fuente de problemas, inestabilidad o una ruidosa perturbación del EVA.
Visto de esta forma, el docente está plenamente dedicado a tareas académicas, pedagógicas, didácticas y apartado de tareas de la administración del EVA que son estrictamente tareas de soporte técnico o son tareas que deben resolver conjuntamente soporte técnico y estudiantes o soporte técnico y estudiantes autorizados por el docente a realizar cambios de configuraciones que afecten las configuraciones o parámetros establecidos por el docente, por ejemplo, fechas de entrega de tareas o modificación del periodo de aplicación de un examen entre otros parámetros que podrían ser alterados para resolver una situación problemática inmediata sin la interacción directa del docente con la administración del EVA.
Las tareas docentes de organización y gestión del EVA respecto a los cursos de los profesores está a cargo de ellos mismos – los docentes – y los estudiantes acceden a los cursos que han publicado los docentes. El docente o el estudiante no requieren o necesitan conocer o dominar toda la tecnología subyacente para poder participar en el EVA pero las fallas o obstáculos o desconocimiento de los procedimientos necesarios para la interacción en el proceso son informadas a soporte técnico quien debe esclarecer dudas y mostrar procedimientos claros a los usuarios de los sistemas de cómputo.
La interacción en los entornos de aprendizaje virtual o a distancia nace más allá del uso utilitario de la tecnología. Alguno podrá relatar experiencias de las escuelas radiofónicas o escuelas que todavía envían los materiales impresos y audios o videos a sus estudiantes para el aprendizaje desconectado y asíncrona quienes luego replican por correo ordinario al docente.
Es importante, debido a que es la única forma de interacción en entornos de aprendizaje virtualizados sin la presencia física de los actores, respetar las diferencias culturales, la correcta escritura del lenguaje (sin el uso de términos coloquiales que podrían dificultar o entorpecer la comunicación). “[…] es importante el uso del lenguaje, el cuál debe procurarse que sea lo más cordial y respetuoso, especialmente cuando se presentan conflictos entre los participantes o bien estos provienen de culturas diferentes. También el lenguaje es importante cuando se realizan experiencias entre estudiantes de culturas distintas usando lenguaje que no es el original, para cierta parte del grupo.” (Silva, 2004).
Un uso óptimo inmediato de los EVA es la automatización de la evaluación para dar mayor tiempo a la elaboración de materiales educativos contextualizados y abandonar el abuso de otras fuentes impresas o erróneas de información. También, en tanto y cuanto existan las posibilidades tecnológicas y de recursos humanos favorecer objetos de aprendizaje virtuales más refinados para favorecer el aprendizaje de los estudiantes, por ejemplo, ejercicios y simulaciones.
Referencias
Silva, Q., J. (2004). El rol moderador del tutor en la conferencia mediada por el ordenador. Santiago de Chile. Edutec Revista Electrónica de Tecnología Educativa. https://docplayer.es/7172271-M-odelo-de-tutoria-virtual-e- moderating-de- gilly - salmon-1.html
PhET (2020). HTML5 Simulaciones Interactivas PhET. https://phet.colorado.edu/es/simulations/filter?type=html&sort=alpha&view=grid
miércoles, 10 de junio de 2020
Instalación de LDAP
Introducción
El servicio LDAP proveerá el mecanismo de autenticación a los servidores de la organización.
Actualmente el mecanismo de autenticación es a través de una base de datos de autenticación externa a la base de datos de Moodle.
También se instalará el servicio DNS con el dominio login.dominio.com para ser usado en la configuración del servicio DNS.
Este documento describe la instalación de prueba sobre una máquina virtual creada usando el software VirtualBox en la estación de trabajo.
El sistema operativo instalado en la máquina virtual es Ubuntu 16.04.2 LTS.
Pre-Requisitos
Nombre DNS del servidor de autenticación: login.dominio.com
Parámetros de configuración de red:
Dirección IP: 10.0.2.10
Máscara de subred: 255.255.255.0
Puerta de enlace predeterminada: 10.0.2.1
Dirección IP del servidor DNS: 10.0.2.10
Dominio: login.dominio.com
Configuración del acceso SSH al servidor LDAP
Abra el programa VirtualBox en el anfitrión Windows
En el panel izquierdo haga clic derecho con el ratón sobre la máquina virtual nombrada login. Seleccione "Configuración..." del menú contextual emergente.
Seleccione el item "Red" a la izquierda en el cuadro "login - Configuración"
Haga clic sobre el botón "Reenvío de puertos"
En el cuadro "Reglas de reenvío de puertos" anote los siguientes valores:
Nombre: ssh
Protocolo: TCP
IP anfitrión: 127.0.0.1
Puerto anfitrión: 2210
IP invitado: 10.0.2.10
Puerto invitado: 22
Pulse el botón OK para cerrar el cuadro de diálogo "Reglas de reenvío de puertos"
Pulse sobre el OK para cerrar el cuadro de diálogo "login- Configuración".
Pulse sobre el botón Iniciar de la barra de herramientas de VirtualBox cuando una vez haya seleccionado la máquina virtual login.
Una vez haya cargado la máquina virtual, abra la aplicación usada para conectar vía ssh a sistemas remotos (PuTTY)
Diríjase -en el panel izquierdo de la aplicación, a Connection > SSH > Tunnels y anote los siguientes valores:
- Source port: 2210
- Destination: 10.0.2.10:22
Pulse sobre el botón Add una vez haya agregado los valores indicados
Diríjase al item Session -el primer item arriba en el panel izquierdo.
Escriba para "Host name (or IP address)" la dirección IP 127.0.0.1.
Anote para "Port" el valor 2210.
Pulse sobre el botón Open para abrir la conexión ssh
Anote el nombre de usuario y clave indicados cuando le sea solicitado.
Inicie sesión como root mediante sudo -s
. Escriba la clave indicada.
Instalación del servicio DNS
Instale el servicio DNS:
apt-get -y install bind9
Edite el archivo
/etc/bind/named.conf.local
para agregar la nueva zona DNS.
vim /etc/bind/named.conf.local
Agregue la configuración al final del archivo.
zone "login.dominio.com" {
type master;
file "/etc/bind/db.login.dominio.com";
};
zone "2.0.10.in-addr.arpa" {
type master;
file "/etc/bind/db.10";
};
Agregue las ACLs para los sistemas permitidos a consultar al servidor DNS configurado.
acl servidores {
10.1.124.126;
10.1.124.127;
10.1.124.103;
10.1.124.104;
10.1.124.105;
10.1.124.106;
10.1.124.107;
10.1.124.128;
};
acl red-virtual {
10.0.2.0/24;
127.0.0.1;
};
Agregue la configuración de registro de las consultas DNS.
logging {
channel query.log {
file "/var/log/query.log";
severity debug 3;
};
category queries { query.log; };
};
Cierre el archivo.
Cree el nuevo archivo
/etc/bind/db.login.dominio.com
y escriba los datos de configuración para la zona DNS login.dominio.com.
vim /etc/bind/db.login.dominio.com
;
; BIND - Archivo de datos para login.dominio.com
;
$TTL 604800
@ IN SOA login.dominio.com. root.login.dominio.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
IN A 192.168.1.10
;
@ IN NS ns.login.dominio.com.
@ IN A 10.0.2.10
@ IN AAAA ::1
ns IN A 10.0.2.10
Cierre el archivo.
Cree el archivo
/etc/bind/db.10
y escriba los datos de configuración de la zona reversa para login.dominio.com.
vim /etc/bind/db.10
;
; BIND - Datos para la zona inversa de la red local 10.0.2.XXX
;
$TTL 604800
@ IN SOA ns.login.dominio.com. root.login.dominio.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
10 IN PTR ns.login.dominio.com.
Cierre el archivo.
Cree el archivo /var/log/query.log y asigne los permisos correspondientes.
touch /var/log/query.log
chown bind /var/log/query.log
Edite el archivo /etc/apparmor.d/usr.sbin.named y añada /var/log/query.log w, al final, antes del símbolo }
vim /etc/apparmor.d/usr.sbin.named
Cierre el archivo.
Abra el archivo /etc/bind/named.conf.options y anote las opciones para la configuración creada en el archivo /etc/bind/named.conf.local y otras opciones.
vim /etc/named.conf.options
dnssec-enable yes;
dnssec-validation yes;
auth-nxdomain no; # conform to RFC1035
allow-query {
servidores;
red-virtual;
};
Cargue los cambios al perfil de AppArmor para bind.
cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser
-r
Re-inicie el servicio bind.
systemctl restart bind9
Edite el archivo /etc/network/interfaces para anotar los parámetros de red.
auto enp0s3
iface enp0s3 inet static
address 10.0.2.10
netmask 255.255.255.0
broadcast 10.0.2.255
gateway 10.0.2.2
hwaddress 08:00:27:e8:5a:5b
mtu 1500
dns-search login.dominio.com
dns-nameservers 10.0.2.10
Note
Los parámetros a colocar son los parámetros de red del servidor archivos.dominio.com. Los parámetros mostrados acá se usaron durante las pruebas.
Edite el archivo /etc/resolv.conf para anotar el DNS configurado.
nameserver 10.0.2.10
searchname login.dominio.com
Cierre el archivo.
Verifique el estado de la zona login.dominio.com.
root@login:~# rndc zonestatus login.dominio.com
type: master
files: /etc/bind/db.login.dominio.com
serial: 2
nodes: 2
last loaded: Fri, 05 May 2017 16:11:50 GMT
secure: no
dynamic: no
Instalación del servicio LDAP
Anote el nombre de hosts en el archivo /etc/hosts
127.0.1.1 login.dominio.com login
10.0.2.10 login.dominio.com login
Instale el software para el servicio LDAP:
apt-get -y install slapd ldap-utils
Establezca la contraseña administrativa.
Verifique que la información del árbol de directorios es correcta.
root@login:/etc# ldapsearch -x -LLL \
-H ldap:/// -b dc=login,dc=dominio,dc=com dn
dn: dc=login,dc=dominio,dc=com
dn: cn=admin,dc=login,dc=dominio,dc=com
root@login:~# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config
d
dn: cn=config
dn: cn=module{0},cn=config
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: olcBackend={0}mdb,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config
Cree el archivo de configuración de LDAP con el contenido mostrado abajo:
vim /etc/ldap.conf
BASE dc=login,dc=dominio,dc=com
URI ldap://10.0.2.10 ldap://10.0.2.10:389
Reconfigure el servicio slapd
dpkg-reconfigure slapd
Desplácese con la tecla "Tab" para seleccionar "No" y presione "Enter" como respuesta a la pregunta "¿Desea omitir la configuración del servidor OpenLDAP?"
Introduzca login.dominio.com
como nombre de dominio DNS. Presione "Enter" en Aceptar.
Introduzca Organización
como nombre de la organización. Enter sobre Aceptar.
Escriba la contraseña del administrador. Enter sobre Aceptar.
Escriba la confirmación de la contraseña del administrador. Enter sobre Aceptar.
Seleccione MDB como motor de bases de datos a utilizar. Enter sobre Aceptar.
Seleccione Sí para responder a la pregunta ¿Desea que se borre la base de datos cuando se purgue el paquete slapd? Enter sobre Aceptar.
Seleccione Sí para responder a la pregunta ¿Desea mover la base de datos antigua? Enter sobre Sí.
Seleccione No para responder a la pregunta ¿Desea permitir el protocolo LDAPv2? Enter sobre No.
Verifique la nueva configuración.
root@login:~# ldapsearch -x -LLL \
-H ldap:/// -b dc=login,dc=dominio,dc=com dn
dn: dc=login,dc=dominio,dc=com
dn: cn=admin,dc=login,dc=dominio,dc=com
root@login:~# ldapsearch -D "cn=admin,dc=login,dc=dominio,dc=com"
\
-x -w xxclavexx -p 389 -h 10.0.2.10 \
-b "dc=login,dc=dominio,dc=com" \
-s sub "cn=admin"
# extended LDIF
#
# LDAPv3
# base <dc=login,dc=dominio,dc=com> with scope subtree
# filter: cn=admin
# requesting: ALL
#
# admin, login.dominio.com
dn: cn=admin,dc=login,dc=dominio,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9cTZkTi9hSUt0cnlXb0cvSnBuMFRHRkZ6Qzh4Vzh3TXE=
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Agregue el esquema CORBA.
Cree un archivo schema_convert.conf en el directorio /etc/ldap.
vim /etc/ldap/schema_convert.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/ldapns.schema
include /etc/ldap/schema/pmi.schema
Cierre el archivo.
Cree el directorio ldif_output.
mkdir /etc/ldap/ldif_output
.
Indique el índice del esquema.
root@login:~# slapcat -f /etc/ldap/schema_convert.conf \
-F /etc/ldap/ldif_output -n 0 | grep corba,cn=schema
dn: cn={2}corba,cn=schema,cn=config
Realice la conversión.
slapcat -f schema_convert.conf -F ldif_output -n0 \ -H
ldap:///cn={1}corba,cn=schema,cn=config -l cn=corba.ldif
Agregue el nuevo esquema.
root@login:~# ldapadd -Q -Y EXTERNAL \
-H ldapi:/// -f /etc/ldap/schema/corba.ldif
adding new entry "cn=corba,cn=schema,cn=config"
root@login:~# ldapsearch -Q -LLL -Y EXTERNAL \
-H ldapi:/// -b cn=schema,cn=config dn
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}corba,cn=schema,cn=config
Active el registro para OpenLDAP. Para ello cree un archivo de configuración.
vim /etc/ldap/logging.ldif
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
Active la configuración de registro.
root@login:/etc/ldap# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f
logging.ldif
modifying entry "cn=config"
Gestión de usuarios y grupos
Instale las utilerías ldapscripts para administrar el servicio.
apt -y install ldapscripts
Cambiese al directorio /etc/ldapscripts.
cd /etc/ldapscripts
Respalde la configuración por defecto.
mv ldapscripts.conf ldapscripts.conf.default
mv ldapscripts.passwd ldapscripts.passwd.default
Cree un nuevo archivo de configuración.
vim /etc/ldapscripts/ldapscripts.conf
Coloque el siguiente contenido en el archivo:
SERVER=localhost
BINDDN='cn=admin,dc=login,dc=dominio,dc=com'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=login,dc=dominio,dc=com'
GSUFFIX='ou=Grupos'
USUFFIX='ou=Personas'
MSUFFIX='ou=Dispositivos'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000
LDAPSEARCHBIN="/usr/bin/ldapsearch"
LDAPADDBIN="/usr/bin/ldapadd"
LDAPDELETEBIN="/usr/bin/ldapdelete"
LDAPMODIFYBIN="/usr/bin/ldapmodify"
LDAPMODRDNBIN="/usr/bin/ldapmodrdn"
LDAPPASSWDBIN="/usr/bin/ldappasswd"
Cree el archivo ldapscript.passwd para acceso rootDN al directorio.
echo -n 'secreto' >
/etc/ldapscripts/ldapscripts.passwd
Establezca los permisos del archivo.
chmod 400 /etc/ldapscripts/ldapscripts.passwd
Cree un directorio para guardar los archivos .ldif para el trabajo diario.
mkdir /etc/ldap/archivos
Cree el archivo ldif para agregar la unidad organizacional "Grupos".
vim /etc/ldap/archivos/grupos.ldif
El contenido del archivo será:
# Crear el primer nivel de Grupos
dn: ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: organizationalunit
ou: Grupos
description: Grupos
Agregue la unidad organizacional "Grupos" al Árbol de Información del Directorio.
root@login:~# ldapadd -H ldap://10.0.2.10 -x \
-D "cn=admin,dc=login,dc=dominio,dc=com" \
-f /etc/ldap/archivos/grupos.ldif -w xxxclavexxx
adding new entry "ou=Grupos,dc=login,dc=dominio,dc=com"
Cree un archivo llamado moodle_roles.ldif para "mapear" los roles de Moodle.
vim /etc/ldap/archivos/moodles_roles.ldif
El contenido del archivo es:
# Crea manager bajo Grupos
dn: cn=manager,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: manager
objectClass: posixGroup
gidNumber: 10001
description: Administradores de Moodle
# Crea coursecreators bajo Grupos
dn: cn=coursecreator,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: coursecreator
objectClass: posixGroup
gidNumber: 10002
description: Creadores de cursos online
# Crea editingteacher bajo Grupos
dn: cn=editingteacher,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: editingteacher
objectClass: posixGroup
gidNumber: 10003
description: Profesores de cursos online
# Crea teacher bajo Grupos
dn: cn=teacher,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: teacher
objectClass: posixGroup
gidNumber: 10004
description: Profesores de cursos online sin derecho a modificaciones
# Crea student bajo Grupos
dn: cn=student,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: student
objectClass: posixGroup
gidNumber: 10005
description: Estudiantes de los cursos online
# Crea guest bajo Grupos
dn: cn=guest,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: guest
objectClass: posixGroup
gidNumber: 10006
description: Invitados
# Crea user bajo Grupos
dn: cn=user,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: user
objectClass: posixGroup
gidNumber: 10007
description: Usuarios identificados
# Crea user bajo Grupos
dn: cn=frontpage,ou=Grupos,dc=login,dc=dominio,dc=com
objectclass: top
cn: frontpage
objectClass: posixGroup
gidNumber: 10008
description: Usuarios identificados en el curso de la pagina principal
Guarde el archivo.
Cree los grupos.
root@login:~# ldapadd -H ldap://10.0.2.10 -x \
-D "cn=admin,dc=login,dc=dominio,dc=com" \
-f /etc/ldap/archivos/moodle_roles.ldif -w xxxclavexxx
adding new entry "cn=manager,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=coursecreator,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=editingteacher,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=teacher,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=student,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=guest,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=user,ou=Grupos,dc=login,dc=dominio,dc=com"
adding new entry "cn=frontpage,ou=Grupos,dc=login,dc=dominio,dc=com"
Agregue un usuario al grupo manager.
/usr/sbin/ldapadduser isaac
Agregue el usuario al grupo manager.
ldapaddusertogroup isaac manager
Establezca la clave para el nuevo usuario.
ldappasswd -H ldap://10.0.2.10 -x -D
"cn=admin,dc=login,dc=dominio,dc=com" -w xxxclavexxx \ -S
"uid=isaac,ou=Personas,dc=login,dc=dominio,dc=com"
Cierre la sesión SSH.
exit
Configuración del acceso SSH al servidor Moodle
Abra el programa VirtualBox en el anfitrión Windows
En el panel izquierdo haga clic derecho con el ratón sobre la máquina virtual nombrada moodle-archivos. Seleccione "Configuración..." del menú contextual emergente.
Seleccione el item "Red" a la izquierda en el cuadro "moodle-archivos - Configuración"
Haga clic sobre el botón "Reenvío de puertos"
En el cuadro "Reglas de reenvío de puertos" anote los siguientes valores:
Nombre: ssh
Protocolo: TCP
IP anfitrión: 127.0.0.1
Puerto anfitrión: 2211
IP invitado: 10.0.2.11
Puerto invitado: 22
Pulse el botón OK para cerrar el cuadro de diálogo "Reglas de reenvío de puertos"
Pulse sobre el OK para cerrar el cuadro de diálogo "moodle-archivos - Configuración".
Pulse sobre el botón Iniciar de la barra de herramientas de VirtualBox cuando una vez haya seleccionado la máquina virtual moodle-archivos.
Una vez haya cargado la máquina virtual, abra la aplicación usada para conectar vía ssh a sistemas remotos (PuTTY)
Diríjase -en el panel izquierdo de la aplicación, a Connection > SSH > Tunnels y anote los siguientes valores:
- Source port: 2211
- Destination: 10.0.2.11:22
Pulse sobre el botón Add una vez haya agregado los valores indicados
Diríjase al item Session -el primer item arriba en el panel izquierdo.
Escriba para "Host name (or IP address)" la dirección IP 127.0.0.1.
Anote para "Port" el valor 2211.
Pulse sobre el botón Open para abrir la conexión ssh
Anote el nombre de usuario y clave indicados cuando le sea solicitado.
Inicie sesión como root mediante sudo -s
. Escriba la clave indicada.
Configuración de la Autenticación LDAP
Instale el software para realizar la autenticación.
apt -y install libnss-ldap
Escribe el URI para el servidor LDAP.
ldap://10.0.2.10:389
Enter en Aceptar.
Escribe el nombre distintivo solicitado:
dc=login,dc=dominio,dc=com
Enter en Aceptar.
Seleccione "3" como número de versión LDAP a usar. Enter en Aceptar.
Seleccione "Sí" para "Make local root Database admin". Enter en Aceptar.
Seleccione "No" para "Does the LDAP database require login?". Enter en Aceptar.
Escriba cn=admin,dc=login,dc=dominio,dc=com
para "LDAP account for root". Enter en Aceptar.
Escriba la clave configurada para la administración del servidor LDAP. Enter en Aceptar.
Configure el perfil LDAP para NSS.
auth-client-config -t nss -p lac_ldap
Configure el sistema para utilizar autenticación LDAP.
pam-auth-update
Enter en Aceptar.
Cierre la sesión SSH.
exit
Configuración de la Autenticación LDAP en el servidor Moodle
Abra Firefox e inicie sesión administrativa en el sitio http://10.0.2.11/
En el bloque "ADMINISTRACIÓN" diríjase a: Extensiones > Identificación > Gestionar identificación
Pulse sobre el icono "Habilitar" en la línea "Usar un servidor LDAP" para activar la autenticación LDAP.
Pulse sobre "Configuración" en la línea "Usar un servidor LDAP".
En URL de host escriba ldap://10.0.2.10:389
.
En el campo "nombre distinguido" escriba: cn=admin,dc=login,dc=dominio,dc=com
En el campo Contraseña escriba la contraseña acordada.
En el campo Tipo de usuario elija posixAccount (rfc2307)
En el campo Contextos escriba ou=Personas,dc=login,dc=dominio,dc=com
En la sección Ajustes de búsqueda de usuario, item Atributo de usuario escriba uid
.
Pulse sobre el botón Guardar cambios para guardar los cambios.
Cierre la sesión administrativa en Moodle.
Inicie sesión usando el usuario isaac y la clave establecida.
Llene el formulario con los datos del perfil de usuario.
- Nombre: Jorge Isaac
- Apellidos: Dávila López
- Dirección de correo: jorgedavilalopez@gmail.com
- Mostrar correo: Ocultar a todos mi dirección de correo.
- Ciudad: Managua
- Seleccione su país: Nicaragua
- Zona horaria: Zona horaria del servidor (América/Managua)
Pulse sobre Actualizar información personal para actualizar la información personal.
Tareas pendientes
Obtener lista de usuarios de la base de datos externa de autenticación.
Generar archivo .ldif a partir de los datos obtenidos.
Crear los usuarios LDAP en el contexto apropiado.
lunes, 8 de junio de 2020
Instalación de Pacemaker y Corosync en Ubuntu 16.04 LTS
Condición: 3 máquinas virtuales
Distribución SO: Ubuntu 16.04.5 LTS
Software: Pacemaker & Corosync
Servidor: 3 con 1GB de RAM, 2 discos de 10GB cada uno y un procesador
pre-instaladas y anotación de los nombres DNS para w1, w2 y w3.
Preparación
Edición del archivo /etc/hosts para todos los nodos (10.1.120.98, 10.1.120.99 y 10.1.120.100). El contenido del archivo será:
127.0.0.1 localhost 10.1.120.98 w1 10.1.120.99 w2 10.1.120.100 w3
Configuración de la dirección IP estática para cada nodo
En el nodo w1
iface enp0s3 inet static
address 10.1.120.98
netmask 255.255.255.0
broadcast 10.1.120.255
En el nodo w2
iface enp0s3 inet static
address 10.1.120.99
netmask 255.255.255.0
broadcast 10.1.120.255
En el nodo w3
iface enp0s3 inet static
address 10.1.120.100
netmask 255.255.255.0
broadcast 10.1.120.255
Refrescar los repositorios
apt-get update
Configurar el idioma
apt-get -y install language-pack-es
dpkg-reconfigure tzdata
Editar el archivo referido y agregar la línea mostrada abajo:
vim /etc/environment
LC_ALL="es_NI.UTF-8"
Guardar el archivo
reboot
Actualizar el sistema
apt-get -y upgrade
apt-get -y dist-upgrade
reboot
Instalación de software (en todos los nodos)
apt-get -y install ntp
apt-get -y install policycoreutils python-sepolgen
apt-get -y install pacemaker
apt-get -y install pcs
apt-get -y install psmisc
apt-get -y install dlm
apt-get -y install fence-agents
apt-get -y install resource-agents
apt-get -y install ocfs2-tools
apt-get -y install drbd*
apt-get -y install haveged
Configuración de cluster
Genere y configure la clave de autenticación para Corosync
corosync-keygen
scp /etc/corosync/authkey isaac@10.1.120.99:/home/isaac
ssh isaac@10.1.120.99
cp ~/authkey /etc/corosync
chown root: /etc/corosync/authkey
exit
isaac@192.168.1.9
ssh isaac@10.1.120.100
cp ~/authkey /etc/corosync
chown root: /etc/corosync/authkey
exit
Configure Corosync en cada nodo
mv /etc/corosync/corosync.conf /etc/corosync/corosync.conf.default
vim /etc/corosync/corosync.conf
totem {
version: 2
secauth: off
cluster_name: wwwCluster
transport: udpu
interface {
ringnumber: 0
bindnetaddr: 10.1.120.101
broadcast: yes
mcastport: 5405
}
}
nodelist {
node {
ring0_addr: 10.1.120.98
nodeid: 1
}
node {
ring0_addr: 10.1.120.99
nodeid: 2
}
node {
ring0_addr: 10.1.120.100
nodeid: 3
}
}
quorum {
provider: corosync_votequorum
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
}
Guarde el archivo
Cree el archivo referido en la configuración
touch /var/log/corosync/corosync.log
chown root:adm /var/log/corosync/corosync.log
Active el inicio de los servicios
mkdir -p /etc/corosync/service.d
Cree el archivo pcmk con el siguiente contenido
vim /etc/corosync/service.d/pcmk
service {
name: pacemaker
ver: 2
}
Edite el archivo corosync (vim /etc/default/corosync ) y agregue la línea.
START="yes"
Guarde el archivo
Configuración del cluster
En todos los nodos
Establezca el parámetro “SELINUX=disabled” en todos los nodos
(vim /etc/selinux/config )
reboot
systemctl start pcsd
passwd hacluster
(Establezca la misma clave en todos los nodos)
En el nodo primario
pcs cluster --name wwwCluster --wait_for_all=1 \
auth 10.1.120.98 10.1.120.99 10.1.120.100 \
-u hacluster -p <clave>
(Use como clave la clave establecida en el paso anterior)
pcs cluster setup --force --name wwwCluster \
10.1.120.98 10.1.120.99 10.1.120.100
pcs cluster start --all
pcs cluster enable --all
pcs property set stonith-enabled=false
pcs property set cluster-recheck-interval=2min
pcs property set start-failure-is-fatal=true
pcs resource defaults resource-stickiness=100
pcs resource op defaults timeout=240s
Verifique que los nodos son miembros del cluster
corosync-cmapctl | grep members
Añadir la dirección IP del cluster
pcs resource create wwwClusterIP ocf:heartbeat:IPaddr2 \
ip=10.1.120.101 \
cidr_netmask=24 \
op monitor interval=30s
Verificar el estado del cluster
pcs status
Realizar prueba:
ping 10.1.120.101
pcs cluster stop w1
pcs cluster stop w2
pcs cluster start w1
pcs cluster stop w3
pcs cluster start w2
pcs cluster start w3
pcs status
(detener ping)
Agregar Apache y PHP (en todos los nodos)
apt-get -y install apache2 wget
apt-get -y install graphviz aspell php7.0-pspell php7.0-curl \
php7.0-gd php7.0-intl php7.0-xmlrpc php7.0-ldap \
php7.0-zip php7.0-mbstring php7.0-soap aspell-es \
ghostscript php7.0-xml unicode unoconv
apt-get -y install libapache2-mod-php php-mcrypt
Cree el archivo index.php en /var/www/html
<!DOCTYPE html>
<html>
<body>
<p>Hola mundo!</p>
<?php
echo gethostname();
?>
</body>
</html>
pcs resource create wwwSitio ocf:heartbeat:apache \
configfile=/etc/apache2/apache2.conf \
statusurl="http://localhost/server-status" \
op monitor interval=1min
pcs constraint colocation add wwwSitio with wwwClusterIP INFINITY
pcs constraint
pcs constraint order wwwClusterIP then wwwSitio
pcs constraint
pcs constraint location wwwSitio prefers 10.1.120.98=100
pcs cluster cib wwwSitio
pcs cluster cib-push wwwSitio
Visitar http://10.1.120.101/index.php
En todos los nodos
modprobe drbd
mv /etc/drbd.d/global_common.conf \
/etc/drbd.d/global_common.conf.default
Coloque el archivo /etc/drbd.d/global_common.conf en todos los nodos, el
contenido del archivo es:
global {systemctl start drbd
usage-count no;
}
common {
syncer { rate 90M; }
startup {
#become-primary-on both;
wfc-timeout 15;
degr-wfc-timeout 60;
#outdated-wfc-timeout wait-after-sb
}
options {
# cpu-mask on-no-data-accessible
}
disk {
# size on-io-error
fencing resource-and-stonith;
#
# disk-barrier disk-flushes
# disk-drain md-flushes resync-rate resync-after al-extents
# c-plan-ahead c-delay-target c-fill-target c-max-rate
# c-min-rate disk-timeout
}
net {
# protocol timeout max-epoch-size max-buffers unplug-watermark
# connect-int ping-int sndbuf-size rcvbuf-size ko-count
# cram-hmac-alg shared-secret after-sb-0pri
# after-sb-1pri after-sb-2pri always-asbp rr-conflict
# ping-timeout data-integrity-alg tcp-cork on-congestion
# congestion-fill congestion-extents csums-alg verify-alg
# use-rle
protocol C;
cram-hmac-alg sha1;
shared-secret "Sitio123..";
allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
}
En todos los nodos
dpkg-reconfigure ocfs2-tools
update-rc.d -f o2cb defaults
update-rc.d -f ocfs2 defaults
/etc/init.d/o2cb offline
/etc/init.d/o2cb load
root@w1:~# /etc/init.d/o2cb online
Setting cluster stack "o2cb": OK
Starting O2CB cluster wwwCluster: OK
reboot
o2cb_ctl -C -n wwwCluster -t cluster -a name=wwwCluster
o2cb_ctl -C -n w1 -t node -a number=0 -a ip_address=10.1.120.98 \
-a ip_port=7777 -a cluster=wwwCluster
o2cb_ctl -C -n w2 -t node -a number=1 -a ip_address=10.1.120.99 \
-a ip_port=7777 -a cluster=wwwCluster
o2cb_ctl -C -n w3 -t node -a number=2 -a ip_address=10.1.120.100 \
-a ip_port=7777 -a cluster=wwwCluster
Copie el archivo /etc/ocfs2/cluster.conf a los nodos w2 y w3
Configurar DRBD (Distributed Replicated Block Device)
Cree el archivo del recurso (en todos los nodos)
vim /etc/drbd.d/wwwClusterDisk0.res
resource wwwClusterDisk0 {
protocol C;
meta-disk internal;
device /dev/drbd0;
syncer {verify-alg sha1;}
net {
#allow-two-primaries;
cram-hmac-alg sha1;
shared-secret "Sitio123..";
}
on w1 {
disk /dev/sdb1;
address 10.1.120.98:7789;
}
on w2 {
disk /dev/sdb1;
address 10.1.120.99:7789;
}
on w3 {
disk /dev/sdb1; address 10.1.120.100:7789;}
}
Guarde el archivo.
En cada nodo
modprobe drbd
systemctl restart drbd
/etc/init.d/o2cb offline
/etc/init.d/o2cb load
root@w1:~# /etc/init.d/o2cb online
Setting cluster stack "o2cb": OK
Starting O2CB cluster wwwCluster: OK
En el nodo primario
drbdadm create-md wwwClusterDisk0
En el nodo w1
drbdadm --force primary wwwClusterDisk0
#drbdadm up wwwClusterDisk0
Si desea ver el progreso de la sincronización, ejecute:
watch -n1 cat /proc/drbd
Formatee el dispositivo
mkfs.ocfs2 -L "wwwClusterDisk0" -N 3 \
-T datafiles --cluster-name=wwwCluster \
--fs-features=unwritten,grpquota,usrquota,\
max-compat /dev/drbd0
Monte el sistema de archivos
mount -t ocfs2 /dev/drbd0 /var/www/html
Cree el archivo index.php en /var/www/html
<!DOCTYPE html>Visite http://10.1.120.101<html>
<body>
<p>Hola mundo!</p>
<?php
echo gethostname();
?>
</body>
</html>
Añadir el recurso (sistema de ficheros) al cluster wwwCluster
pcs cluster cib drbd_cfg
pcs -f drbd_cfg resource create WebData ocf:linbit:drbd \
drbd_resource=wwwClusterDisk0 op monitor interval=60s
pcs -f drbd_cfg resource master WebDataClone WebData \
master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 \
notify=true
pcs -f drbd_cfg resource show
pcs cluster cib-push drbd_cfg --config
pcs status
pcs cluster cib fs_cfg
pcs -f fs_cfg resource create WebFS Filesystem \
device="/dev/drbd0" directory="/var/www/html" fstype="ocfs2"
pcs -f fs_cfg constraint colocation add \
WebFS with WebDataClone INFINITY with-rsc-role=Master
pcs -f fs_cfg constraint order \
promote WebDataClone then start WebFS
pcs -f fs_cfg constraint colocation add wwwSitio with WebFS INFINITY
pcs -f fs_cfg constraint order WebFS then wwwSitio
pcs -f fs_cfg constraint
pcs -f fs_cfg resource show
pcs cluster cib-push fs_cfg --config
pcs status
pcs cluster cib dlm_cfg
pcs -f dlm_cfg resource create dlm ocf:pacemaker:controld \
op monitor interval=60s
pcs cluster cib-push dlm_cfg --config
pcs status
Documentación de pruebas
Prueba de falla (ping)
Verificar el estado del cluster
pcs status
Realizar prueba:
ping 10.1.120.101
pcs cluster stop w1
pcs cluster stop w2
pcs cluster start w1
pcs cluster stop w3
pcs cluster start w2
pcs cluster start w3
pcs status
(detener ping)
Prueba de falla (http://192.168.10/)
Verificar el estado del cluster
pcs status
Realizar prueba:
Visitar http://10.1.120.101/
pcs cluster stop w1
Visitar http://10.1.120.101/
pcs cluster stop w2
Visitar http://10.1.120.101/
pcs cluster start w1
Visitar http://10.1.120.101/
pcs cluster stop w3
Visitar http://10.1.120.101/
pcs cluster start w2
Visitar http://10.1.120.101/
pcs cluster start w3
Visitar http://10.1.120.101/
pcs status
lunes, 17 de febrero de 2020
Educación vial
El desembarco de Normandía
Disculpas, alguna vez pensé que el Canal de la Mancha estaba vinculado al Quijote. En la esquina superior derecha del mapa puede verse el rí...