Archivo

Archive for the ‘Proyecto integrado’ Category

Fin de proyecto, fin de curso

24 junio 2009 4 comentarios

Pues ya está…

Hace ya día y medio que presenté mi proyecto y la verdad es que la cosa me ha dejado un sabor agridulce … Por una parte estoy orgulloso de lo que he hecho en tan poco tiempo (poco más de 3 meses), pero por otra, creo que la presentación ha salido bastante cutre, y gran culpa de esto es de mi forma de expresarme y de mi falta de seriedad por momento ^^U, pero que le voy a hacer, soy “asín” XD

De cualquier forma, el proyecto integrado me ha supuesto una experiencia bastante positiva (aunque ha sido mucho el trabajo que he tenido que hacer … -.-), y no creo que me haya hecho mal en ningún sentido.

Por otra parte, también terminé hace un par de semanas las prácticas en empresa y, bueno… casi los echo en falta y todo X’D

En fin, esto ya está casi terminado y ya tengo decidido que haré ahora … Mañana iré a echar la preinscripción para el ciclo superior de desarrollo de aplicaciones y, mientras tanto, a buscar trabajo ^^U

En fin, perdonad el post off-topic XD. Seguiré informando queráis o no XD.

Anuncios

[Mini-guía] GIT, sistema de control de versiones.

23 mayo 2009 1 comentario

Gracias a la FCT (prácticas en empresa que se hace al final de los grados superiores) he aprendido a manejar este sistema de control de versiones que, la verdad, me parece bastante bueno y, a la vez, fácil de usar (o “usá”, gracias a Tugua por la observación).

Para este “tutorial” por llamarlo de alguna forma, usaremos lo siguiente:
Paquete git-core. Instalando este paquete nos será suficiente. Habrá que instalarlo tanto en el servidor como en cada uno de los clientes.

Una máquina virtual. En mi caso, tengo una máquina virtual creada con kvm que tiene un servidor web. Aprovecharé esta máquina para usarla como lugar de creación del repositorio.

Explicaré de la forma más simple posible como crear un repositorio local y como gestionarlo. Seguro que hay formas mejores de hacerlo, pero así me ha ido bien …

– En el servidor

  • Instalamos git-core
    aptitude install git-core
  • Creamos una carpeta en el lugar que queramos con el formato ****.git. En mi caso, he creado la carpeta en /var/git/ldap-php5.git

  • Movemos dentro de esa carpeta los archivos de nuestro proyecto. Yo moveré los archivos de mi proyecto integrado modificado, que lo tenia todo dentro del mismo repositorio y voy a aprovechar para separarlo.
  • Ahora crearemos dentro de esa carpeta un repositorio vacío. Nos colocamos dentro de la carpeta *****.git que habíamos creado y ejecutaremos la siguiente línea:
    git init
    Nos aparecerá el siguiente mensaje (en vuestro caso la carpeta será otra):

pantalla salida git-init

  • Añadimos los archivos.
    git add archivo/s
    Con esto añadimos los archivos que queramos a la cola de nuestro repositorio. Yo, normalmente, suelo usar “git add .“, para añadir todos los archivos que se hayan cambiado.
  • Confirmamos los archivos añadidos. Esto se hace con la instrucción commit.
  • git commit -a -m “Aquí ponemos un comentario”

    Con esta línea hacemos que los cambios añadidos con git add se den por buenos, por decirlo de alguna forma.
  • Creamos un usuario llamado “git”. Todos los cambios que hagamos los haremos con este usuario, para que no haya problema de permisos. Toda la gente que colabore en el proyecto debe saber la contraseña del usuario “git”.
  • adduser git

  • Damos al usuario “git” permisos sobre el repositorio.
    chown -R
    git:git /var/git/ldap-php5.git

Con esto ya tenemos terminado todo lo que hay que hacer en el lado del servidor. Ahora a por el cliente.

En el cliente.

  • Instalamos git-core. Como ya dije, este paquete es necesario tanto en el servidor como en el cliente.
    aptitude install git-core
  • Clonamos el repositorio del servidor.
    git clone git@192.168.1.100:/var/git/ldap-php5.git ldap-php5
  • En mi caso, la instrucción queda así. “git clone” es el comando, el “git” antes del arroba es con el usuario que nos conectamos para clonar el repositorio (eso es muy importante, los clone siempre con el usuario “git”), y lo de después de la arroba es la ip del servidor y la ruta a la carpeta donde creamos el repositorio.Con esto ya tendremos una copia exacta de todo lo que añadimos en el repositorio del servidor.

