You are on page 1of 12

[Escriba texto]

PROYECTO SERVIDOR DE REPOSITORIOS

ANTECEDENTES:
CASO IPC:

El Instituto del Patrimonio Cultural IPC, lleva un proceso arduo de


migracin y mantenimiento de equipos de computacin del Sistema
Operativo Windows al Sistema Operativo Linux Distribucin Canaima basada
en Deban desde hace XX aos.

Durante la migracin la parte que ms afecta el proceso a parte de


la resistencia al cambio de parte del personal el cual da a da est siendo
sensibilizado, y el desconocimiento de las herramientas en lo que el
personal de la Coordinacin de Apoyo Tecnolgico presta su apoyo
constantemente, ha sido la problemtica de la intermitencia del servidor
nacional principal de la Distribucin Canaima, del cual se descargan los
drivers, aplicativos y programas usados por el personal IPC.

En reiteradas ocasiones se encuentra desconectado o no se tiene


acceso a las carpetas del mismo no permitiendo as las descargas de la
informacin necesaria para configurar de forma ptima los equipos de la
institucin.

De igual forma cada computador se conectara a internet y comenzara


a bajarse los paquetes usando el poco y preciado ancho de banda que
tenemos.

En vista de esta situacin y los recientes acontecimientos de vandalismo


en la zona referentes a hurto de cableado CANTV se estudi una serie de
alternativas para poder llevar a cabo las instalaciones del Sistema Operativo
Linux entre las cuales tenemos:
1. Servidores de repositorios alternativos
2. Servidores de la fuente principal Deban
3. Servidor local de repositorios IPC

PROPUESTA:
CREACION DE REPOSITORIO IPC:
[Escriba texto]

En pro del bienestar de la institucin se propone como alternativa


factible la creacin de repositorio local el cual nos permitir ahorrar tiempo
y ancho de banda de la red si necesitamos instalar o actualizar el Sistema
Operativo para un numero de computadoras en una red. Cada paquete se
descarga de un sitio una sola vez sin importar cuantos clientes locales lo
instalen a fin de mejorar la calidad de servicio y respuesta al personal del
IPC.

Para dicha actividad se requiere un equipo de prueba compatible con


la ltima versin de Deban 8 y un espacio en disco duro de 500 GB,
memoria RAM de 4 GB (mnimo). Para empezar la configuracin del servidor
y realizar las pruebas de programas tales como repreprod, apt-move,
approx, apt-mirror, creados para tal fin y evaluar cual beneficia ms al
proceso de crecimiento tecnolgico de la institucin.

PERSONAL PROPUESTO:
Para esta propuesta se utilizara los tcnico de la Coordinacin, y la
supervisin de los avances quedara a cuenta del jefe de la oficina.

AVANCES Y DESARROLLO DEL PROYECTO:


Los avances y desarrollos del proyecto se realizaran de forma
mensual y se documentara paso a paso todo el procedimiento realizado a
fin de dejar un registro o histrico para posibles nuevas instalaciones del
mismo en caso de ser cambiado a un servidor ms potente.
[Escriba texto]

Instalar Debian 8
Instalar servidor Web y el resto
Instalar:

REPREPRO
Instalar reprepro.
Lo primero es instalar los paquetes reprepro y apache2:
# apt-get install reprepro apache2
Reprepro necesita que tengamos apache para distribuir los paquetes
del repositorio a los clientes.
Una vez instalados los paquetes, creamos el directorio principal de
nuestro repositorio y el directorio de configuracin de una vez. Por ejemplo:
# mkdir -p /var/www/iesvalledeljerte3/conf
A continuacin vamos a crear una clave con la que firmaremos el
repositorio:
cd /var/www/repositorio $ gpg --gen-key
gpg nos pedir que seleccionemos el tipo de clave que deseamos
crear. Elegiremos la opcin (4) RSA (slo firmar).
Lo siguiente que nos preguntar gpg es de qu tamao queremos
crear la clave y por defecto nos ofrece un tamao de 2048. Lo aceptamos.
Nos preguntar por el perodo de validez de la clave y por detecto
nos ofrecer la opcin 0 = la clave nunca caduca. Elegimos la opcin por
defecto.
Nos preguntar si es correcto. Respondemos que s (s).
Nos preguntar el nombre y apellidos. Introducimos nuestro nombre
y apellidos.
Nos pedir que introduzcamos nuestra direccin de correo. As que
la introducimos.
Nos ofrecer la posibilidad de poner un comentario. Pulsamos Enter
para dejarlo vaco.
Para terminar, suponiendo que hemos introducido todos los datos
correctamente, pulsaremos (V) de (V)ale.
Y, ya por ltimo, nos pedir que introduzcamos una frase de
contrasea. La introducimos y repetimos cuando nos lo pida.
Al final nos mostrar la clave generada. Si se nos ha escapado por lo
que sea y no la hemos visto, ejecutamos:
$ gpg --list-keys
[Escriba texto]

