Versionamiento de Software
Versionamiento de Software
Versionamiento de Software
control de versiones
Pág. 1
Implantación de un sistema de
control de versiones
This is an unofficial translation of the GNU Free Documentation License into Spanish.
It was not published by the Free Software Foundation, and does not legally state the dis-
tribution terms for documentation that uses the GNU FDL -- only the original English
text of the GNU FDL does that. However, we hope that this translation will help Span-
ish speakers understand the GNU FDL better.
Ésta es una traducción no oficial de la GNU Free Document License a Español (Caste-
llano). No ha sido publicada por la Free Software Foundation y no establece legalmente
los términos de distribución para trabajos que usen la GFDL (sólo el texto de la versión
original en Inglés de la GFDL lo hace). Sin embargo, esperamos que esta traducción
ayude los hispanohablantes a entender mejor la GFDL. La versión original de la GFDL
esta disponible en la Free Software Foundation.
Esta traducción está basada en una de la versión 1.1 de Igor Támara y Pablo Reyes. Sin
embargo la responsabilidad de su interpretación es de Joaquín Seoane.
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 59 Temple Place, Suite
330, Boston, MA 02111-1307 USA. Se permite la copia y distribución de copias litera-
les de este documento de licencia, pero no se permiten cambios[1].
El propósito de esta Licencia es permitir que un manual, libro de texto, u otro docu-
mento escrito sea libre en el sentido de libertad: asegurar a todo el mundo la libertad
efectiva de copiarlo y redistribuirlo, con o sin modificaciones, de manera comercial o
no. En segundo término, esta Licencia proporciona al autor y al editor[2] una manera de
obtener reconocimiento por su trabajo, sin que se le considere responsable de las modi-
ficaciones realizadas por otros.
Esta Licencia es de tipo copyleft, lo que significa que los trabajos derivados del docu-
mento deben a su vez ser libres en el mismo sentido. Complementa la Licencia Pública
General de GNU, que es una licencia tipo copyleft diseñada para el software libre.
Hemos diseñado esta Licencia para usarla en manuales de software libre, ya que el soft-
ware libre necesita documentación libre: un programa libre debe venir con manuales
que ofrezcan la mismas libertades que el software. Pero esta licencia no se limita a ma-
nuales de software; puede usarse para cualquier texto, sin tener en cuenta su temática o
si se publica como libro impreso o no. Recomendamos esta licencia principalmente para
trabajos cuyo fin sea instructivo o de referencia.
Pág. 2
Implantación de un sistema de
control de versiones
Esta Licencia se aplica a cualquier manual u otro trabajo, en cualquier soporte, que con-
tenga una nota del propietario de los derechos de autor que indique que puede ser distri-
buido bajo los términos de esta Licencia. Tal nota garantiza en cualquier lugar del
mundo, sin pago de derechos y sin límite de tiempo, el uso de dicho trabajo según las
condiciones aquí estipuladas. En adelante la palabra Documento se referirá a cualquiera
de dichos manuales o trabajos. Cualquier persona es un licenciatario y será referido
como Usted. Usted acepta la licencia si copia. modifica o distribuye el trabajo de cual-
quier modo que requiera permiso según la ley de propiedad intelectual.
Una Versión Modificada del Documento significa cualquier trabajo que contenga el Do-
cumento o una porción del mismo, ya sea una copia literal o con modificaciones y/o tra-
ducciones a otro idioma.
Una Sección Secundaria es un apéndice con título o una sección preliminar del Docu-
mento que trata exclusivamente de la relación entre los autores o editores y el tema ge-
neral del Documento (o temas relacionados) pero que no contiene nada que entre direc-
tamente en dicho tema general (por ejemplo, si el Documento es en parte un texto de
matemáticas, una Sección Secundaria puede no explicar nada de matemáticas). La rela-
ción puede ser una conexión histórica con el tema o temas relacionados, o una opinión
legal, comercial, filosófica, ética o política acerca de ellos.
Las Secciones Invariantes son ciertas Secciones Secundarias cuyos títulos son designa-
dos como Secciones Invariantes en la nota que indica que el documento es liberado bajo
esta Licencia. Si una sección no entra en la definición de Secundaria, no puede desig-
narse como Invariante. El documento puede no tener Secciones Invariantes. Si el Docu-
mento no identifica las Secciones Invariantes, es que no las tiene.
Los Textos de Cubierta son ciertos pasajes cortos de texto que se listan como Textos de
Cubierta Delantera o Textos de Cubierta Trasera en la nota que indica que el documento
es liberado bajo esta Licencia. Un Texto de Cubierta Delantera puede tener como mu-
cho 5 palabras, y uno de Cubierta Trasera puede tener hasta 25 palabras.
Una copia Transparente del Documento, significa una copia para lectura en máquina,
representada en un formato cuya especificación está disponible al público en general,
apto para que los contenidos puedan ser vistos y editados directamente con editores de
texto genéricos o (para imágenes compuestas por puntos) con programas genéricos de
manipulación de imágenes o (para dibujos) con algún editor de dibujos ampliamente
disponible, y que sea adecuado como entrada para formateadores de texto o para su tra-
ducción automática a formatos adecuados para formateadores de texto. Una copia hecha
en un formato definido como Transparente, pero cuyo marcaje o ausencia de él haya
sido diseñado para impedir o dificultar modificaciones posteriores por parte de los lecto-
res no es Transparente. Un formato de imagen no es Transparente si se usa para una
cantidad de texto sustancial. Una copia que no es Transparente se denomina Opaca.
Como ejemplos de formatos adecuados para copias Transparentes están ASCII puro sin
marcaje, formato de entrada de Texinfo, formato de entrada de LaTeX, SGML o XML
Pág. 3
Implantación de un sistema de
control de versiones
usando una DTD disponible públicamente, y HTML, PostScript o PDF simples, que si-
gan los estándares y diseñados para que los modifiquen personas. Ejemplos de formatos
de imagen transparentes son PNG, XCF y JPG. Los formatos Opacos incluyen formatos
propietarios que pueden ser leídos y editados únicamente en procesadores de palabras
propietarios, SGML o XML para los cuáles las DTD y/o herramientas de procesamiento
no estén ampliamente disponibles, y HTML, PostScript o PDF generados por algunos
procesadores de palabras sólo como salida.
La Portada significa, en un libro impreso, la página de título, más las páginas siguientes
que sean necesarias para mantener legiblemente el material que esta Licencia requiere
en la portada. Para trabajos en formatos que no tienen página de portada como tal, Por-
tada significa el texto cercano a la aparición más prominente del título del trabajo, pre-
cediendo el comienzo del cuerpo del texto.
Una sección Titulada XYZ significa una parte del Documento cuyo título es precisa-
mente XYZ o contiene XYZ entre paréntesis, a continuación de texto que traduce XYZ
a otro idioma (aquí XYZ se refiere a nombres de sección específicos mencionados más
abajo, como Agradecimientos, Dedicatorias , Aprobaciones o Historia. Conservar el Tí-
tulo de tal sección cuando se modifica el Documento significa que permanece una sec-
ción Titulada XYZ según esta definición[3] .
Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comer-
cial o no, siempre y cuando esta Licencia, las notas de copyright y la nota que indica
que esta Licencia se aplica al Documento se reproduzcan en todas las copias y que usted
no añada ninguna otra condición a las expuestas en esta Licencia. Usted no puede usar
medidas técnicas para obstruir o controlar la lectura o copia posterior de las copias que
usted haga o distribuya. Sin embargo, usted puede aceptar compensación a cambio de
las copias. Si distribuye un número suficientemente grande de copias también deberá se-
guir las condiciones de la sección 3.
Usted también puede prestar copias, bajo las mismas condiciones establecidas anterior-
mente, y puede exhibir copias públicamente.
Si publica copias impresas del Documento (o copias en soportes que tengan normal-
mente cubiertas impresas) que sobrepasen las 100, y la nota de licencia del Documento
Pág. 4
Implantación de un sistema de
control de versiones
exige Textos de Cubierta, debe incluir las copias con cubiertas que lleven en forma clara
y legible todos esos Textos de Cubierta: Textos de Cubierta Delantera en la cubierta de-
lantera y Textos de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben iden-
tificarlo a Usted clara y legiblemente como editor de tales copias. La cubierta debe mos-
trar el título completo con todas las palabras igualmente prominentes y visibles. Además
puede añadir otro material en las cubiertas. Las copias con cambios limitados a las cu-
biertas, siempre que conserven el título del Documento y satisfagan estas condiciones,
pueden considerarse como copias literales.
Si los textos requeridos para la cubierta son muy voluminosos para que ajusten legible-
mente, debe colocar los primeros (tantos como sea razonable colocar) en la verdadera
cubierta y situar el resto en páginas adyacentes.
Si Usted publica o distribuye copias Opacas del Documento cuya cantidad exceda las
100, debe incluir una copia Transparente, que pueda ser leída por una máquina, con
cada copia Opaca, o bien mostrar, en cada copia Opaca, una dirección de red donde
cualquier usuario de la misma tenga acceso por medio de protocolos públicos y estanda-
rizados a una copia Transparente del Documento completa, sin material adicional. Si us-
ted hace uso de la última opción, deberá tomar las medidas necesarias, cuando comience
la distribución de las copias Opacas en cantidad, para asegurar que esta copia Transpa-
rente permanecerá accesible en el sitio establecido por lo menos un año después de la
última vez que distribuya una copia Opaca de esa edición al público (directamente o a
través de sus agentes o distribuidores).
Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Docu-
mento antes de redistribuir gran número de copias, para darles la oportunidad de que le
proporcionen una versión actualizada del Documento.
Puede copiar y distribuir una Versión Modificada del Documento bajo las condiciones
de las secciones 2 y 3 anteriores, siempre que usted libere la Versión Modificada bajo
esta misma Licencia, con la Versión Modificada haciendo el rol del Documento, por lo
tanto dando licencia de distribución y modificación de la Versión Modificada a quien-
quiera posea una copia de la misma. Además, debe hacer lo siguiente en la Versión Mo-
dificada:
Pág. 5
Implantación de un sistema de
control de versiones
Puede añadir una sección titulada Aprobaciones, siempre que contenga únicamente
aprobaciones de su Versión Modificada por otras fuentes --por ejemplo, observaciones
de peritos o que el texto ha sido aprobado por una organización como la definición ofi-
cial de un estándar.
Pág. 6
Implantación de un sistema de
control de versiones
Puede añadir un pasaje de hasta cinco palabras como Texto de Cubierta Delantera y un
pasaje de hasta 25 palabras como Texto de Cubierta Trasera en la Versión Modificada.
Una entidad solo puede añadir (o hacer que se añada) un pasaje al Texto de Cubierta
Delantera y uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubier-
tas añadidos previamente por usted o por la misma entidad que usted representa, usted
no puede añadir otro; pero puede reemplazar el anterior, con permiso explícito del editor
que agregó el texto anterior.
Con esta Licencia ni los autores ni los editores del Documento dan permiso para usar
sus nombres para publicidad ni para asegurar o implicar aprobación de cualquier Ver-
sión Modificada.
Usted puede combinar el Documento con otros documentos liberados bajo esta Licen-
cia, bajo los términos definidos en la sección 4 anterior para versiones modificadas,
siempre que incluya en la combinación todas las Secciones Invariantes de todos los do-
cumentos originales, sin modificar, listadas todas como Secciones Invariantes del tra-
bajo combinado en su nota de licencia. Así mismo debe incluir la Limitación de Garan-
tía.
El trabajo combinado necesita contener solamente una copia de esta Licencia, y puede
reemplazar varias Secciones Invariantes idénticas por una sola copia. Si hay varias Sec-
ciones Invariantes con el mismo nombre pero con contenidos diferentes, haga el título
de cada una de estas secciones único añadiéndole al final del mismo, entre paréntesis, el
nombre del autor o editor original de esa sección, si es conocido, o si no, un número
único. Haga el mismo ajuste a los títulos de sección en la lista de Secciones Invariantes
de la nota de licencia del trabajo combinado.
Puede hacer una colección que conste del Documento y de otros documentos liberados
bajo esta Licencia, y reemplazar las copias individuales de esta Licencia en todos los
documentos por una sola copia que esté incluida en la colección, siempre que siga las
reglas de esta Licencia para cada copia literal de cada uno de los documentos en cual-
quiera de los demás aspectos.
Pág. 7
Implantación de un sistema de
control de versiones
Una recopilación que conste del Documento o sus derivados y de otros documentos o
trabajos separados e independientes, en cualquier soporte de almacenamiento o distribu-
ción, se denomina un agregado si el copyright resultante de la compilación no se usa
para limitar los derechos de los usuarios de la misma más allá de lo que los de los traba-
jos individuales permiten. Cuando el Documento se incluye en un agregado, esta Licen-
cia no se aplica a otros trabajos del agregado que no sean en sí mismos derivados del
Documento.
Pág. 8
Implantación de un sistema de
control de versiones
automáticamente sus derechos bajo esa Licencia. Sin embargo, los terceros que hayan
recibido copias, o derechos, de usted bajo esta Licencia no verán terminadas sus licen-
cias, siempre que permanezcan en total conformidad con ella.
De vez en cuando la Free Software Foundation puede publicar versiones nuevas y revi-
sadas de la Licencia de Documentación Libre GNU. Tales versiones nuevas serán simi-
lares en espíritu a la presente versión, pero pueden diferir en detalles para solucionar
nuevos problemas o intereses. Vea http://www.gnu.org/copyleft/.
Para usar esta licencia en un documento que usted haya escrito, incluya una copia de la
Licencia en el documento y ponga el siguiente copyright y nota de licencia justo des-
pués de la página de título:
Copyright (c) AÑO SU NOMBRE. Se otorga permiso para copiar, distribuir y/o modifi-
car este documento bajo los términos de la Licencia de Documentación Libre de GNU,
Versión 1.2 o cualquier otra versión posterior publicada por la Free Software Founda-
tion; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta
Trasera. Una copia de la licencia está incluida en la sección titulada GNU Free Docu-
mentation License.
siendo las Secciones Invariantes LISTE SUS TÍTULOS, siendo los Textos de Cubierta
Delantera LISTAR, y siendo sus Textos de Cubierta Trasera LISTAR.
Pág. 9
Implantación de un sistema de
control de versiones
1.14 Notes
[1] Ésta es la traducción del Copyright de la Licencia, no es el Copyright de esta tra-
ducción no autorizada.
[2] La licencia original dice publisher, que es, estrictamente, quien publica, diferente
de editor, que es más bien quien prepara un texto para publicar. En castellano edi-
tor se usa para ambas cosas.
[3] En sentido estricto esta licencia parece exigir que los títulos sean exactamente
Acknowledgements, Dedications, Endorsements e History, en inglés.
Pág. 10
Implantación de un sistema de
control de versiones
Resumen
El principal problema a la hora de desarrollar proyectos de desarrollo de software es el
control de versiones del mismo, no solo cuando este es desarrollado por diferentes
personas, como por ejemplo en una comunidad de programadores o como en el caso
que nos ocupa personal de un grupo de trabajo de una empresa, sino también cuando
son provectos individuales o unipersonales debido a que cada vez las estructuraciones
y la organización de dichos proyectos son más complejas. Para poder solventar el
problema se recurre a las llamadas herramientas de control de versiones, las cuales
facilitan principalmente el almacenamiento de los elementos a gestionar, la
recuperación de cada uno de ellos y el registro histórico e identificación de cada una
de las modificaciones realizadas en las sucesivas versiones del código del proyecto.
Para empezar, vamos a hacer una breve presentación y comparativa de algunos de
los sistemas de control de versiones, aunque este no sea el objeto de la tesis nos
ayudara para poder hacer una buena elección del sistema que mejor se adapta a las
necesidades actuales y futuras de la empresa. Este proyecto en concreto trata de la
implementación de un SCV en el que la mayor dificultad será la gestión de los
permisos los cuales estarán en el dominio de la empresa ya creado y que deberán ser
gestionados por el gestor de proyectos de la empresa para poder dar de alta dichos
usuarios a determinados proyectos, hacer que la versión sea la definitiva y bloquear la
edición o modificación del mismo, además de las problemáticas técnicas de la propia
instalación del SCV con sus servidor, elección del hardware, etc.
Pág. 11
Implantación de un sistema de
control de versiones
Tabla de contenidos
1. Introducción ......................................................................................................... 13
2. Objetivos.............................................................................................................. 14
2.1 Diagrama de GANTT .................................................................................... 15
3. Requisitos ............................................................................................................ 17
4. ¿Por qué necesitamos un SCV? .......................................................................... 19
5. Objeto del análisis y breve contexto histórico ...................................................... 20
5.1 Estructuración del análisis ............................................................................ 20
5.2 Información general ...................................................................................... 20
5.3 Información técnica....................................................................................... 21
6. Infraestructura ..................................................................................................... 22
6.1 Disposición de la red de la empresa ............................................................. 22
6.2 Disposición de aplicaciones y sistemas ........................................................ 24
6.3 Seguridad ..................................................................................................... 25
6.4 Integridad de los datos ................................................................................. 26
6.5 Especificaciones del servidor ........................................................................ 27
7. Instalación del servidor y clientes ........................................................................ 30
7.1 Elección del OS para el servidor ................................................................... 30
7.2 Creación de la máquina virtual ..................................................................... 30
7.3 Instalación del OS del servidor (Debian 8.5) ................................................. 39
7.4 Elección del sistema de control de versiones elegido. .................................. 55
7.5 Instalación de subversión en el servidor SVN ............................................... 56
7.6 Instalación y configuración del dominio y los usuarios para poder acceder
desde internet ......................................................................................................... 68
7.7 Instalación de los clientes en los PC de trabajo ............................................ 68
7.8 Estructuración de proyectos en el servidor ................................................... 70
7.9 Estructuración de las carpetas de proyecto en los PC clientes ..................... 71
8. Primeras pruebas ................................................................................................ 72
8.1 Antes de comenzar a versionar código. ........................................................ 72
8.2 CVI/Labwindows. .......................................................................................... 74
8.3 LabView ........................................................................................................ 89
9. Usuarios y control de acceso ............................................................................. 101
9.1 Breve descripción ....................................................................................... 101
9.2 Necesidades a cubrir para la gestión de usuarios ....................................... 101
10. Conclusiones.................................................................................................. 102
Pág. 12
Implantación de un sistema de
control de versiones
1. Introducción
En el inicio este proyecto vino motivado por dos razones, la primera es puramente de
gestión del contenido y de proyectos software ya que actualmente todo el software, y
cuando hablamos de software me refiero a software en general, ya sea de PC, PLC,
cámaras de visión artificial, células robotizadas, servomotores, etc., está contenido en
un servidor del tipo “NAS” es una estructuración de carpetas donde cada
departamento tiene su espacio (departamento de software, control, mecánica,
hidráulica, etc.), en el caso que nos ocupa, dejamos de lado los departamentos que no
generas software, en el cual cada programador o Team Leader se encarga de
versionar de forma manual cada una de las diferentes versiones de código,
obviamente no hay un estándar definido para realizarlo y en ocasiones es un poco
caótico el hecho de tener que recuperar y comparar dos versiones diferentes de
código, por ello se decide implementar un SCV desde la propia empresa.
El segundo motivo es personal, puesto que trabajo directamente con el desarrollo de
software y al haber realizado diversas practicas durante el master utilizando diferentes
sistemas de control de versiones, en el momento que se propuso la posible
implantación de un SCV de la empresa pedí participar activamente del proyecto
interno de la empresa por tal de intentar aplicar algunos de los conocimientos
adquiridos durante el master, como puede ser la gestión y administración de sistemas
LINUX, aplicación de una solución de software libre en la empresa en la que en un
principio solo se previó solo la implantación de un servidor de SCV simples y en la cual
se está pensando actualmente en implementar algunos código en HTML+CSC para
poder hacer las operaciones cuando los programadores están desplazados al exterior.
Pág. 13
Implantación de un sistema de
control de versiones
2. Objetivos
Debido a la problemática agregada a la empresa en los últimos años que se ve
obligada manejar un gran volumen de software y diferentes versiones de los mismos,
el siguiente proyecto tiene como objeto la implementación de un sistema de
control de versiones de software libre, puesto que debido al crecimiento de
la empresa y a que se dedica a realizar maquinaria industrial automatizada
a medida requiere un sistema de control de versiones de software para
poder gestionar los cambios realizados de una manera más ágil a la actual.
Asimismo, el sistema de poder gestionar software no solo de PC en
diferentes lenguajes de programación sino también de PLC, Servomotores,
Sistemas de Visión Artificial, etc. Puesto que la empresa tiene subcontratas
y a menudo deben de reportar los cambios realizados en proyectos nuevos
como en modificaciones o mejoras de los ya existentes no solo se requiere
que el sistema sea accesible solo a personal de la empresa sino también a
mediante conexiones seguras y autenticadas permitir a dichas subcontratas
el acceso al sistema.
Cabe destacar que al ser un proyecto aplicado a una empresa real y con una actividad
económica y debido a que yo no formo parte del departamento de IT, sino que
simplemente colabora con ellos debido a que soy desarrollador de software dentro de
la empresa cabe la posibilidad de que debido a las fluctuantes cargas de trabajo y
otros factores el plan inicial se vea alterado y modificado debido a la disponibilidad del
personal.
Pág. 14
Implantación de un sistema de
control de versiones
El siguiente diagrama muestra las diferentes fases del proyecto definidas, así como las
fechas en las que deben de estar finalizadas cada una de las fases.
Pág. 15
Implantación de un sistema de
control de versiones
Pág. 16
Implantación de un sistema de
control de versiones
3. Requisitos
Debido al entorno meramente industrial que tiene la empresa y a dedicar su mayor
actividad a la fabricación de maquinaria industrial a medida, aun teniendo un
departamento de IT dedicado a ello, esto hace que el sistema de control de versiones
debe ser apto para poder versionar diferentes tipos de código escritos en diferentes
lenguajes y de diferentes plataformas y marcas, por ello debemos hacer que el
sistema sea lo más amplio posible y este debe poder controlar versiones de:
Software de Servomotores.
Siemens (Starter).
Allen Bradley.
Rexroth (Indradrive).
Pág. 17
Implantación de un sistema de
control de versiones
Pág. 18
Implantación de un sistema de
control de versiones
Pág. 19
Implantación de un sistema de
control de versiones
Para poder proceder a un análisis correcto y coherente debemos conocer los objetivos
del proyecto, así como un poco de contexto histórico de la evolución del software y la
necesidad que surge para necesitar utilizar control de versiones.
El uso de herramientas de control de versionado es esencial para una gestión del
cambio eficaz. En la actualidad, la gestión de versiones se apoya siempre en
herramientas CASE que administran el almacenamiento de cada versión del sistema y
controlan el acceso a los diferentes componentes del mismo. A pesar de que las
herramientas difieren obviamente en funcionalidades de interfaz, la base de todas
estas herramientas de soporte es el control de la gestión de versiones, por ello a partir
de los años 70 se empezaron a desarrollar herramientas con este fin, por este motivo
el primer paso antes de ponernos a implementar un sistema de control de versiones es
hacer un breve análisis de los que se encuentran actualmente en el mercado para
poder elegir el más adecuado para los requisitos de la empresa.
Pág. 20
Implantación de un sistema de
control de versiones
Pág. 21
Implantación de un sistema de
control de versiones
6. Infraestructura
Pág. 22
Implantación de un sistema de
control de versiones
Para entrar en más detalle presentamos un pequeño esquema del Switch Core de
Mapro. Es un equipo de Layer 3, lo que nos permite es dividir la red en diferentes
WLAN y tenerla sí segmentada para garantizar la calidad de la misma.
Como ya se comenta, en caso de parada, el segundo Switch toma el control gracias a
la implantación de un segundo equipo con las mismas características y a la
configuración de la alta disponibilidad de estos.
Pág. 23
Implantación de un sistema de
control de versiones
Pág. 24
Implantación de un sistema de
control de versiones
SQL 2008:
- SAP (DEV, QUA,
PRD)
SQL 2003:
- Reports
- TeamCenter
7.3 Seguridad
El firewall nos permite tener control de los puertos que tenemos públicos en internet y
el consiguiente filtro de estos, por lo tanto, estos no hacen de sistema IDS ya que el
log que nos facilita nos permite realizar un análisis para poder detectar posibles
ataques.
Pág. 25
Implantación de un sistema de
control de versiones
En este momento no hemos aplicado filtro de navegación web, pero los firewalls se
pueden ocupar de esta tarea.
II. Física
La seguridad física del CPD está controlada a nuestro sistema de control de acceso
biométrico con huella dactilar de la marca Supreme. Este sistema permite
autenticación con huella dactilar, tarjeta magnética y/o con código numérico. En caso
de fallo del sistema biométrico la puesta de entrada dispone de una cerradura con
llave, de la que tiene copia todos los integrantes del departamento de IT y gerencia.
Está implantada una política de copias de seguridad de los datos de carácter personal
junto con el resto de datos (ingeniería, servidores, etc.…) de la empresa, en base al
programa BackupExec 12 de Symantec.
Pág. 26
Implantación de un sistema de
control de versiones
Esto implica que en una operación de copia incremental sólo son volcados aquellos
archivos que hayan sufrido cambios desde la última copia de seguridad del mismo
nivel o de un nivel superior.
Existen cintas para las copias diarias y semanales que se reutilizan mensualmente,
guardándose la copia mensual de los últimos, como mínimo, 3 meses.
I. Hardware
Marca: HP
Modelo: ProLiant DL360G6
CPU: 8CPU a 2.4GHz Intel® Xeon® E5530
Pág. 27
Implantación de un sistema de
control de versiones
II. Virtualización.
Para poder entender un poco mejor por qué se virtual izan los servidores
(debido a que nosotros trabajaremos con un servidor virtual) se hace una breve
descripción a lo que es la virtualización.
Virtualización de redes
Virtualización de aplicaciones
Virtualización de escritorios
Pág. 28
Implantación de un sistema de
control de versiones
Pág. 29
Implantación de un sistema de
control de versiones
Lo primero que se debe tener en cuanta antes de crear un servidor virtual es que
sistema operativo correrá bajo el SCV, puesto que es importante para poder definir los
recursos de hardware físico asignados a la creación del servidor. Puesto que este
como ya se ha descrito se instalará utilizando un hyperservidor/administrador de
virtualización llamado VMWare vSphere 5.5 Essential Plus, en el que se creará una
máquina virtual con los requisitos necesarios para poder hospedar un SCV con
subversión en el que se instalará Debian server 8.5 sin interface gráfica para reducir
consumo de recursos innecesarios. Se elige esta opción debido a que es una LTS y a
la estabilidad que Debian proporcionara a nuestro sistema, además de que el coste en
recursos no es muy elevado.
Pág. 30
Implantación de un sistema de
control de versiones
Pág. 31
Implantación de un sistema de
control de versiones
Después desde el submenú que aparece al pulsar el botón derecho del mouse
elegimos la opción de agregar una nueva máquina virtual.
Pág. 32
Implantación de un sistema de
control de versiones
Ilustración 13 New VM
Pág. 33
Implantación de un sistema de
control de versiones
Ilustración 15 configurando la VM
Pág. 34
Implantación de un sistema de
control de versiones
Pág. 35
Implantación de un sistema de
control de versiones
Pág. 36
Implantación de un sistema de
control de versiones
Pág. 37
Implantación de un sistema de
control de versiones
Ilustración 20 resumen de la VM
Pág. 38
Implantación de un sistema de
control de versiones
Pág. 39
Implantación de un sistema de
control de versiones
Pág. 40
Implantación de un sistema de
control de versiones
Ilustración 24 arrancando la VM
III. La máquina virtual arranca y nos da las opciones de que la imagen .iso tiene al
arrancar.
Pág. 41
Implantación de un sistema de
control de versiones
Pág. 42
Implantación de un sistema de
control de versiones
Localización
Ilustración 27 localización
Seguimos con todos los pasos guiados por el instalador del OS para configurar y dejar
el sistema listo para empezar el set up del mismo.
Progreso de la instalación
Pág. 43
Implantación de un sistema de
control de versiones
Pág. 44
Implantación de un sistema de
control de versiones
Dirección IP de host
Pág. 45
Implantación de un sistema de
control de versiones
Pág. 46
Implantación de un sistema de
control de versiones
Pág. 47
Implantación de un sistema de
control de versiones
Pág. 48
Implantación de un sistema de
control de versiones
Pág. 49
Implantación de un sistema de
control de versiones
Pág. 50
Implantación de un sistema de
control de versiones
Pág. 51
Implantación de un sistema de
control de versiones
Pág. 52
Implantación de un sistema de
control de versiones
Log in completo con PUTTY desde el cual podemos acceder a todos los
servicios y configuraciones del servidor. PuTTY es un sistema de
conexión vía SSH que nos permite abrir un terminal remoto conectado
hacia el servidor, básicamente funciona como un cliente que se conecta
en remoto, esto nos permite no necesariamente esta físicamente en la
localización del servidor.
Pág. 53
Implantación de un sistema de
control de versiones
También utilizamos otro software que se llama WinSCP que nos permite abrir fia
FTP/SSH archivos del servidor en remoto, esto nos ayuda a poder editar si es
necesario o a poder realizar alguna copia directa de la estructura de ficheros que
disponemos.
Pág. 54
Implantación de un sistema de
control de versiones
Después de los análisis previos se decide por instalar un SCV bajo subversion
utilizando el cliente TortoiseSVN debido a la cantidad de herramientas y a la facilidad
de integración con los sistemas que se utilizan para el desarrollo de aplicaciones
software. Además, verificamos el nombre del servidor para saber que realemente
estamos en el servidor que queremos
Pág. 55
Implantación de un sistema de
control de versiones
Apache2
Para instalar apache 2 hay que seguir unos cuantos pasos ya que debe
instalarse y configurarse adecuadamente para poder conseguir nuestro
propósito.
a) Actualizar repositorio
Pág. 56
Implantación de un sistema de
control de versiones
b) Instalar apache2
Pág. 57
Implantación de un sistema de
control de versiones
Pág. 58
Implantación de un sistema de
control de versiones
Pág. 59
Implantación de un sistema de
control de versiones
De esta manera y con esos pasos sencillos tenemos el servidor APACHE2 V2.4 ya
instalado y operativo.
Pág. 60
Implantación de un sistema de
control de versiones
Subversion.
Para instalar subversión + la librería de apache2 en debian es necesario
realizar estas dos operaciones:
Pág. 61
Implantación de un sistema de
control de versiones
Ilustración 58
Una vez creado los repositorios damos permisos a los usuarios para poder
acceder a ellos
Ilustración 59
Pág. 62
Implantación de un sistema de
control de versiones
Ilustración 60
Pág. 63
Implantación de un sistema de
control de versiones
Ilustración 61
Pág. 64
Implantación de un sistema de
control de versiones
Ilustración 62
Pág. 65
Implantación de un sistema de
control de versiones
Ilustración 63
Ilustración 64
Ilustración 65
Pág. 66
Implantación de un sistema de
control de versiones
Para hacer que la seguridad vaya por SSH creamos las llaves y damos de altas
los usuarios
Ilustración 66
Pág. 67
Implantación de un sistema de
control de versiones
Ilustración 67
II. Doble clic en el icono para poder instalarlo
Pág. 68
Implantación de un sistema de
control de versiones
Ilustración 69
IV. Instalando
Ilustración 70
Pág. 69
Implantación de un sistema de
control de versiones
- Proyecto (MXXXX-000X)
- Software PC
- Software de producción
- Recuperadores de resultados
- Editores de parámetros
- Software PLC
- Programa de PLC
- Pantallas HMI
- Servomotores
Pág. 70
Implantación de un sistema de
control de versiones
- Devices
- Camaras Visión
- Prensas
- Lectores de código de barras
- Amplificadores Células (par o fuerza)
- Impresoras
- Marcadoras Lacers
Software de PC
- Software PC
- Software de producción
- Recuperadores de resultados
- Editores de parámetro
- Devices
- Camaras Visión
- Lectores de código de barras
- Amplificadores Células (par o fuerza)
- Impresoras
Software de PLC
- Software PLC
- Programa de PLC
- Pantallas HMI
- Servomotores
- Devices
- Camaras Visión
- Prensas
- Lectores de código de barras
- Amplificadores Células (par o fuerza)
- Impresoras
- Marcadoras Laser
Pág. 71
Implantación de un sistema de
control de versiones
8. Primeras pruebas
Una vez se ha instalado el servidor de empresa para poder albergar el sistema de
control de versiones y todas las versiones de cada uno de los proyectos procedemos a
hacer un primer Bach de pruebas para comprobar la funcionalidad del mismo con cada
una de las plataformas con las que se trabaja en la empresa tanto a nivel de PC como
de PLC.
Para empezar el primer uso, debemos configurar el servidor en el cual vamos a hacer
el versionado del código, para ello una vez instalado el paquete de “TORTOISESVN”
en el PC de trabajo, vamos a ir al menú inicio (En estos momentos el 100% de plantilla
que trabaja con Windows debido a la compatibilidad con el software de programación
de los diversos dispositivos) y seleccionamos “TortoiseSVN Repository Browser” del
menú “TortoiseSVN”, ver ilustración 64.
Pág. 72
Implantación de un sistema de
control de versiones
Una vez clicado, se abre la siguiente ventana, ver ilustración 65. en la cual debemos
dar la ruta del servidor donde vamos a colocar nuestro versionado de código.
Una vez insertado la ruta/ULR del servidor se abre la siguiente venta en la cual
tenemos al servidor con las carpetas que hay creadas y que tenemos acceso ver
ilustración 66.
Una vez realizados estos sencillos pasos ya podemos empezar a trabajar con nuestro
servidor y sus diferentes directorios y opciones.
Pág. 73
Implantación de un sistema de
control de versiones
9.2 CVI/Labwindows.
La programación con labwindows está basada en “ANSI C” y orientada a la adquisición
y tratamiento de datos ya sean analógicos o digital además de tener las librerías
estándares de ANSI C tiene librerías propias, el entorno de programación el IDE ya
cuenta con un comparador de código, aunque es bastante manual ya que hay que
saber exactamente que módulos se han modificado para poder hacer la comparación
es muy útil por las funciones que tiene, el objetivo de tener este tipo de software en un
SCV no solo es para tener control de las versiones y copias seguras sino también el
de automatizar los procesos de comparación de código de esta manera no será
necesario conocer los cambios que han sufrido los códigos ya que el SCV ya se
encargará de hacernos saber que módulos han cambiado.
Pág. 74
Implantación de un sistema de
control de versiones
Introducimos el nombre de nuestra carpeta, (en este caso es el nombre interno del
proyecto), ver ilustración 68
Una vez tenemos el nombre de la carpeta se abre la siguiente ventana en la que nos
permite introducir una descripción, en este caso al ser la carpeta del proyecto,
introducimos la información relevante al proyecto ver ilustración 69.
Pág. 75
Implantación de un sistema de
control de versiones
Para subir la primera versión de nuestro código debemos seguir los siguientes pasos:
I. Navegamos a la carpeta local donde tenemos nuestro software, una vez que lo
tenemos a punto para poder hacer la primera versión de código.
Pág. 76
Implantación de un sistema de
control de versiones
II. Hacemos clic derecho sobre la carpeta. Y seleccionamos la opción “import” del
submenú de tortoisesvn
Una vez seleccionada nos vuelve a aparecer la una ventana para poder insertar un
descriptivo de la acción que realizamos
Pág. 77
Implantación de un sistema de
control de versiones
Ilustración 82
Ilustración 83
Pág. 78
Implantación de un sistema de
control de versiones
Pág. 79
Implantación de un sistema de
control de versiones
Una vez lo tenemos linkado aparecerá un icono de directorio indicando que esta
linkado y que los códigos son iguales.
Pág. 80
Implantación de un sistema de
control de versiones
2. Modificaciones en el código.
Modificamos el código en la carpeta de trabajo local y aparecerá un icono de
color rojo en la carpeta del proyecto. Esto indica que hemos modificado el
código.
Si tenemos ficheros de texto no solo nos indica el cambio en el código sino también en
todos los ficheros modificados, indicándolo con un icono de color rojo.
Pág. 81
Implantación de un sistema de
control de versiones
Una vez verificadas las diferencias se abre una ventana que nos indica que ficheros
fueron modificados.
Pág. 82
Implantación de un sistema de
control de versiones
Seleccionando uno de los ficheros modificados obtenemos otra ventana que nos indica
los cambios realizados en este caso se utiliza la herramienta de tortoiseSVN la cual
nos permite hacer verificaciones de los ficheros de texto plano que no son de código,
pero también podemos utilizar la herramienta de nuestro propio IDE para hacer las
comparaciones.
Pág. 83
Implantación de un sistema de
control de versiones
Para poder utilizar la aplicación de comparación de nuestro IDE debemos hacer una
pequeña configuración.
Para ello abrimos las opciones de configuración de tortoiseSVN, vamos al menú inicio
“TortoiseSVN””Settings”.
Pág. 84
Implantación de un sistema de
control de versiones
Dentro de settings damos la ruta del software que queremos que realice las
comparaciones:
- Vamos a Diff Viewer
- En la primera opción seleccionamos el software que queremos que realice las
comparaciones de código.
Pág. 85
Implantación de un sistema de
control de versiones
Para comparar utilizamos la propia herramienta del software utilizado, en este caso
navegando al menú correspondiente podemos comparar el código.
Pág. 86
Implantación de un sistema de
control de versiones
1. Re-versionado.
Una vez hechas las modificaciones deseadas en el código y estamos preparados para
hacer un nuevo reléase para poder cargar una versión de nuestro código, para ello
solo debemos realizar un sencillo paso que es navegar al submenú “SVN Commit” de
tortoise
Pág. 87
Implantación de un sistema de
control de versiones
2. Vista web.
Una de las opciones de las que disponemos es la visualización web de las diferentes
versiones en este caso puede realizarse ya que es texto plano y por ello podemos
hacer la comparativa web, en el caso de que sea programación esquemática o en
diagrama de contactos (PLC) esta opción queda relegada y lo óptimo es realizarlo con
el propio software de comparación.
Pág. 88
Implantación de un sistema de
control de versiones
9.3 LabView
Pág. 89
Implantación de un sistema de
control de versiones
Introducimos el nombre de nuestra carpeta, (en este caso es el nombre interno del
proyecto), ver imagen 5.3.2.
Una vez tenemos el nombre de la carpeta se abre la siguiente ventana en la que nos
permite introducir una descripción, en este caso al ser la carpeta del proyecto,
introducimos la información relevante al proyecto ver imagen 5.3.2.
Pág. 90
Implantación de un sistema de
control de versiones
Para subir la primera versión de nuestro código debemos seguir los siguientes pasos:
I. Navegamos a la carpeta local donde tenemos nuestro software, una vez que lo
tenemos a punto para poder hacer la primera versión de código.
Pág. 91
Implantación de un sistema de
control de versiones
II. Hacemos clic derecho sobre la carpeta. Y seleccionamos la opción “import” del
submenú de tortoisesvn
Una vez seleccionada nos vuelve a aparecer la una ventana para poder insertar un
descriptivo de la acción que realizamos
Pág. 92
Implantación de un sistema de
control de versiones
Pág. 93
Implantación de un sistema de
control de versiones
Una vez lo tenemos linkado aparecerá un icono de directorio indicando que esta
linkado y que los códigos son iguales.
Pág. 94
Implantación de un sistema de
control de versiones
Si tenemos ficheros de texto no solo nos indica el cambio en el código sino también en
todos los ficheros modificados, indicándolo con un icono de color rojo.
Pág. 95
Implantación de un sistema de
control de versiones
Una vez verificadas las diferencias se abre una ventana que nos indica que ficheros
fueron modificados.
Pág. 96
Implantación de un sistema de
control de versiones
Seleccionando uno de los ficheros modificados obtenemos otra ventana que nos indica
los cambios realizados en este caso se utiliza la herramienta de tortoiseSVN la cual
nos permite hacer verificaciones de los ficheros de texto plano que no son de código,
pero también podemos utilizar la herramienta de nuestro propio IDE para hacer las
comparaciones como este sistema no dispone de programación en teto plano sino que
es en diagrama de bloques y flujo de datos debemos utilizar directamente el IDE.
Para poder utilizar la aplicación de comparación de nuestro IDE debemos hacer una
pequeña configuración.
Para ello abrimos las opciones de configuración de tortoiseSVN, vamos al menú inicio
“TortoiseSVN””Settings”.
Dentro de settings damos la ruta del software que queremos que realice las
comparaciones:
- Vamos a Diff Viewer
- En la primera opción seleccionamos el software que queremos que realice las
comparaciones de código
Pág. 97
Implantación de un sistema de
control de versiones
Pág. 98
Implantación de un sistema de
control de versiones
Pág. 99
Implantación de un sistema de
control de versiones
1. Re-versionado.
Una vez hechas las modificaciones deseadas en el código y estamos preparados para
hacer un nuevo reléase para poder cargar una versión de nuestro código, para ello
solo debemos realizar un sencillo paso que es navegar al submenú “SVN Commit” de
tortoise.
Pág. 100
Implantación de un sistema de
control de versiones
Uno de los requisitos es el de hacer una buena gestión de usuarios para poder
garantizar el control de accesos y la integridad de cada una de las copias de
seguridad. Es este caso lo que se pretende es poder dar acceso a determinados
usuarios sean personal interno de la empresa o subcontratados durante determinadas
fases de los proyectos, luego deberán reestructurarse para poder dar o quitar el
acceso a determinados usuarios, en este caso se considera que al iniciar el proyecto
se designara a una persona encargada de asignar los accesos y el nivel que cada uno
deberá tener.
Independientemente de los usuarios que debemos dar de alta o baja en nuestro
sistema teniendo en cuenta que se tendrá acceso web a nuestro servidor lo que so
que hay que buscar es una herramienta adecuada a las necesidades que debemos
cubrir.
Para poder asegurar las comunicaciones lo que se va a realizar es un encriptado en
SSH además de hacer que los usuarios que estén dados de altas en el SCV dependan
del propio dominio de mapro en el cual se cuentan con toda la información de cada
empleado además de usuario y contraseña, para así poder gestionar de una forma
más automatizada quien tiene permisos para hacer que y cuando.
Pág. 101
Implantación de un sistema de
control de versiones
10. Conclusiones.
Una vez realizada la instalación y el setup del SCV teniendo en cuenta que es un
proyecto interno de una empresa real y que por determinadas causas la disponibilidad
de recursos que lo hizo retrasar, aun así para mí ha sino un reto técnico ya que no
pertenezco dentro de la empresa al departamento de IT esto me permitió más allá de
la implementación del SCV realizar un proyecto de IT desde la parte de gestión del
propio proyecto, definiendo especificaciones técnicas, aso como haciendo y definiendo
las baterías de pruebas realizadas, control de costes, personal, recursos, etc. Por
tanto, sin haber realizado algunas de las asignaturas del master, mas allá de las
puramente técnicas, como son la de gestión de proyectos, no hubiese podido
emprender este camino, lo que queda en el tintero es que el sistema actualmente no
es completamente funcional, el trabajo que me queda ahora es el de redefinir las
prioridades del proyecto, reestructurar el timing inicial y seguir el resto de la
implantación como gestor del mismo.
En estos momentos el sistema es funcional para ciertos usuarios dados de alta
directamente en el sistema (debían) y no es accesible desde el exterior.
A partir de aquí los pasos que quedan, explicados a grandes rasgos son.
- La integración de las autenticaciones de usuarios mediante el propio dominio
de mapro
- La posibilidad de hacer que cada proyecto de la mano de su gestor tenga en
determinadas fases del mismo la posibilidad de dar de alta nuevos usuarios y
dar acceso o no a los existentes
- La integración a la salida al exterior.
- Por ultimo queda migrar todos los proyectos de software al nuevo sistema.
Pág. 102