Así ya tenemos listo el repositorio local para poder hacer cambios y subirlos al repositorio remoto. Explico un poco lo básico de GIT, paso a paso.

  1. Hacemos cambios en un archivo cualquiera. Yo editaré con “nano” el footer.php de mi proyecto. Grabamos los cambios.
  2. Hacemos un “git status”. Esto nos mostrará los cambios que hemos hecho hasta ahora.
  3. git status.png

  4. Hacemos un “git add .” para añadir los cambios a la cola del repositorio local.
  5. Ahora si hacemos un “git status”, veremos que los cambios están añadidos y listos para hacer un “commit”, o lo que es lo mismo, confirmar los cambios añadidos con “git add .”
  6. git status-post-add

  7. Confirmamos los cambios. Para ello, usaremos la línea “git commit -a -m “cometario””. En mi caso:
    git commit -a -m “Cambios de prueba en footer.php”
  8. Ahora ya estamos listos para subir los cambios al repositorio remoto. Esto se hace con el siguiente comando:
    git push

Como veis, no es necesario indicar ni la ip ni ruta hacia el repositorio remoto, ya que en el archivo .git/config están guardados esos datos de cuando hicimos el “git clone”.

    Pues listo. Así funciona GIT :). Aunque antes, varias cosas que aclarar…

    • Antes de hacer cualquier cambio en nuestro repositorio local hay que actualizar los datos con los del repositorio remoto. Para ello usamos el commando “git pull”. Así que ya sabéis, antes de empezar a cambiar cosas, haced un “git pull” para descargaros los cambios que hayan podido hacer otras personas.
    • GIT guarda un log de todos los cambios hechos en el repositorio. Para ver esos cambios, podemos usar dos comandos distintos:
      • git show : muestra las diferencias entre dos versiones. Por ejemplo, vas a empezar a trabajar y descargas los cambios del repositorio con “git pull”. Si quieres ver los cambios que han ocurrido entre la versión del repositorio que tenías tu en local y la nueva después de actualizar, usamos git show y verás esos cambios, con el respectivo comentario.
      • git log -p : lo mismo que “git show”, pero muestra el log completo desde el primer cambio hasta el último.

    ¡Pues hala! Creo que con esto teneis lo suficiente como para poder hacer vuestros repositorios y no morir en el intento :D. De todas formas, si no tenéis servidor y/o preferíis colocar vuestro repositorio en internet, podeis entrar en http://github.com/ y crear allí vuestro repositorio. Hay varias opciones de pago, pero hay una que es gratuita que, normalmente, puede ser suficiente.

    Crónicas del proyecto integrado, Vol.4

    14 mayo 2009 3 comentarios

    Ya hacía tiempo que no escribía sobre el tema… ^^

    Pues la cosa de momento va aparentemente bien. Ya logré montar Moodle usando los datos del LDAP, lo mismo con MediaWiki, y he empezado a hacer la aplicación en PHP para la gestión de usuarios.

    Ahora mismo me encuentro creando una clase para todas las tareas de LDAP, y la verdad es que no es demasiado complejo, a pesar de ser la primera vez que me meto en la orientación a objetos en este lenguaje… El código queda bastante más limpio y facil de leer…

    Al final el proyecto va a incluir lo siguiente (por ahora)
    El proyecto en sí (ldap, php y blablabla…)
    Control de versiones con Git (del que ya hablaré algún dia en el blog)
    Virtualización con KVM (que ya hablé en este blog de como se montaban las máquinas y  de como ponerlas en modo bridge)

    Por lo demás…

    Bueno, la FCT la llevo bien, estoy echando más horas de las que me corresponden, pero bien XD. Me llevo tela de bien con la gente de mi empresa, me harto de reir y estoy aprendiendo un montón. Eso si, llego a mi casa reventado, y lo peor es que después de llegar a casa me tengo que poner con el proyecto T.T

    En fin, poco más, seguiremos informando ^^U

    Conexión bridge con KVM

    3 mayo 2009 2 comentarios

    Ya he conseguido poner las máquinas con kvm en modo bridge 😀 Pondré simplemente los pasos. No creo necesaria una explicación de cada uno. Ahí va:

    1º.- Ponemos lo siguiente en el archivo “interfaces”

    auto br0
    iface br0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

    En “bridge_ports” ponemos la interfaz 0principal que usamos y en address la misma ip que la interfaz principal (en mi caso, eth0)

    2º.- Modificamos el archivo /etc/kvm/kvm-ifup y lo dejamos con este contenido:

    #!/bin/sh

    ifconfig $1 0.0.0.0 promisc up
    brctl addif br0 $1
    exit 0

    3º.- Levantamos la máquina siguiente el patrón de este comando:

    kvm -hda VM/debian-server.img -net nic -net tap -m 512

    Espero que os sea de utilidad 😀

    Crónicas del proyecto integrado, vol.3

    1 abril 2009 Deja un comentario

    He decidido que con lo que he puesto de anteproyecto ya tengo un proyecto integrado bastante convincente. Lo empezaré a partir del viernes, que es cuando tengo el primer dia de proyecto integrado.

    Por lo demás, sigo con la FCT, aprendiendo bastante pero haciendo más bien poco por ahora, aunque me han dicho que después de semana santa empezaremos con el port de la aplicación de SMS de MySQL a Oracle…

    Poco más que contar al respecto…

    Crónicas del proyecto integrado – Vol. 2

    31 marzo 2009 Deja un comentario

    La FCT está sirviendo de algo, y creo que usaré lo que estoy aprendiendo para engordar un poco más si cabe el proyecto integrado.

    De momento, lo único que he aprendido así, digno de mención, son las conexiones de PHP con ORACLE y el uso de archivos de log para depurar, además del aviso de incidencias en la aplicación PHP mediante correo.

    Así pues, creo que añadiré lo de los logs y las incidencias al proyecto integrado, que creo que puede dar el cante XD

    Hago el cambio en el vol. 1…Seguiremos informando… Qué remedio…

    Crónicas del proyecto integrado – Vol. 1

    30 marzo 2009 Deja un comentario

    Pues sí, ya me toca pensar en qué y como haré el proyecto integrado de mi 2º año de administración de sistemas informáticos.

    De momento, y gracias a la proposición de mi profesor y amigo a la vez Domingo, he optado por aceptar su propuesta. De momento, el proyecto integrado constará en lo siguiente y, una vez terminado, colgaré el fruto de mi trabajo para todo aquel al que le sea útil.

    Pego integro el anteproyecto:

    <!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –>

    1º.- Motivación al proyecto integrado.


    La motivación para decidirme por este proyecto fue principalmente la variedad del mismo. Hay que tocar varias cosas relacionadas con las tres materias principales del ciclo, en mayor o menor medida, pero a un nivel bastante parecido al que nos podemos encontrar en el sector.


    Además, veo bastante útil la oportunidad de aprender a montar un sistema de autenticación distinto para sistemas en los que normalmente se usan bases de datos para ese propósito.


    2º.- Características de hardware y software necesario.


    Para el proyecto que quiero realizar, en principio, no se necesitaría de más material que uno o dos Pcs con un par de máquinas virtualizadas con XEN, que serán las que tengan los servidores durante el proceso de desarrollo.


    Más adelante, si se da la posibilidad de realizar la implantación del proyecto, estaría bien disponer de los medios suficientes como para poner el proyecto en práctica en el mismo servidor del instituto.


    En cuanto al uso de sofware y demás:


    • Sistema operativo: Linux (Debian y Ubuntu)

    • Virtualización mediante Xen

    • Servidor web Apache.

    • Servidor de directorios con OpenLDAP.

    • Editores Bluefish o Eclipse para la creación de código PHP necesario.

    • CMS, principalmente Moodle, aunque se probará con otros si da tiempo, como Joomla, Drupal, MediaWiki…

    • Servidor de correo Postfix, para el envío de incidencias.


    3º.- Objetivos.


    • Realizar una utilidad en PHP para la gestión de cuentas guardadas en el servidor LDAP.

    • Creación e implementación de un script de migración de MYSQL a LDAP. Si da tiempo, se hará el script con la misma funcionalidad para otros gestores de BD.

    • Conocer los distintos esquemas para saber cual o cuales se ajustan mejor a la hora de recabar la información necesaria para la autenticación en CMS como Joomla, Drupal, Moodle…

    • Hacer uso de los datos del servidor LDAP usados para la autenticación en los distintos CMS, y emplearlos también para la autenticación en las máquinas.

    • Configurar distintos CMS para que hagan uso del servidor LDAP para la autenticación.

    • Hacer uso de algunas librerias para añadir funcionalidad avanzada, como la creación de logs locales o el envio de incidencias a través de correo electrónico.

    Seguiremos informando…Qué remedio ^^U

    ¡Saludos!

    EDITADO