/home/enam0000/.gnupg/pubring.gpg
---------------------------------
pub 1024D/153F5386 2009-12-01
uid Esteban M. Navas Martn (Administrador Informatico)
sub 2048g/83061C03 2009-12-01
Copiamos el identificador de la clave pblica para introducirlo
posteriormente en el fichero /var/www/iesvalledeljerte3/conf/distributions.
En mi caso: 153F5386
Exportamos la clave pblica en un archivo y la copiamos en el
directorio principal del repositorio:
$ gpg --armor --export 153F5386 >
/var/www/iesvalledeljerte3/iesvalledeljerte3.asc
A continuacin creamos un fichero donde vamos a definir las
distribuciones con las que vamos a trabajar:
$ nano /var/www/iesvalledeljerte3/conf/distributions
Origin: IES Valle del Jerte
Label: Debian Squeeze packages
Suite: squeeze
Codename: squeeze
Architectures: i386 amd64
Components: main
Description: Paquetes adicionales para el IES
DebIndices: Packages Release . .gz .bz2
SignWith: 153F5386
Cuando tengamos todo lo anterior, entramos en el directorio del
repositorio:
$ cd /var/www/iesvalledeljerte3
Y ejecutamos:
$ reprepro -VVV export
Al ejecutar el comando anterior, en alguna ocasin he tenido
problemas con la clave. Si tuvirais algn problema como yo, siempre
podis ejecutar el comando anterior con el parmetro --ask-passphrase:
$ reprepro --ask-passphrase -VVV export
A continuacin creamos los enlaces simblicos:
$ reprepro -VVV createsymlinks
Agregar paquetes binarios a nuestro repositorio
[Escriba texto]

Para agregar paquetes binarios (.deb), nos situamos en la carpeta


raz del repositorio (siguiendo el ejemplo: /var/www/iesvalledeljerte3) y
ejecutamos el siguiente comando:
$ reprepro --ask-passphrase includedeb [DISTRIBUCION] [PAQUETE]
Ejemplo:
$ reprepro --ask-passphrase includedeb squeeze
/home/enam0000/Java-package/oracle-j2re1.7_1.7.0+update7_amd64.deb
$ reprepro --ask-passphrase includedeb squeeze
/home/enam0000/Java-package/oracle-j2re1.7_1.7.0+update7_i386.deb
Nos preguntar por la frase de paso. La introducimos y al terminar
incluir nuestro paquete binario en el repositorio.
Eliminar paquetes binarios del repositorio
Eliminar un paquete de una rama de nuestro repositorio es sencillo:
$ reprepro --ask-passphrase remove [DISTRIBUCION] [PAQUETE]
Ejemplo:
$ reprepro --ask-passphrase remove squeeze oracle-j2re1.7
Usar el repositorio en nuestros clientes
Una vez hecho todo lo anterior, ya podemos usar el repositorio en
nuestros clientes.
Creamos un archivo en el cliente para nuestro repositorio:
# nano /etc/apt/sources.list.d/iesvalledeljerte3.list
Con el siguiente contenido:
deb http://servidor/repositorio [DISTRIBUCIN] [COMPONENTES]
Siguiendo con el ejemplo en distribucin especificamos squeeze, tal y
como indicamos en el archivo de configuracin
/var/www/iesvalledeljerte3/conf/distributions y como componentes main (no
hemos creado otro).
deb http://servidor/iesvalledeljerte3 squeeze main
Seguidamente descargamos la clave pblica de nuestro repositorio,
que ya subimos al servidor en el cliente y la aadimos mediante apt-key:
# wget http://servidor/iesvalledeljerte3.asc
# apt-key add iesvalledeljerte3.asc
Por ltimo, haremos un apt-get update en el cliente para actualizar la
lista de paquetes y ya podremos instalar lo que queramos desde nuestro
repositorio.
Listar los paquetes disponibles en nuestro repositorio
[Escriba texto]

