Migración de Sistema Operativo, Software Aplicativo y Base de Datos Instalados en un Servidor Sun Fire V440 con Solaris 8 a un Servidor Sun Sparc T4-1 con Solaris 10 sin reinstalación.
El objetivo es llevar todo lo instalado en el servidor Sun Fire V440, Sistema Operativo Solaris 8 y aplicativos Oracle sin tener que reinstalar el software.
El Sistema Operativo Solaris 8 no puede ser instalado en el Servidor Sun Sparc T4-1, la version mínima soportada en este servidor es Solaris 10 10/09(u8), No podemos cambiar la version del software aplicativo y bases de datos ni se cuenta con los medios para una reinstalación.
Para lograr esto sin perder la información se instaló primero el Sistema Operativo Solaris 10 u13 en el servidor Sun Sparc T4-1 con el ultimo set de parches disponible.
Luego procedí a tomar una imagen flar completa del Sistema Operativo Solaris 8 2/04 en el servidor Sun Fire V440:
La imagen flar fue creada en los discos internos del servidor Sun Fire V440 y posteriormente copiado al Servidor T4-1
Para crear la imagen flar me conecté al Servidor Sun Fire V440 con usuario root y ejecuté el comando flarcreate de la siguiente manera:
**La ejecución de este comando requiere usuario root y debemos estar posicionados en el directorio raiz /
root@roatan # cd /
root@roatan # flarcreate -S -n s8-roatan /flar/s8-roatan.flar
Determining which filesystems will be included in the archive...
Creating the archive...
cpio: File size of "etc/mnttab" has
increased by 463
2756850 blocks
1 error(s)
Archive creation complete.
Una vez con la imagen flar creada en el servidor Sun Fire V440, copié el archivo flar a uno de los discos internos del servidor Sparc T4-1.
Me conecté al servidor T4-1 que tiene nombre de host guanaja y procedí con la creación de la zona para albergar el sistema operativo y aplicativos del servidor V440.
Cree la Zona para solaris 8 (branded zone) de la siguiente manera:
#el nombre de la zona se definió como s8-roatan, s8 versión de sistema operativo y roatan el nombre original del host
root@guanaja # zonecfg -z s8-roatan
#se creo una nueva configuración de zona de solaris8 usando el template SUNWsolaris8.
create -t SUNWsolaris8
# se definió el path de instalación de la zona
set zonepath=/zonas/roatan
set autoboot=true
#se seteó la dirección ip para la zona como interface de red virtual heredada de la zona global. aqui se cambió la ip original
add net
set address=172.16.1.18
set physical=bge0
set defrouter=172.16.1.1
end
#debido a que hay aplicativos en el Sistema operativo Solaris 8 instalado cuya licencia esta amarrada al hostid del equipo se definió el parametro hostid en la zona y se seteo con el mismo valor del servidor físico v440
add attr
set name=hostid
set type=string
set value=83123e3e
end
# se definió el parametro machine type para que quedará con la especificación del hardware original Sun Fire V440(sun4u)
add attr
set name=machine
set type=string
set value=sun4u
end
verify
#se salvó la configuración de la zona
commit
exit
#validé la información de definición de la zona
root@guanaja # zonecfg -z s8-roatan info
zonename: s8-roatan
zonepath: /zonas/roatan
brand: solaris8
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
hostid:
net:
address: 172.16.1.18
physical: igb0
defrouter: 172.16.1.1
attr:
name: hostid
type: string
value: 83123e3e
attr:
name: machine
type: string
value: sun4u
#exportamos la configuración de la zona para tener un respaldo de la misma
root@guanaja # zonecfg -z s8-roatan export > s8-roatan.config
#Una vez con la zona creada y el archivo imagen flar en el servidor procedimos a instalar la zona utilizando la imagen original del servidor Sun Fire v440, este procedimiento tomó al rededor de 2 horas
#Esta instalación se ejecutó de la siguiente manera:
root@guanaja # zoneadm -z s8-roatan install -p -a /flar/s8_roatan.flar
#despues de instalar la zona se procedió con el boot de la misma con el comando zoneadm boot
root@guanaja # zoneadm -z s8-roatan boot
#validamos que la zona hiso boot
root@guanaja # zoneadm list -icv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
1 s8-roatan running /zonas/roatan solaris8 shared
#Despues de esto procedimos a hacer login a la zona para validar la instalación y configuración de la misma con el comando zlogin:
root@guanaja # zlogin s8-roatan
[Connected to zone 's8-roatan' pts/1]
Your password will expire in 5 days.
Last login: Wed Jan 30 23:54:08 from 172.16.1.3
Sourcing //.profile-EIS.....
root@roatan # netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 172.16.1.1 UG 1 429
172.16.1.0 172.16.1.18 U 1 51 igb0:1
224.0.0.0 172.16.1.18 U 1 0 igb0:1
127.0.0.1 127.0.0.1 UH 3 9 lo0:1
root@roatan # uname -X
System = SunOS
Node = roatan
Release = 5.8
KernelID = Generic_Virtual
Machine = sun4u
BusType = <unknown>
Serial = <unknown>
Users = <unknown>
OEM# = 0
Origin# = 1
NumCPU = 64
La zona fue instalada y todos los aplicativos iniciaron sin problemas, la ventana para esta actividad tomó 12 horas desde el inició de la creación de la imagen flar hasta las pruebas finales de los usuarios.
Despues de esto y un periodó de validación de una semana el servidor Sun Fire V440 fue reconfigurado para ambiente de desarrollo y test del aplicativo y base de datos.
El Objetivo de este blog es mostrar ejemplos de configuraciones y procedimientos en la administración de Sistemas Operativos Unix(Solaris y Linux) y Bases de Datos Oracle. Los ejemplos ya han sido probados y utilizados en la implementacion de muchos ambientes.
miércoles, 31 de agosto de 2016
Migrar de Servidor Sun Fire V440 y Sistema Operativo Solaris 8 a Servidor Sun Sparc T4-1(Solaris10) sin Reinstalación.
Etiquetas:
migration,
oracle,
Solaris,
Solaris 10,
Solaris 8,
solaris containers,
solaris zones,
Sun Fire V440,
Sun Sparc T4-1,
SUNWsolaris8,
zones
martes, 23 de agosto de 2016
Revisar el estado general de Nuestro Cluster Oracle RAC
#Una buena practica es tener un monitoreo constante de nuestros clusters y bases de datos
#Despues de cualquier actividad de mantenimiento o cambio en la infraestructura de hardware en
#la que corre nuestro rac es critico hacer una revisión completa del estado del cluster y las bases
#de datos para garantizar que todo sigue funcionando con normalidad.
#Aqui presento el procedimiento y secuencia que he utilizado para completar esto:
# Primero, consultar el estado de los recursos del cluster, la idea es encontrar que todos los recursos que hemos habilitado en el cluster rac esten online:
[oracle@testnode02 bin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.testdbrac.db application ONLINE ONLINE testnode02
ora....c1.inst application ONLINE ONLINE testnode01
ora....c2.inst application ONLINE ONLINE testnode02
ora....serv.cs application ONLINE ONLINE testnode02
ora....ac1.srv application ONLINE ONLINE testnode01
ora....ac2.srv application ONLINE ONLINE testnode02
ora....SM1.asm application ONLINE ONLINE testnode01
ora....01.lsnr application ONLINE ONLINE testnode01
ora.testnode01.gsd application ONLINE ONLINE testnode01
ora.testnode01.ons application ONLINE ONLINE testnode01
ora.testnode01.vip application ONLINE ONLINE testnode01
ora....SM2.asm application ONLINE ONLINE testnode02
ora....02.lsnr application ONLINE ONLINE testnode02
ora.testnode02.gsd application ONLINE ONLINE testnode02
ora.testnode02.ons application ONLINE ONLINE testnode02
ora.testnode02.vip application ONLINE ONLINE testnode02
# Segundo, revisar el estado de todas las aplicaciones necesarias en los nodos, esto debe hacerse individualmente en cada nodo, la idea es ver que los procesos VIP,GSD, Listenes y ONS esten online en todos los nodos:
[oracle@testnode02 bin]$ srvctl status nodeapps -n testnode01
VIP is running on node: testnode01
GSD is running on node: testnode01
Listener is running on node: testnode01
ONS daemon is running on node: testnode01
[oracle@testnode02 bin]$ srvctl status nodeapps -n testnode02
VIP is running on node: testnode02
GSD is running on node: testnode02
Listener is running on node: testnode02
ONS daemon is running on node: testnode02
# Tercero, revisamos el estado de un servicio critico para el Rac, el ASM en ambos nodos...
[oracle@testnode02 bin]$ srvctl status asm -n testnode01
ASM instance +ASM1 is running on node testnode01.
[oracle@testnode02 bin]$ srvctl status asm -n testnode02
ASM instance +ASM2 is running on node testnode02.
# Cuarto, revisar el estado de las instancias de nuestra Base de Datos.....
[oracle@testnode02 bin]$ srvctl status database -d testdbrac
Instance testdbrac1 is running on node testnode01
Instance testdbrac2 is running on node testnode02
# Quinto, si tenemos servicios creados en nuestro rac debemos tambien validar su estado....
[oracle@testnode02 bin]$ srvctl status service -d testdbrac
Service appwsserv is running on instance(s) testdbrac2, testdbrac1
# Sexto, validar el estado del cluster en ambos nodos con el siguiente comando:
[oracle@testnode02 bin]$ crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
[oracle@testnode01 ~]$ crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
###
# Si toda la revisión anterior nos dió un buen estado de nuestros servicios en el rac, podemos hacer
# consultas al mismo para mas validaciones
###
# Validar las instancias, hostname y status de los node apps consultando la vista gv$instance
SQL> select instance_name, host_name, archiver, thread#, status
2 from gv$instance
3 /
INSTANCE_NAME HOST_NAME ARCHIVE THREAD# STATUS
-------------- --------------------- ------- -------- ------
testdbrac1 testnode01.mytest.env STARTED 1 OPEN
testdbrac2 testnode02.mytest.env STARTED 2 OPEN
# Validar la SGA(System Global Area) en cualquiera de los nodos (Ambos nodos tienen configuración identica)
SQL> show sga
Total System Global Area 608174080 bytes
Fixed Size 1220820 bytes
Variable Size 142610220 bytes
Database Buffers 457179136 bytes
Redo Buffers 7163904 bytes
# Listar todos los datafiles
SQL> select file_name, bytes/1024/1024
2 from dba_data_files
3 /
FILE_NAME BYTES/1024/1024
----------------------------------------------- ---------------
+ORADATA/testdbrac/datafile/system.259.620732719 500
+ORADATA/testdbrac/datafile/undotbs1.260.620732753 200
+ORADATA/testdbrac/datafile/sysaux.261.620732767 670
+ORADATA/testdbrac/datafile/example.263.620732791 150
+ORADATA/testdbrac/datafile/undotbs2.264.620732801 200
+ORADATA/testdbrac/datafile/users.265.620732817 5
6 rows selected.
#Obtener el estado de todos los grupos de disco y sus miembros
SQL> select group#, type, member, is_recovery_dest_file
2 from v$logfile
3 order by group#
4 /
GROUP# TYPE MEMBER IS_
------ ------- --------------------------------------------------- ---
1 ONLINE +ORADATA/testdbrac/onlinelog/group_1.257.620732695 NO
1 ONLINE +FLASH_RECO_AREA/testdbrac/onlinelog/group_1.257.620732699 YES
2 ONLINE +ORADATA/testdbrac/onlinelog/group_2.258.620732703 NO
2 ONLINE +FLASH_RECO_AREA/testdbrac/onlinelog/group_2.258.620732707 YES
3 ONLINE +ORADATA/testdbrac/onlinelog/group_3.266.620737527 NO
3 ONLINE +FLASH_RECO_AREA/testdbrac/onlinelog/group_3.259.620737533 YES
4 ONLINE +ORADATA/testdbrac/onlinelog/group_4.267.620737535 NO
4 ONLINE +FLASH_RECO_AREA/testdbrac/onlinelog/group_4.260.620737539 YES
# Consultar la vista v$asm_diskgroup
select group_number, name,allocation_unit_size alloc_unit_size,state,type,total_mb,usable_file_mb
from v$asm_diskgroup;
GROUP_NUMBER NAME ALLOC_UNIT_SIZE STATE TYPE TOTAL_MB USABLE_FILE_MB
------------ ------------------------------ --------------- ----------- ------ ---------- --------------
1 FLASH_RECO_AREA 1048576 CONNECTED EXTERN 10236 2781
2 ORADATA 1048576 CONNECTED NORMAL 20472 8132
# Consultar la vista v$asm_disk para listar los volumenes
select name, path, header_status, total_mb free_mb, trunc(bytes_read/1024/1024) read_mb, trunc(bytes_written/1024/1024) write_mb
from v$asm_disk;
NAME PATH HEADER_STATU FREE_MB READ_MB WRITE_MB
----- ---------- ------------ ---------- ---------- ----------
VOL1 ORCL:VOL1 MEMBER 10236 39617 15816
VOL2 ORCL:VOL2 MEMBER 10236 7424 15816
VOL3 ORCL:VOL3 MEMBER 10236 1123 13059
# Listar todos los datafiles en un solo comando
SQL> select name from v$datafile
2 union
3 select name from v$controlfile
4 union
5 select name from v$tempfile
6 union
7 select member from v$logfile
8 /
NAME
--------------------------------------------------------------------------------
+FLASH_RECO_AREA/testdbrac/controlfile/current.256.620732691
+FLASH_RECO_AREA/testdbrac/onlinelog/group_1.257.620732699
+FLASH_RECO_AREA/testdbrac/onlinelog/group_2.258.620732707
+FLASH_RECO_AREA/testdbrac/onlinelog/group_3.259.620737533
+FLASH_RECO_AREA/testdbrac/onlinelog/group_4.260.620737539
+ORADATA/testdbrac/controlfile/current.256.620732689
+ORADATA/testdbrac/datafile/example.263.620732791
+ORADATA/testdbrac/datafile/sysaux.261.620732767
+ORADATA/testdbrac/datafile/system.259.620732719
+ORADATA/testdbrac/datafile/undotbs1.260.620732753
+ORADATA/testdbrac/datafile/undotbs2.264.620732801
+ORADATA/testdbrac/datafile/users.265.620732817
+ORADATA/testdbrac/onlinelog/group_1.257.620732695
+ORADATA/testdbrac/onlinelog/group_2.258.620732703
+ORADATA/testdbrac/onlinelog/group_3.266.620737527
+ORADATA/testdbrac/onlinelog/group_4.267.620737535
+ORADATA/testdbrac/tempfile/temp.262.620732779
17 rows selected.
# Listar todos los Tablespaces en un solo comando
SQL> select tablespace_name, file_name
2 from dba_data_files
3 union
4 select tablespace_name, file_name
5 from dba_temp_files
6 /
TABLESPACE_NAME FILE_NAME
------------------ --------------------------------------------------------------------------------
EXAMPLE +ORADATA/testdbrac/datafile/example.263.620732791
SYSAUX +ORADATA/testdbrac/datafile/sysaux.261.620732767
SYSTEM +ORADATA/testdbrac/datafile/system.259.620732719
TEMP +ORADATA/testdbrac/tempfile/temp.262.620732779
UNDOTBS1 ` +ORADATA/testdbrac/datafile/undotbs1.260.620732753
UNDOTBS2 +ORADATA/testdbrac/datafile/undotbs2.264.620732801
USERS +ORADATA/testdbrac/datafile/users.265.620732817
7 rows selected.
# Consultar información Sobre los archivos de las instancias de ASM
SQL> select group_number, file_number, bytes/1024/1024/1024 GB, type, striped, modification_date
2 from v$asm_file
3 where TYPE != 'ARCHIVELOG'
4 /
GRP_NUM FILE_NUM GB TYPE STRIPE MODIFICAT
------- -------- -------- --------------- ------ ---------
1 256 .01 CONTROLFILE FINE 04-MAY-07
1 257 .05 ONLINELOG FINE 25-MAY-07
1 258 .05 ONLINELOG FINE 24-MAY-07
1 259 .05 ONLINELOG FINE 24-MAY-07
1 260 .05 ONLINELOG FINE 25-MAY-07
1 261 .00 PARAMETERFILE COARSE 24-MAY-07
2 256 .01 CONTROLFILE FINE 04-MAY-07
2 257 .05 ONLINELOG FINE 25-MAY-07
2 258 .05 ONLINELOG FINE 24-MAY-07
2 259 .49 DATAFILE COARSE 04-MAY-07
2 260 .20 DATAFILE COARSE 04-MAY-07
2 261 .65 DATAFILE COARSE 23-MAY-07
2 262 .03 TEMPFILE COARSE 04-MAY-07
2 263 .15 DATAFILE COARSE 04-MAY-07
2 264 .20 DATAFILE COARSE 04-MAY-07
2 265 .00 DATAFILE COARSE 04-MAY-07
2 266 .05 ONLINELOG FINE 24-MAY-07
2 267 .05 ONLINELOG FINE 25-MAY-07
18 rows selected.
# Consultar información mas detallada sobre los archivos de las instancias ASM
SQL> select group_number, file_number, compound_index, incarnation, block_size, bytes/1024/1024/1024 GB, type, striped,
2 creation_date, modification_date
3 from v$asm_file
4 where TYPE != 'ARCHIVELOG'
5 /
GRP_NUM FILE_NUM COMPOUND_INDEX INCARNATION BLOCK_SIZE GB TYPE STRIPE CREATION_ MODIFICAT
------- -------- -------------- ----------- ---------- -------- --------------- ------ --------- ---------
1 256 16777472 620732691 16384 .01 CONTROLFILE FINE 24-APR-07 04-MAY-07
1 257 16777473 620732699 512 .05 ONLINELOG FINE 24-APR-07 25-MAY-07
1 258 16777474 620732707 512 .05 ONLINELOG FINE 24-APR-07 24-MAY-07
1 259 16777475 620737533 512 .05 ONLINELOG FINE 24-APR-07 24-MAY-07
1 260 16777476 620737539 512 .05 ONLINELOG FINE 24-APR-07 25-MAY-07
1 261 16777477 620737547 512 .00 PARAMETERFILE COARSE 24-APR-07 24-MAY-07
2 256 33554688 620732689 16384 .01 CONTROLFILE FINE 24-APR-07 04-MAY-07
2 257 33554689 620732695 512 .05 ONLINELOG FINE 24-APR-07 25-MAY-07
2 258 33554690 620732703 512 .05 ONLINELOG FINE 24-APR-07 24-MAY-07
2 259 33554691 620732719 8192 .49 DATAFILE COARSE 24-APR-07 04-MAY-07
2 260 33554692 620732753 8192 .20 DATAFILE COARSE 24-APR-07 04-MAY-07
2 261 33554693 620732767 8192 .65 DATAFILE COARSE 24-APR-07 23-MAY-07
2 262 33554694 620732779 8192 .03 TEMPFILE COARSE 24-APR-07 04-MAY-07
2 263 33554695 620732791 8192 .15 DATAFILE COARSE 24-APR-07 04-MAY-07
2 264 33554696 620732801 8192 .20 DATAFILE COARSE 24-APR-07 04-MAY-07
2 265 33554697 620732817 8192 .00 DATAFILE COARSE 24-APR-07 04-MAY-07
2 266 33554698 620737527 512 .05 ONLINELOG FINE 24-APR-07 24-MAY-07
2 267 33554699 620737535 512 .05 ONLINELOG FINE 24-APR-07 25-MAY-07
18 rows selected.
miércoles, 27 de julio de 2016
Solaris 10 VNC: Script para Habilitar VNC en Solaris 10
Solaris ofrece muchas interfaces de acceso remoto como ssh, X11, server remote redirection, etc.
En muchas ocasiones nos es requerido ejecutar tareas o procesos sin que estas se pierdan o se detengan cuando se pierde la conexion al Servidor o Sistema Operativo. Para esto lo mejor es usar VNC, para lo cual Solaris 10 ya incluye su propio vnc basado en servidor X standard lo cual nos permite redireccionar la pantalla o display en modo virtual a traves de vnc como si fuera un X Display.
A continuación presento un script el cual pueden copiar y ejecutar en el Sistema Operativo Solaris 10 para habilitar el xvnc sin tener que instalar software VNC de terceros:
#!/bin/sh
#
# habilitavnc.sh
# Script para habilitar el vnc en Solaris 10
#
# Ejecutar este script con usuario root
#
# Despues de ejecutar el script puede ingresar con VNC Viewer a
# la ip del servidor a los display :1 y :2
#
# Agrega el display 1 a la configuracion del vnc
svccfg -s application/x11/x11-server add display1
svccfg -s application/x11/x11-server:display1 addpg options application
svccfg -s application/x11/x11-server:display1 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display1 addpropvalue options/server_args astring: '"SecurityTypes=None"'
# Agrega el display 2 a la configuracion del vnc, para poder
# utilizar dos display
svccfg -s application/x11/x11-server add display2
svccfg -s application/x11/x11-server:display2 addpg options application
svccfg -s application/x11/x11-server:display2 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"SecurityTypes=None"'
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"-alwaysshared"'
# Configura el dtlogin para que cargue configuración en cada
# reboot
if [ ! -d /etc/dt/config ] ; then
mkdir -p /etc/dt/config
fi
if [ ! -f /etc/dt/config/Xservers ] ; then
cp /usr/dt/config/Xservers /etc/dt/config/Xservers
fi
echo " :1 Local local_uid@none root /usr/X11/bin/Xserver :1" >> /etc/dt/config/Xservers
echo " :2 Local local_uid@none root /usr/X11/bin/Xserver :2" >> /etc/dt/config/Xservers
pkill -HUP dtlogin
En muchas ocasiones nos es requerido ejecutar tareas o procesos sin que estas se pierdan o se detengan cuando se pierde la conexion al Servidor o Sistema Operativo. Para esto lo mejor es usar VNC, para lo cual Solaris 10 ya incluye su propio vnc basado en servidor X standard lo cual nos permite redireccionar la pantalla o display en modo virtual a traves de vnc como si fuera un X Display.
A continuación presento un script el cual pueden copiar y ejecutar en el Sistema Operativo Solaris 10 para habilitar el xvnc sin tener que instalar software VNC de terceros:
#!/bin/sh
#
# habilitavnc.sh
# Script para habilitar el vnc en Solaris 10
#
# Ejecutar este script con usuario root
#
# Despues de ejecutar el script puede ingresar con VNC Viewer a
# la ip del servidor a los display :1 y :2
#
# Agrega el display 1 a la configuracion del vnc
svccfg -s application/x11/x11-server add display1
svccfg -s application/x11/x11-server:display1 addpg options application
svccfg -s application/x11/x11-server:display1 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display1 addpropvalue options/server_args astring: '"SecurityTypes=None"'
# Agrega el display 2 a la configuracion del vnc, para poder
# utilizar dos display
svccfg -s application/x11/x11-server add display2
svccfg -s application/x11/x11-server:display2 addpg options application
svccfg -s application/x11/x11-server:display2 addpropvalue options/server astring: "/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"SecurityTypes=None"'
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring: '"-alwaysshared"'
# Configura el dtlogin para que cargue configuración en cada
# reboot
if [ ! -d /etc/dt/config ] ; then
mkdir -p /etc/dt/config
fi
if [ ! -f /etc/dt/config/Xservers ] ; then
cp /usr/dt/config/Xservers /etc/dt/config/Xservers
fi
echo " :1 Local local_uid@none root /usr/X11/bin/Xserver :1" >> /etc/dt/config/Xservers
echo " :2 Local local_uid@none root /usr/X11/bin/Xserver :2" >> /etc/dt/config/Xservers
pkill -HUP dtlogin
lunes, 18 de julio de 2016
Administración de Privilegios y Roles en Solaris, RBAC
Se puede dar privilegios especificos a usuarios no root para que ejecuten tareas avanzadas o solo permitidas a usuarios root, esto se puede completar con los siguientes y sencillos pasos:
1. Crear una Cuenta de Role.
2. Setear Password a la cuenta Role.
3. Editar el archivo /etc/security/prof_attr y crear o buscar el profile con la descripcion de las tareas que queremos permitir ejecutar al usuario.
4. Editar el archivo /etc/security/exec_attr para ver o definir lo que el profile puede hacer o ejecutar.
5. Asociar el profile con la cuenta de role con el siguiente comando /usr/bin/rolemod.
6. Agregar el role al usario con el comando usermod.
Ejemplo:
Usar RBAC para permitir a un usuario general o no root reiniciar o apagar el servidor en ventanas de mantenimiento.
Rolename: mantenimiento
Username: operador
Profile Name: Maintenance and Repair
1. Crear la cuenta de role:
# roleadd -d /export/home/mantenimiento -m mantenimiento
Asignar password a la cuenta de role
# passwd mantenimiento
2. validar el profil Maintenance and Repair.
Ver el archivo /etc/security/prof_attr y buscar la linea de Maintenance and Repair:
Maintenance and Repair:::Maintain and repair a system:auths=solaris.smf.manage.system-log,solaris.label.range,solaris.admin.logsvc.write,solaris.admin.logsvc.read,solaris.compsys.write,solaris.compsys.read,solaris.system.shutdown;help=RtMaintAndRepair.html
3. Validar los atributos de ejecución en el archivo /etc/security/exec_attr.
Este define el comando o script a ejecutar y el uid que el role asume al ejecutarlo.
Ver el archivo /etc/security/exec_attr:
Maintenance and Repair:suser:cmd:::/sbin/bootadm:uid=0
Maintenance and Repair:suser:cmd:::/sbin/init:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/date:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/ldd:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/mdb:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/vmstat:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/eeprom:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/halt:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/poweroff:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/prtconf:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/reboot:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/syslogd:euid=0
4. Use el comando rolemod para agregar los profiles Maintenance and Repair y All al role de la siguiente manera:
# rolemod -P "Maintenance and Repair",All Mantenimiento
5. El comando rolemod actualiza el archivo /etc/user_attr file. Verifique que los cambios fueron hechos.
# more /etc/user_attr
mantenimiento::::type=role;profiles=Maintenance and Repair,All
operador::::type=normal;roles=mentenimiento
Aqui puede ver facilmente que el role mantenimiento a sido asignado al usuario operador. El profile Maintenance and Repair esta ahora asociado al role mantenimiento.
6. Use el comando usermod para agregar el role al usuario.
# usermod -R mantenimiento <username>
Listo!
Instrucciones para el Usuario:
Debe estar logeado con la cuenta de usuario requerida (en este caso usuario operador).
Cambiar el usuario al Role de la siguiente manera:
$ su - mantenimiento
Password: <enter password>
Una vez que se ha autenticado con el Role puede ejecutar cualquier comando del Profile Maintenance and Repair de la siguiente manera:
$ /sbin/init 5 #para apagar
$ /usr/sbin/reboot #para reiniciar
etc!
Para salir del Role y regresar al usuario inicial escriba exit.
1. Crear una Cuenta de Role.
2. Setear Password a la cuenta Role.
3. Editar el archivo /etc/security/prof_attr y crear o buscar el profile con la descripcion de las tareas que queremos permitir ejecutar al usuario.
4. Editar el archivo /etc/security/exec_attr para ver o definir lo que el profile puede hacer o ejecutar.
5. Asociar el profile con la cuenta de role con el siguiente comando /usr/bin/rolemod.
6. Agregar el role al usario con el comando usermod.
Ejemplo:
Usar RBAC para permitir a un usuario general o no root reiniciar o apagar el servidor en ventanas de mantenimiento.
Rolename: mantenimiento
Username: operador
Profile Name: Maintenance and Repair
1. Crear la cuenta de role:
# roleadd -d /export/home/mantenimiento -m mantenimiento
Asignar password a la cuenta de role
# passwd mantenimiento
2. validar el profil Maintenance and Repair.
Ver el archivo /etc/security/prof_attr y buscar la linea de Maintenance and Repair:
Maintenance and Repair:::Maintain and repair a system:auths=solaris.smf.manage.system-log,solaris.label.range,solaris.admin.logsvc.write,solaris.admin.logsvc.read,solaris.compsys.write,solaris.compsys.read,solaris.system.shutdown;help=RtMaintAndRepair.html
3. Validar los atributos de ejecución en el archivo /etc/security/exec_attr.
Este define el comando o script a ejecutar y el uid que el role asume al ejecutarlo.
Ver el archivo /etc/security/exec_attr:
Maintenance and Repair:suser:cmd:::/sbin/bootadm:uid=0
Maintenance and Repair:suser:cmd:::/sbin/init:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/date:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/ldd:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/mdb:euid=0
Maintenance and Repair:suser:cmd:::/usr/bin/vmstat:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/eeprom:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/halt:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/poweroff:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/prtconf:euid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/reboot:uid=0
Maintenance and Repair:suser:cmd:::/usr/sbin/syslogd:euid=0
4. Use el comando rolemod para agregar los profiles Maintenance and Repair y All al role de la siguiente manera:
# rolemod -P "Maintenance and Repair",All Mantenimiento
5. El comando rolemod actualiza el archivo /etc/user_attr file. Verifique que los cambios fueron hechos.
# more /etc/user_attr
mantenimiento::::type=role;profiles=Maintenance and Repair,All
operador::::type=normal;roles=mentenimiento
Aqui puede ver facilmente que el role mantenimiento a sido asignado al usuario operador. El profile Maintenance and Repair esta ahora asociado al role mantenimiento.
6. Use el comando usermod para agregar el role al usuario.
# usermod -R mantenimiento <username>
Listo!
Instrucciones para el Usuario:
Debe estar logeado con la cuenta de usuario requerida (en este caso usuario operador).
Cambiar el usuario al Role de la siguiente manera:
$ su - mantenimiento
Password: <enter password>
Una vez que se ha autenticado con el Role puede ejecutar cualquier comando del Profile Maintenance and Repair de la siguiente manera:
$ /sbin/init 5 #para apagar
$ /usr/sbin/reboot #para reiniciar
etc!
Para salir del Role y regresar al usuario inicial escriba exit.
viernes, 15 de julio de 2016
Actualizar Sistema Operativo Solaris 11 desde el repositorio de soporte de Oracle
# 1) Descargar los archivos de Llave y Certificado pkg.oracle.com.key.pem y pkg.oracle.com.certificate.pem del sitio de soporte de Oracle http://pkg-register.oracle.com.
# 2) Crear el directorio /var/pkg para almacenar los archivos de llave y certificado y copiar los archivos descargados a este directorio.
mkdir -m 0755 -p /var/pkg/ssl
cp -i ~/pkg.oracle.com.key.pem /var/pkg/ssl
cp -i ~/pkg.oracle.com.certificate.pem /var/pkg/ssl
# 3) Agregar el publisher que apunte al sitio de soporte de la siguiente manera:
pkg set-publisher \
-k /var/pkg/ssl/pkg.oracle.com.key.pem \
-c /var/pkg/ssl/pkg.oracle.com.certificate.pem \
-G '*' -g https://pkg.oracle.com/solaris/support/ solaris
# 4) Validar la configuración ingresada con:
pkg publisher
# 5) Para listar los paquetes soportados utilizar el siguiente comando:
pkg list -a 'pkg://solaris/*'
# 6) Actualizar el Sistema operativo con el comando:
pkg update
# 2) Crear el directorio /var/pkg para almacenar los archivos de llave y certificado y copiar los archivos descargados a este directorio.
mkdir -m 0755 -p /var/pkg/ssl
cp -i ~/pkg.oracle.com.key.pem /var/pkg/ssl
cp -i ~/pkg.oracle.com.certificate.pem /var/pkg/ssl
# 3) Agregar el publisher que apunte al sitio de soporte de la siguiente manera:
pkg set-publisher \
-k /var/pkg/ssl/pkg.oracle.com.key.pem \
-c /var/pkg/ssl/pkg.oracle.com.certificate.pem \
-G '*' -g https://pkg.oracle.com/solaris/support/ solaris
# 4) Validar la configuración ingresada con:
pkg publisher
# 5) Para listar los paquetes soportados utilizar el siguiente comando:
pkg list -a 'pkg://solaris/*'
# 6) Actualizar el Sistema operativo con el comando:
pkg update
Solaris11 Habilitar Desktop y VNC
# En una instalación normal del Sistema Operativo Solaris 11 este no incluye los paquetes de Escritorio ni conexion remota vnc
# Para habilitar el acceso a Desktop desde consola o remotamente desde VNC es requisito instalar primero el paquete solaris-desktop
# 1) Instalar Paquete solaris-desktop a Sistema Operativo
# Para esto puede ser requerido configurar el support-repository antes de ejecutar el comando pkg install
pkg install solaris-desktop
# 2) Configurar el archivo /etc/gdm/custom.conf con las Siguientes Opciones
[xdmcp]
Enable=true
[security]
DisallowTCP=false
AllowRoot=true
AllowRemoteRoot=true
# 3) Habilitar el Servicio xvnc-inetd
inetadm -e xvnc-inetd
# 4) Reiniciar el servicio svc:/application/graphical-login/gdm:default
svcadm restart svc:/application/graphical-login/gdm:default
# 5) Configurar los servicios x11-server, xvnc-inetd :
svccfg -s x11-server setprop options/tcp_listen=true
svccfg -s xvnc-inetd setprop inetd/wait=true
svccfg -s xvnc-inetd
setprop inetd_start/exec=astring:"/usr/bin/Xvnc -geometry 1280x720 -inetd -query localhost -once securitytypes=none"
exit
# 6) Reiniciar los servicio gdm y xvnc-inetd
svcadm restart gdm xvnc-inetd
svcadm disable gdm xvnc-inetd
svcadm enable gdm xvnc-inetd
# Con esto se puede probar ya el acceso con cliente vnc o mediante consola al desktop del servidor.
# Para habilitar el acceso a Desktop desde consola o remotamente desde VNC es requisito instalar primero el paquete solaris-desktop
# 1) Instalar Paquete solaris-desktop a Sistema Operativo
# Para esto puede ser requerido configurar el support-repository antes de ejecutar el comando pkg install
pkg install solaris-desktop
# 2) Configurar el archivo /etc/gdm/custom.conf con las Siguientes Opciones
[xdmcp]
Enable=true
[security]
DisallowTCP=false
AllowRoot=true
AllowRemoteRoot=true
# 3) Habilitar el Servicio xvnc-inetd
inetadm -e xvnc-inetd
# 4) Reiniciar el servicio svc:/application/graphical-login/gdm:default
svcadm restart svc:/application/graphical-login/gdm:default
# 5) Configurar los servicios x11-server, xvnc-inetd :
svccfg -s x11-server setprop options/tcp_listen=true
svccfg -s xvnc-inetd setprop inetd/wait=true
svccfg -s xvnc-inetd
setprop inetd_start/exec=astring:"/usr/bin/Xvnc -geometry 1280x720 -inetd -query localhost -once securitytypes=none"
exit
# 6) Reiniciar los servicio gdm y xvnc-inetd
svcadm restart gdm xvnc-inetd
svcadm disable gdm xvnc-inetd
svcadm enable gdm xvnc-inetd
# Con esto se puede probar ya el acceso con cliente vnc o mediante consola al desktop del servidor.
Limpiar fallas y alarmas en Servidores Oracle/Sun Fire Vxxx y Txxxx
###Limpiar FMA faults en Servidores Oracle/Sun Fire T1000/T2000 Vxxx
# Después de reemplazar una parte en un Servidor Sun Fire T1000/T2000 o Sun Fire Vxxx, puede ser necesario limpiar las fallas y alarmas.
# Esto se puede realizar de dos maneras:
# 1) Via la consola SC:
# Es preferible ejecutar esto desde la consola SC ya que no requiere reinicio del sistema operativo
# a) Limpiar Fallas y Alarmas desde la Consola SC:
# Mostrar, listar las fallas en la consola SC
sc> showfaults -v
# Para cada falla listada ejecutar:
sc> clearfault <uuid>
# Si existe algun componente deshabilitado o algun componente quedó en estado disabled ejecutar:
sc> clearasrdb
# b) Limpiar los reportes de fallas y alarmas en la consola SC
sc> setsc sc_servicemode true
sc> clearereports -y
sc> setsc sc_servicemode false
# 2) Via el Sistema Operativo Solaris:
# a) Para limpiar las fallas FMA o logs de errores desde el sistema operativo Solaris:
# Listar las Fallas registradas en el FMA
root@solaris# fmadm faulty
# Para cada falla mostrada por el comando ‘fmadm faulty’ ejecutar:
root@solaris# fmadm repair <uuid>
# Vaciar los ereports y resource cache
root@solaris# cd /var/fm/fmd
root@solaris# rm e* f* c*/eft/* r*/*
# Resetear los modulos fmd y serd
root@solaris# fmadm reset cpumem-diagnosis
root@solaris# fmadm reset cpumem-retire
root@solaris# fmadm reset eft
root@solaris# fmadm reset io-retire
# Reiniciar el sistema operativo:
root@solaris# reboot
# o
root@solaris# shutdown -y -g0 -i6
# Después de reemplazar una parte en un Servidor Sun Fire T1000/T2000 o Sun Fire Vxxx, puede ser necesario limpiar las fallas y alarmas.
# Esto se puede realizar de dos maneras:
# 1) Via la consola SC:
# Es preferible ejecutar esto desde la consola SC ya que no requiere reinicio del sistema operativo
# a) Limpiar Fallas y Alarmas desde la Consola SC:
# Mostrar, listar las fallas en la consola SC
sc> showfaults -v
# Para cada falla listada ejecutar:
sc> clearfault <uuid>
# Si existe algun componente deshabilitado o algun componente quedó en estado disabled ejecutar:
sc> clearasrdb
# b) Limpiar los reportes de fallas y alarmas en la consola SC
sc> setsc sc_servicemode true
sc> clearereports -y
sc> setsc sc_servicemode false
# 2) Via el Sistema Operativo Solaris:
# a) Para limpiar las fallas FMA o logs de errores desde el sistema operativo Solaris:
# Listar las Fallas registradas en el FMA
root@solaris# fmadm faulty
# Para cada falla mostrada por el comando ‘fmadm faulty’ ejecutar:
root@solaris# fmadm repair <uuid>
# Vaciar los ereports y resource cache
root@solaris# cd /var/fm/fmd
root@solaris# rm e* f* c*/eft/* r*/*
# Resetear los modulos fmd y serd
root@solaris# fmadm reset cpumem-diagnosis
root@solaris# fmadm reset cpumem-retire
root@solaris# fmadm reset eft
root@solaris# fmadm reset io-retire
# Reiniciar el sistema operativo:
root@solaris# reboot
# o
root@solaris# shutdown -y -g0 -i6
ALOM Password Reset
### La linea de Servidores Sun Fire Vxxx y Sun Fire Txxxx tienen interface de administración ALOM
### DESDE EL SISTEMA OPERATIVO SOLARIS
# La cual puede ser administrada desde sistema operativo con la utileria scadm
# Primero debemos validar que se encuentre instalada la utileria scadm
cd /usr/platform/`uname -i`/sbin
### Con la utileria scadm instalada podemos usar los siguientes comandos para cambiar el password de cualquier usuario.
./scadm usershow
./scadm userpassword <username>
### DESDE LA CONSOLA SERIAL DEL SERVIDOR:
#Debemos presionar la tecla ESC Durante el proceso boot de la ALOM cuando el siguiente Texto se despliega en la pantalla.
Boot Sector FLASH CRC Test
Boot Sector FLASH CRC Test, PASSED.
Return to Boot Monitor for Handshake
# Despues de presionar la tecla ESC nos aparece el Menu ALOM boot escape:
ALOM Menu
e - Erase ALOM NVRAM.
m - Run POST Menu.
R - Reset ALOM.
r - Return to bootmon.
Your selection:
# En este ingresamos la tecla e para borrar la configuración del ALOM y no nos solicitará password al ingresar.
### DESDE EL SISTEMA OPERATIVO SOLARIS
# La cual puede ser administrada desde sistema operativo con la utileria scadm
# Primero debemos validar que se encuentre instalada la utileria scadm
cd /usr/platform/`uname -i`/sbin
### Con la utileria scadm instalada podemos usar los siguientes comandos para cambiar el password de cualquier usuario.
./scadm usershow
./scadm userpassword <username>
### DESDE LA CONSOLA SERIAL DEL SERVIDOR:
#Debemos presionar la tecla ESC Durante el proceso boot de la ALOM cuando el siguiente Texto se despliega en la pantalla.
Boot Sector FLASH CRC Test
Boot Sector FLASH CRC Test, PASSED.
Return to Boot Monitor for Handshake
# Despues de presionar la tecla ESC nos aparece el Menu ALOM boot escape:
ALOM Menu
e - Erase ALOM NVRAM.
m - Run POST Menu.
R - Reset ALOM.
r - Return to bootmon.
Your selection:
# En este ingresamos la tecla e para borrar la configuración del ALOM y no nos solicitará password al ingresar.
Suscribirse a:
Entradas (Atom)