¿Tu caudal de Internet está saturado por los macs que se están actualizando todo el día? ¿Quieres tener más control sobre las actualizaciones de tus Mac? Entonces este artículo es para tí.
Aunque forma más "correcta" es tener un Mac OSX Server última versión, a veces ya sea por que no tienes esa máquina que soporta la última versión de apple o porque necesitas más flexibilidad tienes que tirar de otras opciones.
La más recomendada es reposado. Un software de código abierto creado por los administradores apple de Walt Disney para tener todos sus equipos actualizados sin necesidad de consumir ancho de banda y poder decidir que actualizaciones de apple deben ser aplicadas y cuales no.
Reposado solo necesita: una máquina unix con Python 2.5 a 2.7, el ejecutable curl , un servidor web y espacio para los updates de apple. (Actualmente 130 GB necesitados, 200 GB sería un espacio recomendable con vistas a futuro)
Aunque tambien podemos instalarlo en un MacOSX aunque no sea server usando el web server integrado, o MAMP e instalando Python y curl con meta-distribuciones como FINK o MACPORTS ,llegados a este punto parece más sencillo y económico usar una distribución de linux a la que no tendremos que hacerle ninguna instalación adicional ya que estas herramientas vienen de serie en distribuciones como OpenSuSe o Ubuntu.
Una vez realizada la instalación solo tendremos que configurar los clientes para que cojan los paquetes de actualización solo o preferentemente de nuestro servidor. En el departamento de IT de la IOWA STATE UNIVERSITY encontraréis como pasar en comandos una configuración y un programa gráfico para alterar el repositorio que seguramente os será muy facil de modificar para vuestras necesidades. ¡Actualización! en la siguiente entrada de este blog facilito uno modificado por mi especialmente válido para reposado.
Borrar los catálogos de actualización
sudo defaults delete /Library/Preferences/com.apple.SoftwareUpdate CatalogURL
Activar vuestro propio catálogo de actualización en un computador
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL \ http://reposado.tudominio.es/index.sucatalog
En mi caso la planta de computadores apple es muy rebelde y móvil, estando muchos de ellos no administrados. Por eso necesitaré interceptar todas la peticiones de actualización que se produzcan en mi red para evitar que consuman caudal innecesario y acelerar las instalaciones. Otra solución sería tener en mi red un proxy transparente que cacheara estas y todas las demás peticiones web, pero esta opción en mi caso no es posible.
Por eso implantaré un servidor de actualizaciones de APPLE con reposado y cambiaré en mis dns corporativas la dirección de los servidores de actualizaciones de apple (swscan.apple.com) para que apunten directamente a mi nuevo servidor, de forma que todas las actualizaciones cuando los mac estén en mi red las tomarán de este servidor
Como usamos preferentemente máquinas virtuales, instalaré una pequeña open suse 11 en un disco virtual de 10GB y montaré en un directorio del linux uno de los servidores de ficheros, en mi caso usando samba. Eso hará mucho más sencilla la backup y resturación de la máquina y ahorra espació innecesario en el servidor de máquinas virtuales ya que siempre usamos discos virtuales de asignación de espacio fija.
Para la isntalación del linux yo hare una instalación lo más reducida posible de OpenSuSe y eligiré estos paquetes adicionales después de la instalación usando la herramienta Yast.
- apache2 : El servidor web y las dependencias que nuestra distribución nos exija.
- w3m : un sencillo navegador web en modo texto que suele instalar Suse por defecto
- mc : Un gestor de archivos en modo terminal muy intuitivo y con un sencillo editor de texto
- Python : Simplemente me aseguro de que ya esta instalado
Montando una recurso compartido windows en Linux
Crearé el punto de montaje deseado con:mkdir /mnt/data
E intentaré un montaje de prueba para ver que todo va bien
mount -t cifs //miserver.es/recurso -o username=jorgev,password=mipass /mnt/data
Es importante tener un user y password que sean permanentes Si no cuando caduque nuestra contraseña el servicio dejará de funcionar.
Si todo ha ido bien podemos añadir esta linea en el último fichero por ejecutar al arranque de nuestra distribución o añadir al /etc/fstab de nuestro linux esta linea.
//mifilesserver.es/recurso /mnt/data cifs rw,user,username=jorgev,password=xxxxxx 0 0
Instalando el sistema de actualizaciones apple con reposado
Una vez que se ha montado sin errores creamos los directorios que contendrán los repositorios
mkdir /mnt/data/reposado
mkdir /mnt/data/reposado/html
mkdir /mnt/data/reposado/metadata
Nos colocamos en el directorio en el que va a estar reposado y nos bajamos el código del mismo
El directorio no tiene porque ser este , puede estar en cualquier ubicación y yo personalmente he usado el sistema de repositorios git en vez de bajarmelo en un zip que resulta más sencillo para actualizar reposado. Pero entender e instalar este sistema de repositorios es posible que sea sobrepasar el propósito de este manual. Por eso en este ejemplo nos descargaremos de su web en github simplemente el comprimido en formato zip
cd /opt/
wget https://github.com/wdas/reposado/archive/master.zip
unzip master
Y borramos el archivo descargado
rm master master.zip
Cambiamos al directorio configurado y configuramos reposado con los directorios que ya hemos preparado.
cd /opt/reposado-master/code/ ./repoutil --configure
En el caso de ejemplo que nos ocupa
reposado:/opt/reposado-master/code # ./repoutil --configure
Path to store replicated catalogs and updates [None]: /mnt/data/reposado/html
Path to store Reposado metadata [None]: /mnt/data/reposado/metadata
Base URL for your local Software Update Service
(Example: http://su.your.org -- leave empty if you are not replicating updates) [None]: http://reposado.midominio.es
Ahora tendremos que sincronizar nuestro repositorio con el de Apple. La primera vez tardará unas cuantas horas en bajarse los 100 GBs en el momento de escribir estas lineas.
reposado:/opt/reposado-master/code # ./repo_sync
repo_sync run started
Downloading 1124385 bytes from http://swscan.apple.com/content/catalogs/index.sucatalog...
300 products found in http://swscan.apple.com/content/catalogs/index.sucatalog
Downloading 901120 bytes from http://swcdn.apple.com/content/downloads/46/57/022-3271/rmqY4rJMxLgmYp8fMxJCfB22drKT5CMvxC/AppleHDVCodec.tar...
Downloading 1361920 bytes from http://swcdn.apple.com/content/downloads/46/57/022-3271/rmqY4rJMxLgmYp8fMxJCfB22drKT5CMvxC/PluginManager.tar...
Downloading 849920 bytes from http://swcdn.apple.com/content/downloads/46/57/022-3271/rmqY4rJMxLgmYp8fMxJCfB22drKT5CMvxC/DVCPROHDCodec.tar..
Downloading 706560 bytes from http://swcdn.apple.com/content/downloads/46
...
Configurando el servidor web
Ha llegado el momento de configurar nuestro servidor de actualizaciones, Si no manejais mucho el vi os recomiendo instalar el mc y desde consola tendréis accesible una de sus mejores utilidades el intuitivo y facil editor mcedit.mcedit /etc/apache2/default-server.conf
Y con el cambiaremos las dos lineas donde aparece el directorio al que debe apuntar nuestro servidor web
DocumentRoot "/srv/www/htdocs"
<Directory "/srv/www/htdocs">
por
DocumentRoot "/mnt/data/reposado/html"
<Directory "/mnt/data/reposado/html">
Ya podemos iniciar/reiniciar el servidor web y hacer algunas pruebas en el caso de OpenSuse la forma más recomendad es con:
service apache2 restart
testeamos si esta correcto por ejemplo solicitando el catalogo de snow leopard como nos indican en la documentacion de reposado, con el navegador web integrado w3m
w3m http://localhost/content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog
Automatizándolo todo
Si vemos algo parecido a un plist, todo esta correcto y podemos automatizar la actualización de paquetes por ejemplo de esta forma, haciendo un enlace simbólico a los directorios de tareas programadas de OpenSuse.ln -s /opt/reposado-master/code/repo_sync /etc/cron.hourly/repo_sync
Si hacemos el enlace a este directorio ejecutará la tarea de sincronización cada hora y ya solo nos queda abrir el firewall de nuestra opensuse para que deje pasar las peticiones web y automatizar el arranque del servidor web , para ello usamos la utilidad:
yast -> sistema -> servicios del sistema
Y activamos el apache en el arranque que por defecto probablemente suele estar desactivado
Por último abrimos el cortafuegos del servidor apache, ya que probablemente lo tenemos cerrado
yast -> Seguridad y usuarios -> Cortafuegos -> Allowed services
y añadimos el http server
Ahora solo tenemos que cambiar nuestros DNS locales para que swscan.apple.com apunte a la dirección ip de nuestro nuevo servidor.
En unix usaría http://www.aspl.es/ext-dns/ y si usamos cisco en este enlace encontraréis información muy útil. http://packetsneverlie.blogspot.com.es/2010/08/dns-rewrite.html
Caso contrario tendremos que configurar nuestros mac engañado en su archivo /etc/hosts sobre la dirección de swscan.apple.com o tendremos que orientar a cada máquina con este comando de donde debe actualizar para que su nuevo servidor de actualizaciones sea nuestro computador.:
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL http://reposado.tudominio.es/content/catalogs/index.sucatalog
Tenemos que recordar que cada versión de OSX con Reposado usa un directorio de catalogo distinto.
tiger = "content/catalogs/index.sucatalog";
leopard = "content/catalogs/others/index-leopard.merged-1.sucatalog";
snowleopard = "content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog";
lion = "content/catalogs/others/index-lion-snowleopard-leopard.merged-1.sucatalog";
mountainlion = "content/catalogs/others/index-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog";
No hay comentarios:
Publicar un comentario