Si queremos ver la lista de paquetes que tenemos agregados en


nuestro repositorio, tan slo tenemos que ejecutar:
# reprepro list "rama-de-repositorio"
Por ejemplo: Si quiero ver los paquetes que tengo en la rama
squeeze de mi repositorio, ejecuto el siguiente comando:
# reprepro list squeeze
Y obtendr una lista en la que puedo ver los paquetes, la seccin en
la que estn incluidos y la arquitectura:
squeeze|main|i386: firefox 18.0-2
squeeze|main|i386: iceweasel 17.0-1~bpo60+1
Agregar paquetes sin seccin o prioridad a nuestro repositorio
A veces queremos aadir ciertos paquetes a nuestro repositorio y
stos carecen de informacin de seccin a la que pertenecen o prioridad,
por ejemplo. O incluso, puede que tengan dicha informacin pero queremos
cambiarla.
Para especificar la seccin a la que queremos aadir un paquete,
usamos el parmetro -S o --section. Por ejemplo: Imaginemos que quiero
aadir los paquetes de libreoffice descargados de la web oficial de
LibreOffice, que carecen de informacin de seccin:
# reprepro --ask-passphrase -S main includedeb squeeze
/var/www/descargas/libreoffice4/*.deb
Y si adems, quiero cambiar la prioridad, usar el parmetro -P o
--priority. Por ejemplo: Imaginemos que, adems de cambiar la seccin
quiero asignar una prioridad de 600 a los paquetes que voy a aadir a mi
repositorio. No tendra ms que hacer lo siguiente:
# reprepro --ask-passphrase -S main -P 600 includedeb squeeze
/var/www/descargas/libreoffice4/*.deb

APT-MOVE
# apt-get install apt-move
ya sea desde el usuario root o travs de sudo. El funcionamiento es
fcil de entender, esta herramienta va a crear un mirror a partir de los
paquetes ( en nuestro caso ) que tome de /var/cache/apt/archives y los
introduce en una estructura con la misma jerarqua que un mirror de debian.
En este mirror tendremos los paquetes que se vayan actualizando desde la
[Escriba texto]

equipo que actua como repositorio y junto con los que instalemos nuevos.
Una vez instalado apt-move, procedemos a configurar el archivo que se
encuentra en /etc/apt-move.conf, es muy sencillo y bastante intuitivo.
Configuracin de apt-move.conf
APTSITES="ftp.rediris.es " (Es muy importante dejar el espacio
despues del nombre o dar fallos, se pueden aadir ms nombres de
servidores.
LOCALDIR=/mnt/repositorio (Donde creamos el repositorio, es buena
idea tener una particion distinta).
FILECACHE=/var/cache/apt/archives ( Lgico, es de donde obtenemos
los paquetes)
DELETE=yes ( Elimina la versiones ms antiguas de los paquetes del
repositorio )
Ahora es necesario tener un servidor, ya sea http o ftp, o de cualquier
otro tipo que nos d acceso al mirror que acabamos de crear. En mi caso
tengo instalado Apache, con lo cual tendr que crear un enlace simblico al
repositorio dentro del directorio accesible por Apache, que por defecto es
/var/www/.
Con lo cual, ahora mirror ( el enlace ) ya es accesible via http. Ya
quedan pocos pasos para tener listo nuestro mirror local, el siguiente paso
es actualizar nuestro sistema.
# apt-get update; apt-get dist-upgrade; apt-move update
Si todo ha ido bien, nuestro repositorio se habr creado de forma
correcta, podeis entrar para comprobar la jerarqua de un mirror de Debian,
es igual que el de cualquier ftp de Debian que podais haber entrado.
Configurando el source.list
Ahora solo hay que configurar el source.list de los equipos necesarios,
simplemente aadir la siguiente linea al archivo:
deb http://10.10.10.10/mirror/ testing main contrib non-fre
Evidentemente la IP depende de cada uno, yo por llevar la contraria
mont una red de clase A , pero ese es otro tema, mirror es el nombre del
enlace simblico que creamos en el directorio /var/www/, lo siguiente
depende de la rama con la que esteis trabajando, y de las secciones que
tengais. LLegado esto, simplemente queda hacer un apt-get update en el
equipo recien configurado para que aada la lista de paquetes de nuestro
mirror local, el funcionamiento es simple, si un paquete no est en nuestro
[Escriba texto]

repositorio busca en los siguientes que tengamos, por eso colocar el nuestro
el primero del source.list.

APPROX
Comencemos con la instalacin:
# aptitude install approx
Editamos el archivo de configuracin de approx que esta es
/etc/approx/approx.conf con nuestro editor favorito el cual nos quedara algo
as
# The following are the defaults, so there is no need
# to uncomment them unless you want a different value.
# See approx.conf(5) for details.
#$interface any
#$port 9999
#$interval 720
#$max_wait 10
#$max_rate unlimited
#$user approx
#$group approx
#$syslog daemon
#$verbose false
#$debug false
# Here are some examples of remote repository mappings.
# See http://www.debian.org/mirror/list for mirror sites.
#debian http://ftp.debian.org/debian
#security http://security.debian.org
#Ponemos el mirror que queremos usar, eso depende de cada uno
debian-us http://ftp.us.debian.org/debian
#El repositorio de las actualizaciones de seguridad de Debian
security http://security.debian.org
#El repositorio de multimedia de Marillat
debian-multimedia http://debian-multimedia.dfoell.org
Una vez configurado reiniciamos approx
# /etc/init.d/approx restart
[Escriba texto]

Despus necesitamos que nuestro source.list apunte a approx y no


directamente a internet, as que tenemos que poner la direccin IP de
nuestro servidor de repositorio local
vi /etc/apt/sorces.list
Supongamos que mi servidor local esta en 192.168.2.106, entonces
no debe quedar algo as,
deb http://192.168.2.106:9999/debian-us lenny main non-free contrib
deb-src http://ftp.debian.org/debian/ lenny main non-free contrib
deb http://192.168.2.106:9999/security lenny/updates main contrib
non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-
free
deb http://192.168.2.106:9999/debian-multimedia testing main
deb-src http://debian-multimedia.dfoell.org testing main
Ahora necesitamos actualizar y lo hacemos con
#aptitude update
Listo, ahora tenemos que modificar el source.list de cada cliente para
que estos a punten al proxy ;) ,ahora solo se bajaran de internet una sola
vez los paquetes ahorrando nuestro preciado ancho de banda y tiempo ;)

APT-MIRROR
Lo primero es instalar Apache y apt-mirror.
fraterneo@ubunturepo:~$ sudo apt-get- install -y apache2 apt-mirror
Creamos un directorio donde se alojar la estructura del repositorio,
metadatos y paquetes.
fraterneo@ubunturepo:~$ mkdir apt-mirror/
Ahora editamos el fichero mirror.list de APT y le agregamos al
principio del mismo la siguiente lnea que contiene la ruta al directorio que
creamos hace un momento.
fraterneo@ubunturepo:~$ sudo nano /etc/apt/mirror.list
set base_path /home/fraterneo/apt-mirror
Iniciamos el proceso de creacin invocando el comando apt-mirror.
fraterneo@ubunturepo:~$ sudo apt-mirror
[sudo] password for fraterneo:
Downloading 162 index files using 20 threads...
[Escriba texto]

Begin time: Thu May 15 22:11:52 2014


[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]...
[10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Thu May 15 22:18:51 2014
Processing tranlation indexes: [TTT]
Downloading 185 translation files using 20 threads...
Begin time: Thu May 15 22:18:52 2014
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]...
[10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Thu May 15 22:35:18 2014
Processing indexes: [SSSPPP]
110.1 GiB will be downloaded into archive.
Downloading 111238 archive files using 20 threads...
Begin time: Thu May 15 22:35:27 2014
[20]...
Luego de finalizada esta parte, es necesario crear un enlace
simblico del mirror en /var/www/html, para que est disponible a travs del
servidor Web.
fraterneo@ubunturepo:~$ cd /var/www/html
fraterneo@ubunturepo:html$ ln -s /home/fraterneo/apt-
mirror/mirror/us.archive.ubuntu.com/ubuntu ubuntu
Actualizacin automtica del repositorio De ahora en adelante solo
hay que mantener actualizado nuestro repositorio. Si lo queremos hacer
manualmente, solo hay que ejecutar apt-mirror de nuevo y la actualizacin
se har. Pero tambin podemos crear una tarea programada para que se
ejecute cierto da de la semana, por ejemplo.
fraterneo@ubunturepo:~$ sudo echo '0 0 * * 3 root apt-mirror
/usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log' >> /etc/crontab
Configurar los clientes Esta es la parte ms sencilla. Se agregan las
URL de los repos igual que como se haca en la vieja escuela, por all
cuando Ubuntu 8.10 ms o menos, editando el fichero sources.list y
borrando todo su contenido para dejarlo como se ve a continuacin.
fraterneo@ubunturepo:~$ sudo nano /etc/apt/sources.list
deb http://192.168.24.200/ubuntu trusty universe
deb http://192.168.24.200/ubuntu trusty main restricted
deb http://192.168.24.200/ubuntu trusty-updates main restricted
[Escriba texto]

Finalmente actualizamos el cach en cada cliente.


fraterneo@ubunturepo:~$ sudo apt-update

APUNTES OTROS:
pasos generales:
1.-Con debmirror, o rsyncs(no se si se escribe asi) bajas el repositorio
que te interesa, hay algunos scripts que te permiten hacer algunas cosas
adicionales, va a tardar bastante tiempo ya que tiene que descargar mas
30Gb de datos.-
2.-Si desarrollas los programas para debian o ubuntu o mint tenes que
leer las debian polices que te ensea como crear el paquete.-
3.-Una ves que tenes el paso 1 y 2, procedes al paso 3, y ac tenes
que fijarte la estructura del repositorio que bajaste, para colocar tu paquete
donde corresponda.-
4.-Rearmar el archivo de control, es una instruccin que hay que
utilizar.-
5.-Armar un script de actualizacin que verifique cada 24horas que
esta todo bien, y realice los pasos 1 y 3 en forma automtica.-
Ahora bien no te digo exactamente como son las cosas porque lo que
queres es algo complejo y que mejor manera de hacerla que conociendo
como se hace y porque se hacen las cosas de determinada manera, ac hay
que leer, digo porque parece que estas buscando una receta que te diga
paso a paso como hacer las cosas.-

la mejor manera de trabajar es con repositorios propios cuando uno


quiere aprender, ya que te permite trabajar en forma dinmica y rpida, lo
que plantea el es algo valido, ya que te permite tener un servidor propio, y
podes instalar en cuantas maquinas se te ocurra sin depender de una
conexin a internet, o sea tenes que instalar 10equipos con debian, redhat o
suse, y queres que estn actualizados es mas fcil de esta manera.-
Ac dejo un par de link que pueden servir
Como bajar un repositorio
http://phenobarbital.wordpress.com/2010 ... ultimedia/
Como crear paquetes deb
http://ubuntulife.wordpress.com/2010/08 ... nualmente/
[Escriba texto]

http://120linux.com/crear-un-paquete-deb/
Aca explica el comando que actualiza el paquete de control, la orden
es # dpkg-scanpackages
http://vallelnx.bligoo.com/content/view ... Qg_5aJcH-Y
http://www.taringa.net/posts/linux/2584 ... e-cdd.html
tomado de: http://www.espaciolinux.com/foros/redes-servidores/crear-red-
local-sin-internet-para-repositorio-linux-t51116.html

You might also like