Aunque hay varias opciones para crear el repositorio para realizar un update la recomendación es utilizar un servidor que sirva como repositorio único para todos los servidores reales o virtuales. Este servidor para el repositorio puede ser un servidor virtual o ldom exclusivo para mantenimiento y servidor de repositorio.
La ventaja es que, con una única instalación, publicamos internamente la misma versión para todos los servidores reales y virtuales.
Descarga del software
En el siguiente link se puede ver la información de todas las versiones del sistema operativo Solaris:
Se debe tener en cuenta que hace falta un contrato de soporte para descargar el software. La opción que debemos escoger es la opción Repository en la columna IPS repository. A continuación seleccionamos Oracle Solaris on SPARC (64-bit) y descargamos todos los ficheros ZIP.
Una vez descargados todos los ficheros ZIP se descomprimen en la carpeta que tengamos designada para está versión.
Repositorio local al servidor
Se crea un ZFS exclusivo para el software de la nueva versión.
# mkdir /repos
# zfs create -o compression=on rpool/repos/repo11.4.77
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 14.7G 168G 94K /rpool
rpool/repos/repo11.4.77 31K 168G 31K /repos/repo11.4.77
A continuación se copian los ficheros descargados en /repos/repo11.4.77 y se descomprimen con el comando unzip.
Por último se configura el repositorio para que esté listo para el update.
# pkg set-publisher -p /repos/repo11.4.77 solaris
# pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///repos/repo11.4.77/
Servidor de repositorios
El repositorio puede publicarse para que, desde otros servidores, se pueda montar el repositorio con la nueva versión. Esto evita el tener que replicar el software de la nueva versión en todos los servidores. Una vez publicado externamente todos los servidores virtuales y reales pueden montar el repositorio con un sencillo comando.
El primer paso es crear un nuevo servicio del tipo pkg/server
# svccfg
svc:> select pkg/server
svc:/application/pkg/server> list
:properties
default
svc:/application/pkg/server> add s11.4.77
svc:/application/pkg/server> select s11.4.77
svc:/application/pkg/server> setprop pkg/address=127.0.0.1
svc:/application/pkg/server:s11.4.77> setprop pkg/inst_root=/repos/repo11.4.77
svc:/application/pkg/server:s11.4.77> setprop pkg/log_access=/var/log/repo-server/repoS11.4.77_access
svc:/application/pkg/server:s11.4.77> setprop pkg/log_errors=/var/log/repo-server/repoS11.4.77_errors
svc:/application/pkg/server:s11.4.77> setprop pkg/port=82
svc:/application/pkg/server:s11.4.77> setprop pkg/threads=100
svc:/application/pkg/server:s11> unselect
svc:/application/pkg/server>
svc:/application/pkg/server> list
:properties
default
s11.4.77
svc:/application/pkg/server> refresh
svc:/application/pkg/server> exit
#
El puerto elegido debe ser diferente al puerto 80 y diferente a cualquier puerto ya utilizado. Se pueden configurar varios servicios con distintas versiones seleccionando un puerto diferente para cada versión. Por último se activa el servicio.
# svcadm refresh pkg/server:s11.4.77
# svcadm enable pkg/server:s11.4.77
Ya en el resto de servidores se puede configurar el nuevo repositorio con el siguiente comando.
$ pkg set-publisher -g http://reposerver:82/ solaris
El servidor virtual o real se comunica con el servidor de repositorios utilizando el protocolo http.