Identificar zona global

En Solaris es posible crear zonas que no son mas que “particiones” del sistema operativo. Desde la zona Global, el equivalente a un ESXi en VMware, puede acceder a los procesos y sistemas de ficheros de las zonas. No así desde una zona, que están aisladas unas de otras y es imposible acceder a la zona global desde una zona. Es mas, es muy difícil identificar la zona global sobre la que esta corriendo una zona en concreto.

Para hacer mas fácil esta identificación he montado un script que lo que hace es generar un fichero /etc/GLOBALZONE en cada una de las zonas con el nombre de la zona:

#!/usr/bin/python

#
# zoneadm list output
# zoneadm list -cv
#  ID NAME             STATUS     PATH                           BRAND    IP    
#   0 global           running    /                              native   shared
#   5 zona1      running    /zonas/zona1             native   shared
#   7 zona2      running    /zonas/zona2             native   shared
#   – zona3      installed  /zonas/zona3             native   shared
#
#
from subprocess import *

p = Popen([‘hostname’], stdout=PIPE, stderr=PIPE)
hostname, err = p.communicate() 

p = Popen([‘zoneadm’, ‘list’, ‘-cv’], stdout=PIPE, stderr=PIPE)
zoneList, err = p.communicate()

for zone in zoneList.splitlines():
name = zone.split()[1]
if (name ==’NAME’) or (name == ‘global’): continue
cfgfile = “/zonas/%s/root/etc/GLOBALZONE” % name
try:
f = open(cfgfile, “w”)
f.write(hostname)
f.close()
except:
pass
El script lo he configurado en el cron para que se ejecute cada hora por ejemplo. De esta forma, si creo alguna zona nueva, o si muevo una zona de un servidor a otro, este fichero se actualizará.

También se puede modificar el perfil del usuario, de modo que el nombre de la zona global aparezca en la variable PS1:
PS1 = "\u@\h \w (`cat /etc/GLOBALZONE`) $ "

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s