<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3023674627195806772</atom:id><lastBuildDate>Sat, 06 Dec 2025 02:57:31 +0000</lastBuildDate><category>solaris</category><category>tips</category><category>openindiana</category><category>oracle</category><category>postgres</category><category>apache</category><category>hadoop</category><category>opensolaris</category><category>rbac</category><category>squid</category><category>java</category><category>off topic</category><category>web</category><category>roles</category><category>tomcat</category><category>ipfilter</category><category>tuning</category><category>memcached</category><category>www</category><category>activemq</category><category>crossbow</category><category>teach</category><category>virtualbox</category><category>zfs</category><category>boot environments</category><category>freebsd</category><category>grub</category><category>illumos</category><category>jms</category><category>main</category><category>nagios</category><category>privileges</category><category>projects</category><category>svm</category><category>uuid</category><category>autorizaciones</category><category>backup</category><category>chroot</category><category>console</category><category>cvs</category><category>dhcp</category><category>fechas</category><category>guasax</category><category>havoctec</category><category>instalacion</category><category>ips</category><category>macosx</category><category>me</category><category>mpxio</category><category>opinión</category><category>passwords</category><category>performance</category><category>safechildren guardian</category><category>ssh</category><category>subversion</category><category>swap</category><category>tunning</category><category>zone</category><title>Solaris en castellano</title><description>Blog donde comento mis historias con el sistema operativo Sun Solaris durante todos estos años de lucha y placer.</description><link>http://sparcki.blogspot.com/</link><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><generator>Blogger</generator><openSearch:totalResults>237</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-197978181331963837</guid><pubDate>Tue, 02 Apr 2013 15:07:00 +0000</pubDate><atom:updated>2013-04-02T17:15:01.385+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">boot environments</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo trabajar con Boot Environments en Solaris - Parte 2</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En la primera parte de Cómo trabajar con Boot Environments hacíamos una introducción a los comandos de gestión y su funcionamiento básico.&lt;br /&gt;
&lt;br /&gt;
En esta segunda parte, vamos a aplicar lo que hemos aprendido en cuanto a la gestión de Boot Environments y cómo podemos utilizarlo en &quot;un mundo real&quot;.&lt;br /&gt;
&lt;br /&gt;
Si no recuerdas las opciones más importantes, te recomiendo hacer un pequeño repaso a la primera parte de &lt;a href=&quot;http://sparcki.blogspot.com.es/2013/03/como-trabajar-con-boot-environments-en.html&quot;&gt;Cómo trabajar con boot environments&lt;/a&gt; antes de entrar ya en materia.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Instalación de paquetes&lt;/b&gt;&lt;br /&gt;
Una de las características más interesantes de los Boot Environments es la capacidad de instalar paquetes -o parches- sin tener &quot;downtime&quot; en nuestro sistema principal.&lt;br /&gt;
&lt;br /&gt;
Para ello, deberemos utilizar la opción &quot;-R /punto_montaje&quot; del comando &amp;lt;pkg&amp;gt;, es decir:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h10&lt;span style=&quot;font-size: small;&quot;&gt;0&lt;/span&gt;:~$ &lt;b&gt;pfexec pkg -R /mnt&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &amp;lt;acción&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Un Ejemplo Completo&lt;/b&gt;&lt;br /&gt;
Como siempre, lo mejor es verlo con un ejemplo. Así que vamos a actualizar una versión de OpenIndiana b148 a la última versión utilizando la opción &amp;lt;image-update&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.- Creamos y Montamos un Boot Environment Nuevo (PreUpdate)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec mkdir /mnt/preupdate&lt;/b&gt;&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm create PreUpdate&lt;/b&gt;&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm mount PreUpdate /mnt/preupdate&lt;/b&gt;&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ----------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;PreUpdate&lt;/b&gt; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt/preupdate 122.0K&amp;nbsp; static 2013-03-08 10:28 &lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103.88G static 2011-04-16 04:41 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.- Actualizamos la distribución completamente utilizando &quot;image-update&quot;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec pkg -R /mnt/preupdate image-update&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to remove:&amp;nbsp;&amp;nbsp;&amp;nbsp; 71&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to install:&amp;nbsp;&amp;nbsp; 120&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to update:&amp;nbsp;&amp;nbsp; 419&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create boot environment:&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Services to restart:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;br /&gt;DOWNLOAD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PKGS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILES&amp;nbsp;&amp;nbsp;&amp;nbsp; XFER (MB)&lt;br /&gt;Completed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 610/610 20899/20899&amp;nbsp; 325.4/325.4&lt;br /&gt;&lt;br /&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACTIONS&lt;br /&gt;Removal Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9232/14882 &lt;br /&gt;Warning - directory /mnt/usr/share/man/cat1m not empty or not expected during operation - contents preserved in /mnt/var/pkg/lost+found/usr/share/man/cat1m-20130402T001646Z&lt;br /&gt;Removal Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14882/14882 &lt;br /&gt;Install Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15359/15359 &lt;br /&gt;Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12439/23150 &lt;br /&gt;Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 23150/23150 &lt;br /&gt;&lt;br /&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;br /&gt;Package State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1029/1029 &lt;br /&gt;Package Cache Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 490/490 &lt;br /&gt;Image State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;NOTE: Please review release notes posted at:&lt;br /&gt;&lt;br /&gt;http://docs.sun.com/doc/821-1479&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3.- Comprobamos que todo se ha actualizado correctamente&lt;/b&gt;&lt;br /&gt;
Vamos a comprobar, por ejemplo, el paquete PostGreSQL9 que tenemos instalado en el Boot Environment actual y el actualizado (PreUpdate)&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec pkg info postgresql9&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name: postgresql9&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary: PostgreSQL Database Server for OpenIndiana&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; State: Installed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publisher: havoctec&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version: &lt;b&gt;9.0.10&lt;/b&gt;&lt;br /&gt;&amp;nbsp;Build Release: 5.11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Branch: &lt;b&gt;0.148&lt;/b&gt;&lt;br /&gt;Packaging Date: 25 de octubre de 2012 10:08:03 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size: 41.04 MB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI: pkg://havoctec/postgresql9@9.0.10,5.11-0.148:20121025T100803Z&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec pkg -R /mnt/preupdate info postgresql9&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name: postgresql9&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary: PostgreSQL Database Server for OpenIndiana&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; State: Installed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publisher: havoctec&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version: &lt;b&gt;9.0.12&lt;/b&gt;&lt;br /&gt;&amp;nbsp;Build Release: 5.11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Branch: &lt;b&gt;0.151&lt;/b&gt;&lt;br /&gt;Packaging Date: 12 de febrero de 2013 11:00:46 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size: 31.16 MB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI: pkg://havoctec/postgresql9@9.0.12,5.11-0.151:20130212T110046Z&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4.- Forzar la reconfiguración.&lt;/b&gt;&lt;br /&gt;
Aunque este paso no es obligatorio, puede que nos encontremos con algún problema -como en este caso- de drivers que han cambiado y Solaris necesita reconfigurarse.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec touch /mnt/preupdate/reconfigure&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.- Ciclo completo de boot iniciando con el nuevo Boot Enviroment&lt;/b&gt;&lt;br /&gt;
Este paso se puede realizar de dos formas (la segura y la rápida), aunque yo voy a centrarme en la más &quot;segura&quot; que requiere de un acceso físico a la consola para poder seleccionar el Boot Environment de forma &quot;manual&quot; en Grub (x86).&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;a) La más segura&lt;/i&gt;&lt;br /&gt;
Vamos a realizar un ciclo completo de boot, para ello utilizaremos la opción 6 del comando &amp;lt;init&amp;gt; o si lo preferís &quot;apagar/encender&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec init 6&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
Cuando se muestre la opción de arranque del Grub (x86) veremos una nueva entrada que será igual al nombre del Boot Environment que hemos definido, en nuestro caso &quot;PreUpdate&quot;.&lt;br /&gt;
&lt;br /&gt;
Seleccionamos ese entorno y comprobamos que todo funciona correctamente haciendo las pruebas necesarias para, finalmente, dejar como &quot;activado&quot; este nuevo entorno.&lt;br /&gt;
&lt;br /&gt;
NOTA: Una vez comprobado que todo el proceso se realiza correctamente, a mí personalmente, me gusta tener el nombre del Boot Environment de una forma correcta, así que renombro el Boot Environment, pero, no es estríctamente necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm activate PreUpdate&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space Policy Created&lt;br /&gt;&lt;b&gt;PreUpdate NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 141G&amp;nbsp; static 2013-03-07 23:57&lt;/b&gt;&lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,06M static 2011-04-16 04:06&lt;br /&gt;solaris-1 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5,81G static 2011-04-16 04:41&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;b) En un sólo paso&lt;/i&gt;&lt;br /&gt;
Todo el proceso se puede realizar en un sólo paso. Suponiendo que hemos realizado varias pruebas de integración, y el proceso de actualización siempre ha sido correcto, podemos, por ejemplo, activar el nuevo Boot Environment y realizar un ciclo completo de boot, así:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm activate PreUpdate&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec init 6&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6.- Actualizar el &quot;zpool&quot; (SOLO CUANDO ESTEMOS SEGUROS)&lt;/b&gt;&lt;br /&gt;
Por último, una vez comprobado que todo funciona correctamente&amp;nbsp; -y si me lo permitís, pasados unos días- ya sólo queda &lt;a href=&quot;http://sparcki.blogspot.com.es/2010/12/actualizar-la-version-del-pool-zfs-con.html&quot;&gt;actualizar nuestro zpool&lt;/a&gt;, si fuese necesario, para comprobarlo, utilizaremos la opción &amp;lt;status&amp;gt; del comando &amp;lt;zpool&amp;gt;, por ejemplo así:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec zpool status&lt;/b&gt;&lt;br /&gt;&amp;nbsp; pool: rpool&lt;br /&gt;&amp;nbsp;state: ONLINE&lt;br /&gt;status: &lt;b&gt;The pool is formatted using a legacy on-disk format&lt;/b&gt;.&amp;nbsp; The pool can still be used, but some features are unavailable.&lt;br /&gt;action: Upgrade the pool using &#39;zpool upgrade&#39;.&amp;nbsp; Once this is done, the pool will no longer be accessible on software that does not support feature flags.&lt;br /&gt;&amp;nbsp; scan: resilvered 4,10G in 0h1m with 0 errors on Sat Apr 16 13:30:56 2011&lt;br /&gt;config:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ WRITE CKSUM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mirror-0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c2d0s0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3d1s0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&lt;br /&gt;errors: No known data errors&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;¿Y qué hago si falla?&lt;/b&gt;&lt;br /&gt;
Esta pregunta tiene una solución sencilla:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;&quot;activar el Boot Environment anterior y reiniciar&quot;&lt;/i&gt;&lt;/blockquote&gt;
El proceso de &quot;rollback&quot; es tan sencillo como volver a iniciar con el Boot Environment que funcionaba correctamente, para ello, tenemos tres escenarios:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;a) Nuestro sistema arranca hasta level 3.&lt;/i&gt;&lt;br /&gt;
En este caso, simplemente activaremos el boot environment anterior utlizando el comando &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm activate &amp;lt;NombreAnteriorBoot&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;i&gt;b) Nuestro sistema no arranca.&lt;/i&gt;&lt;br /&gt;
Este caso suele ser más problemático porque necesitamos acceso a la consola, e iniciar el sistema en Single Mode y activar el Boot Environment anterior.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;c) Nuestro sistema no arranca y hemos actualizado la versión de zpool&lt;/i&gt;&lt;br /&gt;
Este es un escenario un poco &quot;raro&quot;, ya que por algún motivo, hemos certificado que el nuevo Boot Environment era correcto, hemos actualizado la versión del zpool y ahora queremos &quot;echarlo para atrás&quot;.&lt;br /&gt;
&lt;br /&gt;
La solución sencilla, pasaría por iniciar desde un CDROM -o similar- una versión de Solaris &quot;compatible&quot; con esa versión de zpool, reparar lo que falle y volver a iniciar. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Hemos visto en estas dos partes cómo utilizar los Boot Environments para actualizar nuestros equipos Solaris a versiones nuevas, o para hacer experimentos con un &quot;rollback&quot; sencillo.&lt;br /&gt;
&lt;br /&gt;
Hay que decir que en función de lo que queramos actualizar, deberemos realizar más o menos tareas, por ejemplo, si queremos actualizar PostgreSQL y no queremos bajar la base de datos, tendremos que tirar de WAL ... pero eso es otro post.&lt;br /&gt;
&lt;br /&gt;
Espero vuestros comentarios y sugerencias!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com.es/2013/03/como-trabajar-con-boot-environments-en.html&quot;&gt;&amp;lt;&amp;lt; Cómo trabajar con Boot Environments - Parte 1&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2013/04/como-trabajar-con-boot-environments-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>4</thr:total><georss:featurename>Madrid, España</georss:featurename><georss:point>40.4167754 -3.7037901999999576</georss:point><georss:box>40.0300424 -4.3492371999999575 40.8035084 -3.0583431999999577</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-7551063773667438475</guid><pubDate>Fri, 08 Mar 2013 10:03:00 +0000</pubDate><atom:updated>2013-03-08T11:06:41.925+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">boot environments</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo trabajar con Boot Environments en Solaris - Parte 1</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Los boot environments son una característica que Solaris introdujo en la versión 8, es decir, hace ya mucho tiempo de aquello. Sin embargo, parece que esta característica pasa desapercibida entre muchos SysAdmin de Solaris y realmente es algo &quot;vital&quot; para nuestros sistemas de producción.&lt;br /&gt;
&lt;br /&gt;
Como decía mi padre, &quot;&lt;i&gt;Los experimentos, con gaseosa&lt;/i&gt;&quot;, pues bien, los &lt;i&gt;boot environments&lt;/i&gt; son lo más parecido a la gaseosa que tenemos en Solaris, ;)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Qué es un boot environment&lt;/b&gt;&lt;br /&gt;
Como su nombre indica, es un arranque completo y totalmente diferente. Esto, nos permite por ejemplo, parchear un sistema &quot;OnLine&quot; sin tener que detener sus servicios. Comprobar que todo está correcto e iniciar la máquina con el nuevo boot environment si todo está correcto.&lt;br /&gt;
&lt;br /&gt;
De esta forma, pasamos de tener un tiempo de parada de X horas a el tiempo que tarde la máquina en iniciarse -mucho menos que X, por supuesto- y lo más importante, tenemos un proceso de &quot;rollback&quot; rápido y sencillo.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Cómo funcionan los boot environments&lt;/b&gt;&lt;br /&gt;
La gestión de los boot environments se realiza mediante el comando &amp;lt;beadm&amp;gt; el cual nos proporciona las siguientes opciones:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Ver todos los boot environments que tenemos disponibles&lt;/li&gt;
&lt;li&gt;Activar/Desactivar boot environments&lt;/li&gt;
&lt;li&gt;Crear/Destruir boot environments&lt;/li&gt;
&lt;li&gt;Montar/Desmontar boot environments&lt;/li&gt;
&lt;/ol&gt;
Vamos a ver algunos ejemplos, y así entendemos esta utilidad tan potente.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ver todos BE&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Para ver todos los BE que disponemos en el sistema deberemos utilizar la opción &amp;lt;list&amp;gt; del comando &amp;lt;beadm&amp;gt;, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ---------- -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 441.51M static 2013-03-07 23:57 &lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103.78G static 2011-04-16 04:41 &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Los datos más importantes que vamos a ver en esta primera parte son los siguientes:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;BE&lt;/b&gt;: Nombre único del boot&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Active&lt;/b&gt;: Si es el boot activo, es decir, el que estamos ejecutando ahora mismo&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MountPoint&lt;/b&gt;: Dónde esta montado -luego veremos para qué es interesante-&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Space&lt;/b&gt;: El espacio que ocupa&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Policy&lt;/b&gt;: El tipo de boot -lo veremos con más detalle en la segunda parte-&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Crear un nuevo BE&lt;/b&gt;&lt;br /&gt;
Para crear un nuevo BE, deberemos utilizar la opción &amp;lt;create&amp;gt; con un nombre de BE nuevo y único -en nuestro caso se llama &quot;PreUpdate&quot;-&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$&lt;b&gt; pfexec beadm create PreUpdate&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si ahora volvemos a ver todos los BE que existen en el sistema, veremos cómo hay uno nuevo.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ---------- -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 489.39M static 2013-03-07 23:57 &lt;br /&gt;&lt;b&gt;PreUpdate -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 122.0K&amp;nbsp; static 2013-03-08 10:15 &lt;/b&gt;&lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103.81G static 2011-04-16 04:41 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cuándo crear un nuevo BE &lt;/b&gt;&lt;br /&gt;
Lo cierto es que, tanto si tienes equipos de pruebas, como si no, siempre que quieras hacer algún cambio en los sistemas de producción, deberías comprobar que todo va a ir bien, por ejemplo, si queremos realizar las pruebas de una actualización que vamos a instalar, un nuevo parche, un nuevo paquete, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Destruir un BE&lt;/b&gt;&lt;br /&gt;
Para destruir un BE deberemos tener en cuenta dos cosas importantes:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;El BE no puede estar montado, es decir, el valor de Mountpoint debe ser &quot;-&quot;&lt;/li&gt;
&lt;li&gt;El BE no puede ser el activo, es decir, el valor de Active debe ser &quot;-&quot; &lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;Si cumplimos con esas condiciones, simplemente deberemos utilizar la opción &amp;lt;destroy&amp;gt; y el nombre del BE a eliminar, en nuestro caso &quot;PreUpdate&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$&lt;b&gt; pfexec beadm destroy PreUpdate&lt;/b&gt;&lt;br /&gt;Are you sure you want to destroy PreUpdate?&amp;nbsp; This action cannot be undone(y/[n]): &lt;b&gt;y&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Comprobamos cómo lo ha destruido utilizando la opción &amp;lt;list&amp;gt; -como en casos anteriores-&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ---------- -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 532.16M static 2013-03-07 23:57 &lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103.83G static 2011-04-16 04:41&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NOTA: Aunque al destruir un BE se nos avisa, aunque no está de más que lo recordemos: Esta acción no puede deshacerse&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Montar un BE en un directorio&lt;/b&gt;&lt;br /&gt;
Hasta ahora, no hemos hecho más que crear y destruir BE, sin embargo, en sí eso no aporta nada, verdad ...&lt;br /&gt;
&lt;br /&gt;
Es hora de montar nuestro nuevo BE y poder trabajar con él, para ello, deberemos utilizar la opción &amp;lt;mount&amp;gt; seguida del &amp;lt;nombre&amp;gt; y del &amp;lt;path de montaje&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso el BE será &quot;PreUpdate&quot; y el path de montaje será &quot;/tmp/preupdate&quot; -al igual que sucede con el comando &amp;lt;mount&amp;gt; el path de montaje deberá existir-&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec mkdir /tmp/preupdate&lt;/b&gt;&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm create PreUpdate&lt;/b&gt;&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm mount PreUpdate /tmp/preupdate&lt;/b&gt;&lt;br /&gt;havoc@h100:~$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ----------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 546.31M static 2013-03-07 23:57 &lt;br /&gt;&lt;b&gt;PreUpdate -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /tmp/preupdate 122.0K&amp;nbsp; static 2013-03-08 10:28 &lt;/b&gt;&lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103.88G static 2011-04-16 04:41 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Si nos situamos en el path de nuestro nuevo BE -/tmp/preupdate- veremos que contiene la estructura idéntica a nuestro &quot;sistema online&quot;, realmente, hemos realizado un &quot;snapshoot&quot; del sistema -entraremos en más detalle en la segunda parte-&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;cd /tmp/preupdate&lt;/b&gt;&lt;br /&gt;havoc@h100:/tmp/preupdate$ &lt;b&gt;ls&lt;/b&gt;&lt;br /&gt;bin&amp;nbsp;&amp;nbsp; cdrom&amp;nbsp; devices&amp;nbsp; export&amp;nbsp; kernel&amp;nbsp; media&amp;nbsp; net&amp;nbsp; platform&amp;nbsp; root&amp;nbsp;&amp;nbsp; sbin&amp;nbsp; tmp&amp;nbsp; usr boot&amp;nbsp; dev&amp;nbsp;&amp;nbsp;&amp;nbsp; etc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; home&amp;nbsp;&amp;nbsp;&amp;nbsp; lib&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mnt&amp;nbsp;&amp;nbsp;&amp;nbsp; opt&amp;nbsp; proc&amp;nbsp; rpool&amp;nbsp; system&amp;nbsp; u01&amp;nbsp; var&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Desmontar un BE&lt;/b&gt;&lt;br /&gt;
Para desmontar un BE simplemente deberemos utilizar la opción &amp;lt;umount&amp;gt; seguido del nombre del BE. Continuando con nuestro ejemplo,&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm umount PreUpdate&lt;/b&gt;&lt;br /&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ---------- -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 546.31M static 2013-03-07 23:57 &lt;br /&gt;PreUpdate -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 144.0K&amp;nbsp; static 2013-03-08 10:28 &lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 104.11G static 2011-04-16 04:41 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Activar un BE&lt;/b&gt;&lt;br /&gt;
Una vez tenemos nuestro BE creado, podemos hacer que sea nuestro BE de arranque por defecto. Esto se llama &quot;activar un BE&quot;. Para ello, utilizaremos la opción &amp;lt;activate&amp;gt; y el nombre del BE que queremos activar.&lt;br /&gt;
&lt;br /&gt;
Continuando con nuestro ejemplo, queremos activar el BE &quot;PreUpdate&quot; para que la próxima vez que inicie el sistema sea con este BE.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm activate PreUpdate&lt;/b&gt;&lt;br /&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ---------- -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 546.31M static 2013-03-07 23:57 &lt;br /&gt;&lt;b&gt;PreUpdate R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103.83G static 2013-03-08 10:28 &lt;/b&gt;&lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;solaris-1 N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 204.15M static 2011-04-16 04:41&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Fijaros en el valor de &quot;Active&quot; que ahora nuestro BE &quot;PreUpdate&quot; tiene una &quot;R&quot; -de Root Boot-. La &quot;N&quot; que aparece en el BE &quot;solaris-1&quot; indica que es el &quot;actual&quot;&lt;br /&gt;
&lt;br /&gt;
Para volver a ponerlo sobre el actual, simplemente activamos el BE que cuente con la opción &quot;Active=N&quot;, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm activate solaris-1&lt;/b&gt;&lt;br /&gt;havoc@h100:/$ &lt;b&gt;pfexec beadm list&lt;/b&gt;&lt;br /&gt;BE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Active Mountpoint Space&amp;nbsp;&amp;nbsp; Policy Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------ ---------- -----&amp;nbsp;&amp;nbsp; ------ -------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;HSeries&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 546.31M static 2013-03-07 23:57 &lt;br /&gt;PreUpdate -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 166.0K&amp;nbsp; static 2013-03-08 10:28 &lt;br /&gt;solaris&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.06M&amp;nbsp;&amp;nbsp; static 2011-04-16 04:06 &lt;br /&gt;&lt;b&gt;solaris-1 NR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 104.21G static 2011-04-16 04:41 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta primera parte, &lt;b&gt;hemos sentado las bases para las siguientes entregas&lt;/b&gt; donde veremos realmente la potencia de esta funcionalidad.&lt;br /&gt;
&lt;br /&gt;
Aunque aquí solo hemos expuesto algo muy sencillo, y en apariencia sin mucha utilidad, te aseguro que si dominas los BE estarás mucho más tranquilo con los Upgrades de sistemas de producción.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2013/03/como-trabajar-con-boot-environments-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Madrid, España</georss:featurename><georss:point>40.4167754 -3.7037901999999576</georss:point><georss:box>40.0300424 -4.3492371999999575 40.8035084 -3.0583431999999577</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-970503714443225160</guid><pubDate>Fri, 25 Jan 2013 09:12:00 +0000</pubDate><atom:updated>2013-01-25T10:12:37.877+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><title>Error en python &quot;sslv3 alert handshake failure&quot; sobre OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hace unos días quería hacer unas pruebas sobre una idea que llevaba en la cabeza para nuestro appliance &lt;a href=&quot;http://www.havoctec.com/soluciones-para-colegios.html&quot;&gt;HSeries&lt;/a&gt; mientras iba en el AVE, y, decidí utilizar una máquina virtual que tenía en mi equipo para hacer las pruebas.&lt;br /&gt;
&lt;br /&gt;
Claro que no sabía que me encontraría con un error que, en los sistemas de producción y testing no se repetía, así que estuve volviéndome loco investigando el asunto.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;El error&lt;/b&gt;&lt;br /&gt;
El script escrito en python hace una llamada a un servidor mediante SSL y carga un XML para luego utilizarlo, sin embargo, cuando llamaba en la máquina virtual al script obtenía un error en Python&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;hseries&lt;/span&gt;$ &lt;b&gt;python havoc.boot &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;(c) Havoc Technologies 2007-201&lt;span style=&quot;font-size: x-small;&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Can&#39;t Load XML&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;&amp;nbsp; File &quot;havoc.boot&quot;, line 42, in &amp;lt;module&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; req = urllib2.urlopen(locator)&lt;br /&gt;&amp;nbsp; File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py&quot;, line 126, in urlopen&lt;br /&gt;&amp;nbsp; File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py&quot;, line 394, in open&lt;br /&gt;&amp;nbsp; File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py&quot;, line 412, in _open&lt;br /&gt;&amp;nbsp; File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py&quot;, line 372, in _call_chain&lt;br /&gt;&amp;nbsp; File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py&quot;, line 1207, in https_open&lt;br /&gt;&amp;nbsp; File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py&quot;, line 1174, in do_open&lt;br /&gt;URLError: &amp;lt;urlopen error [Errno 1] _ssl.c:503: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Las pruebas&lt;/b&gt;&lt;br /&gt;
Entendía que tal vez sería un problema del certificado, así que, cree uno nuevo autofirmado -aunque no tenía mucho sentido ya que URLLib2 no comprueba los certificados-, cambié las versiones de Tomcat, de Java, etc. y nada.&lt;br /&gt;
&lt;br /&gt;
No fue hasta que por desesperación, hice la prueba sobre una máquina FreeBSD con el mismo certificado, misma Java, mismo Tomcat y ... funcionó. ¿Entonces el problema está en mi máquina virtual, no? &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;El problema&lt;/b&gt;&lt;br /&gt;
Después de muchas pruebas, comprobé la versión de OpenIndiana -si, ya sé que lo debería haber hecho antes, pero pensaba que era la misma-, y, es aquí donde está el problema. En la versión OpenIndiana b148 la versión de OpenSSL es la 0.9.8.15 -podemos verla utilizando el comando pkg con la opción info-.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/# &lt;b&gt;pkg info openssl&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name: library/security/openssl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary: OpenSSL - a Toolkit for Secure Sockets Layer (SSL v2/v3) and Transport Layer (TLS v1) protocols and general purpose cryptographic library&lt;br /&gt;&amp;nbsp;&amp;nbsp; Description: OpenSSL is a full-featured toolkit implementing the Secure&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocols as well as a full-strength general purpose&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cryptography library.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Category: System/Security&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; State: Installed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publisher: openindiana.org&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Version: 0.9.8.15&lt;/b&gt;&lt;br /&gt;&amp;nbsp;Build Release: 5.11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Branch: 0.148&lt;br /&gt;Packaging Date: 25 de noviembre de 2010 00:12:56 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Size: 10.08 MB&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI: pkg://openindiana.org/library/security/openssl@0.9.8.15,5.11-0.148:20101125T001256Z&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Sin embargo, en el build 151a aunque la versión es igual 0.9.8.15 el tamaño del paquete es inferior.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h1000:~$ &lt;b&gt;pfexec pkg info openssl&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name: library/security/openssl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary: OpenSSL - a Toolkit for Secure Sockets Layer (SSL v2/v3) and Transport Layer (TLS v1) protocols and general purpose cryptographic library&lt;br /&gt;&amp;nbsp;&amp;nbsp; Description: OpenSSL is a full-featured toolkit implementing the Secure&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocols as well as a full-strength general purpose&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cryptography library.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Category: System/Security&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; State: Installed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Publisher: openindiana.org&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Version: 0.9.8.15&lt;/b&gt;&lt;br /&gt;&amp;nbsp;Build Release: 5.11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Branch: 0.151.1&lt;br /&gt;Packaging Date: 12 de septiembre de 2011 02:41:35 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Size: 9.81 MB&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI: pkg://openindiana.org/library/security/openssl@0.9.8.15,5.11-0.151.1:20110912T024135Z&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solución&lt;/b&gt;&lt;br /&gt;
Así que cree una máquina virtual nueva, con la versión OpenIndiana 151a, volví a ejecutar el script y ... listo, ningún problema.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Cuando vayas a hacer unas pruebas aunque sea en un viaje en AVE para pasar el tiempo ... asegúrate de tener el mismo nivel de parcheo, versiones, etc. que los equipos de producción.&lt;br /&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2013/01/error-en-python-sslv3-alert-handshake.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Madrid, España</georss:featurename><georss:point>40.4167754 -3.7037901999999576</georss:point><georss:box>40.0300459 -4.3492371999999575 40.8035049 -3.0583431999999577</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-4100547332483391816</guid><pubDate>Thu, 10 Jan 2013 11:29:00 +0000</pubDate><atom:updated>2013-01-10T12:30:46.055+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">off topic</category><title>Pedir disculpas a todos vosotros por este tiempo de &quot;silencio&quot;</title><description>Hola a todos,&lt;br /&gt;
&lt;br /&gt;
Lo cierto es que quiero pedir disculpas a todos vosotros, los que me seguís desde hace mucho y los que no, por no haber actualizado el blog durante estos últimos meses.&lt;br /&gt;
&lt;br /&gt;
La verdad es que, como ya os he comentado en otras entradas, me encuentro bastante ocupado con el tema de &lt;a href=&quot;http://www.safechildrenguardian.com/&quot;&gt;SafeChildren Guardian&lt;/a&gt; y con apenas tiempo para poder llegar a todo.&lt;br /&gt;
&lt;br /&gt;
Aunque, también os comento que poco a poco voy liberándome de cosas y ... eso significa que puedo volver a dedicar tiempo al Blog y contestar a las preguntas que me hacéis por eMail o directamente desde Blogger.&lt;br /&gt;
&lt;br /&gt;
Tengo muchas cosas en el tintero, como por ejemplo, seguir con el tema de PostgreSQL de Backup y Replicación, El sistema de paquetes de OpenIndiana y algunas otras cosas ...&lt;br /&gt;
&lt;br /&gt;
Os prometo que en unas semanas tendréis nuevo contenido, seguro! Además, poco a poco iré contestando a las dudas, y, si veis que no os he contestado, por favor, mandarme un eMail para recordármelo, :D&lt;br /&gt;
&lt;br /&gt;
Muchas Gracias a todos,&lt;br /&gt;
&lt;br /&gt;
Urko</description><link>http://sparcki.blogspot.com/2013/01/pedir-disculpas-todos-vosotros-por-este.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-6543946464467359463</guid><pubDate>Sun, 08 Jul 2012 21:18:00 +0000</pubDate><atom:updated>2012-07-08T23:18:23.295+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">off topic</category><category domain="http://www.blogger.com/atom/ns#">safechildren guardian</category><title>SafeChildren Guardian entrevista en la radio</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Esta entrada está un poco fuera de la temática normal de mi blog, pero creo que es interesante también poder contar algunas cosas diferentes, no?&lt;br /&gt;
&lt;br /&gt;
Como ya sabéis -y si no os lo cuento- soy el responsable de tecnología de Havoc Tecnologies y, entre los proyectos que llevo, está &lt;a href=&quot;http://www.safechildrenguardian.com/particulares.html&quot;&gt;un Sistema de Control Parental de última generación y basado en análisis de Pautas de Comportamiento&lt;/a&gt;- de ahí muchas cosas de las que hemos hablado, como por ejemplo, Apache Hadoop, PostgreSQL y, por supuesto Solaris-.&lt;br /&gt;
&lt;br /&gt;
El producto se llama &lt;a href=&quot;http://www.safechildrenguardian.com/&quot;&gt;SafeChildren Guardian&lt;/a&gt;&amp;nbsp; y fui entrevistado en Radio Aragón -en el programa de &lt;a href=&quot;http://www.aragonradio2.com/podcast/emision/seguridad-en-internet-mediante-una-iniciativa-aragonesa/&quot;&gt;Aragón 3.0&lt;/a&gt;- sobre la conbinación de &lt;a href=&quot;http://www.safechildrenguardian.com/postdetail.html?title=Pero%20...%20%C2%BFQu%C3%A9%20hace%20mi%20hijo%20tantas%20horas%20en%20Internet?&amp;amp;id=1&quot;&gt;Internet, Menores y las soluciones existentes&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Aunque fue muy resumido, lo cierto es que fue una entrevista muy agradable y, al menos, pudimos aportar nuestro granito de arena a esos padres que, a veces, ven como sus hijos les superan en conocimientos tecnológicos.&lt;br /&gt;
&lt;br /&gt;
Estoy encantado de ver como cada vez más gente se implica en el tema de los menores e Internet, y, espero, que la solución SafeChildren Guardian les aporte &quot;ese punto de tranquilidad&quot; a todos los padres y madres preocupados por sus hijos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2012/07/safechildren-guardian-entrevista-en-la.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Madrid, España</georss:featurename><georss:point>40.4166909 -3.7003454</georss:point><georss:box>40.2232694 -4.0162024 40.6101124 -3.3844884</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-5676106473503943347</guid><pubDate>Sun, 25 Mar 2012 07:25:00 +0000</pubDate><atom:updated>2012-03-25T09:28:07.861+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">rbac</category><category domain="http://www.blogger.com/atom/ns#">roles</category><title>Login Incorrect al lanzar el comando zlogin sobre una zona de solaris</title><description>&lt;br /&gt;
&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Puede que alguna vez os pase que al intentar conectar a una zona de Solaris, el sistema os muestre un error diciendo que los roles sólo puede ser asumidos por usuarios autorizados.&lt;br /&gt;
&lt;br /&gt;
Esto se debe a que hemos modificado el usuario &quot;root&quot; y ahora es un &quot;role&quot;, por ello, si utilizamos el comando &amp;lt;zlogin _nombre_zona&amp;gt; nos denegará la conexión, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoc@h1-master-01:~$ &lt;b&gt;pfexec zlogin www-test&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;[Connected to zone &#39;www-test&#39; pts/3]&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;Roles can only be assumed by authorized users&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;Login incorrect&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;[Connection to zone &#39;www-zone&#39; pts/3 closed]&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;La solución&lt;/b&gt;&lt;br /&gt;
Existen dos soluciones muy sencillas que a continuación os muestro. La primera es utilizar una opción en el comando &amp;lt;zlogin&amp;gt; y la segunda es volver a poner a &amp;lt;root&amp;gt; como usuario.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Utilizar un usuario con el role &amp;lt;root&amp;gt; en la zona&lt;/b&gt;&lt;br /&gt;
Podemos utilizar un usuario con el role &amp;lt;root&amp;gt; en la zona, y mediante la opción &amp;lt;-l usuario&amp;gt; conectarnos, por ejemplo, si tenemos el usuario &quot;havoctec&quot; en la zona &quot;www-test&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoctec@www-test:~$&amp;nbsp;&lt;b&gt;id&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;uid=901(havoctec) gid=10(staff)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoctec@www-test:~$&amp;nbsp;&lt;b&gt;roles&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;root&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoctec@www-test:~$&amp;nbsp;&lt;b&gt;logout&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;[Connection to zone &#39;www-test&#39; pts/3 closed]&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoctec@hseries-master-01:~$ &lt;b&gt;pfexec zlogin -l havoctec www-test&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;[Connected to zone &#39;www-test&#39; pts/3]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;Last login: Wed Mar 14 10:54:47 on pts/3&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;OpenIndiana (powered by illumos) &amp;nbsp; &amp;nbsp;SunOS 5.11 &amp;nbsp; &amp;nbsp;oi_151a &amp;nbsp; &amp;nbsp;September 2011&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoctec@www-test:~$&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Configurar la cuenta de &amp;lt;root&amp;gt; como usuario y no como &amp;lt;role&amp;gt;&lt;/b&gt;&lt;br /&gt;
La otra solución -aunque a mi no me parece la mejor- es configurar la cuenta de &amp;lt;root&amp;gt; como usuario y no &amp;lt;role&amp;gt;, para ello, simplemente deberemos editar el archivo &amp;lt;/etc/user_attr&amp;gt; y modificamos el valor de la propiedad &amp;lt;type=role&amp;gt; por &amp;lt;type=normal&amp;gt;, por ejemplo,&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;,Courier,monospace;&quot;&gt;havoctec@hseries-master-01:~&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ &lt;b&gt;cat /etc/user_attr|grep ^root&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root::::min_label=admin_low;lock_after_retries=no;auths=solaris.*,solaris.grant;audit_flags=lo\:no;profiles=All;clearance=admin_high;&lt;b&gt;type=role&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Es muy sencillo seguir utilizando roles dentro de las zonas, y de esta forma, continuar con la seguridad extendida que nos proporciona RBAC.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-size: 13px; line-height: 18px;&quot;&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot; style=&quot;color: #225588;&quot;&gt;RBAC, Roles y Privilegios en Solaris 10 y OpenIndiana&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-size: 13px; line-height: 18px;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comandos básicos y no tan básicos de Solaris &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;Modelo de Seguridad de Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><link>http://sparcki.blogspot.com/2012/03/login-incorrect-comando-zlogin-zona.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1464476823955237680</guid><pubDate>Fri, 20 Jan 2012 10:33:00 +0000</pubDate><atom:updated>2012-01-20T11:35:10.288+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>DBLink con parametros en PostgreSQL</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hace unos días una persona me dejó una duda a modo de comentario en la entrada de &lt;a href=&quot;http://sparcki.blogspot.com/2010/02/dblinks-en-postgresql.html&quot;&gt;DBLinks en PostgreSQL&lt;/a&gt;. Esta duda es sencilla, y, a la vez interesante, por eso, he decidido crear una entrada explicando la solución.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;La duda&lt;/b&gt;&lt;br /&gt;
¿Es posible crear una vista en PostgreSQL utilizando un DBLink con parámetros dinámicamente?&lt;br /&gt;
&lt;br /&gt;
Es decir, lo que queremos es hacer los siguiente:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
SELECT device_name FROM remote_database_v(param1, param2); &lt;/blockquote&gt;
&lt;b&gt;La solución&lt;/b&gt;&lt;br /&gt;
Sobre si es posible &lt;b&gt;crear una Vista&lt;/b&gt; con un DBLink parametrizado, lo cierto es que no se puede, es decir, no podemos crear una vista pasando un argumento.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, podemos &lt;b&gt;crear un procedimiento&lt;/b&gt; que nos devuelva un tipo &quot;record&quot; y pasarle como parámetros la cadena de conexión, por ejemplo:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
CREATE OR REPLACE FUNCTION test_dblink_with_parameter(dbname character varying, dbhost character varying, dbuser character varying, dbuserpass character varying)&lt;br /&gt;
&amp;nbsp; RETURNS SETOF &lt;b&gt;record&lt;/b&gt; AS&lt;br /&gt;
$BODY$&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT t.device_name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dblink(&#39;dbname=&#39; || $1 || &#39;&amp;nbsp; port=5432 host=&#39; || $2 || &#39; user=&#39; || $3 ||&#39; password=&#39; || $4 , &#39;SELECT device_name FROM devices.as_device&#39;) as &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t(device_name character varying);&lt;br /&gt;
$BODY$&lt;br /&gt;
&amp;nbsp; LANGUAGE &lt;b&gt;sql&lt;/b&gt; VOLATILE;&lt;/blockquote&gt;
Y ahora podemos llamar a nuestro procedimiento como si fuese una tabla o vista.&lt;br /&gt;
&lt;br /&gt;
Recordar que al ser de tipo &quot;record&quot; tenemos que decirle cómo es el formato del registro &amp;lt;AS (field1 type, field2 type, fieldn type)&amp;gt;, en nuestor caso devuelve el campo &quot;as_device&quot; que es de type &quot;character varying&quot;.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
SELECT * FROM test_dblink_with_parameter(&#39;dbname&#39;,&#39;localhost&#39;,&#39;user&#39;,&#39;password&#39;) AS (device_name character varying);&lt;/blockquote&gt;
&lt;b&gt;Algunas Mejoras&lt;/b&gt;&lt;br /&gt;
En función de los datos que estamos obteniendo, podemos, por ejemplo, optimizar el coste &amp;lt;COST&amp;gt; y el número de rows &amp;lt;ROWS&amp;gt; del procedimiento. En el ejemplo, hemos dejado el coste y el número de rows &quot;por defecto&quot;,&amp;nbsp; &lt;i&gt;COST 100&lt;/i&gt; y&amp;nbsp; &lt;i&gt;ROWS 100&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html&quot;&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html&quot;&gt;Copias de Seguridad en PostgreSQL&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz&quot;&gt;PostgreSQL 9.0.3 x86 64bit para OpenIndiana con UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html&quot;&gt;Instalación de OSSP UUID en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2012/01/dblink-con-parametros-en-postgresql.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-7148486592337497862</guid><pubDate>Mon, 02 Jan 2012 08:36:00 +0000</pubDate><atom:updated>2012-01-02T09:36:55.579+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">off topic</category><title>Feliz 2012</title><description>Hemos pasado un año más, y como siempre, toca hacer un repaso a los 365 días que han transcurrido con sus buenos y malos momentos.&lt;br /&gt;
&lt;br /&gt;
Puedo decir que para mi el 2011 ha sido uno de los años más gratificantes -tanto personal como profesionalmente- y, espero que el 2012 sea aún mejor.&lt;br /&gt;
&lt;br /&gt;
Comencé una nueva aventura en &lt;a href=&quot;http://www.havoctec.com/&quot;&gt;Havoc Technologies&lt;/a&gt; como responsable del área de I+D e IT, todo un desafío, pero, ya estamos en la rampa de salida con los productos de &lt;a href=&quot;http://www.safechildrenguardian.com/&quot;&gt;Navegación Segura para Niños&lt;/a&gt; y&lt;a href=&quot;http://www.havoctec.com/soluciones-pymes.html&quot;&gt; Sistemas de Control de Navegación para empresas&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Todo ello basado en Solaris, PostgreSQL y Hadoop. Tecnologías que me encantan, y, aunque los comienzos no fueron fáciles, ya estamos a pleno rendimiento!&lt;br /&gt;
&lt;br /&gt;
Por ello, me gustaría desear a todos los SysAdmins un Feliz 2012&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un Saludo,&lt;br /&gt;
Urko</description><link>http://sparcki.blogspot.com/2012/01/feliz-2012.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1346262615895335796</guid><pubDate>Thu, 15 Dec 2011 09:54:00 +0000</pubDate><atom:updated>2011-12-15T11:11:26.317+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Cómo ver el porcentaje de iNodes Libres y Usados en OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Alguna vez os ha pasado encontrar en el &lt;i&gt;syslog&lt;/i&gt; el mensaje de &quot;&lt;i&gt;out of inodes&lt;/i&gt;&quot;, si nunca lo habéis encontrado mejor :D.&lt;br /&gt;
&lt;br /&gt;
El problema viene porque el sistema de ficheros se está quedando -o se ha quedado sin &lt;i&gt;inodes&lt;/i&gt; libres- y no puede crear/modificar los archivos que contiene ese &lt;a href=&quot;http://sparcki.blogspot.com/2011/01/como-crear-un-filesystem-en-memoria.html&quot;&gt;FileSystem&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Principalmente me he encontrado con este problema cuando parametrizaba un &lt;a href=&quot;http://sparcki.blogspot.com/2009/08/instalar-squid-en-solaris-10-parte-1.html&quot;&gt;servidor de cache squid&lt;/a&gt; con unos valores muy elevados de L1 y L2 en &lt;i&gt;cache_dir&lt;/i&gt; y la unidad no era lo suficientemente grande.&lt;br /&gt;
&lt;br /&gt;
Simplemente deberemos utilizar la opción &amp;lt;-i&amp;gt; del comando &amp;lt;/usr/gnu/bin/df&amp;gt; de GNU ya que Solaris no lo incluye, por ejemplo:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;havoc@hseries:~$ df -i /&lt;br /&gt;Filesystem &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Inodes &amp;nbsp; IUsed &amp;nbsp; IFree IUse% Mounted on&lt;br /&gt;rpool/ROOT/solaris 861385 &amp;nbsp; 593804 &amp;nbsp;86079 1% &amp;nbsp; &amp;nbsp;/&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comandos básicos y no tan básicos de Solaris&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html&quot;&gt;Instalación OpenIndiana paso a paso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/01/como-crear-un-filesystem-en-memoria.html&quot;&gt;Cómo crear un FileSystem en Memoria en Solaris/OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/12/como-ver-el-porcentaje-de-inodes-libres.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>2</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.2766633 -1.5082518999999999 42.0359113 -0.24482389999999998</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-2471820649923319056</guid><pubDate>Sat, 29 Oct 2011 22:09:00 +0000</pubDate><atom:updated>2011-10-30T00:09:11.952+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Cómo desactivar ACPI en OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html&quot;&gt;OpenIndiana&lt;/a&gt; incluye soporte para el sistema ACPI, sin embargo, en algunas ocasiones, puede que nuestro sistema no pueda iniciarse correctamente, y debamos desactivarlas.&lt;br /&gt;
 &lt;br /&gt;
Para poder desactivar el sistema ACPI debemos utilizar la opción &amp;lt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;acpi-user-options=MODO&lt;/span&gt;&amp;gt; en nuesto menú de arranque grub en la sección de &amp;lt;kernel&amp;gt;, donde &quot;modo&quot; será uno de los siguientes valores:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;acpi-user-options=8&lt;/span&gt;, Desactiva el nuevo sistema ACPI y deja el sistema en formato &quot;Legacy&quot;.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;acpi-user-options=4&lt;/span&gt;, Desactiva el nuevo y sistema &quot;Legacy&quot; aunque permite seguir definiendo los &lt;a href=&quot;http://sparcki.blogspot.com/2010/01/diferencias-procesadores-virtuales.html&quot;&gt;Threads de los micros HyperThread&lt;/a&gt; a traves de ACPI.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;acpi-user-options=2&lt;/span&gt;, Desactiva todo el ACPI por completo.&lt;/li&gt;
&lt;/ul&gt;
Deberemos utilizar las opciones de mayor a menor -8,4,2- si encontramos problemas en nuestro OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Por ejemplo, si queremos poner la opción de &quot;desactivado por completo&quot; en la entrada &quot;&lt;a href=&quot;http://www.havoctec.com/soluciones-para-colegios.html&quot;&gt;HSeries&lt;/a&gt;&quot;, editaremos el archivo /rpool/boot/grub/menu.lst de la siguiente forma:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h1master:~$ &lt;b&gt;pfexec vi /rpool/boot/grub/menu.lst &lt;/b&gt;&lt;br /&gt;title HSeries&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;findroot (pool_rpool,0,a)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;bootfs rpool/ROOT/hseries&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;kernel$ /platform/i86pc/kernel/$ISADIR/unix -m verbose -B $ZFS-BOOTFS,acpi-user-options=2&lt;/span&gt;&lt;/b&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;module$ /platform/i86pc/$ISADIR/boot_archive&lt;/span&gt;&lt;/blockquote&gt;
&lt;b&gt;Conclusión&lt;/b&gt;&lt;br /&gt;
Alguna vez podemos encontrarnos con problemas de arranque de OpenIndiana -sobre todo en VMWare ESX- que se solucionan en la mayoría de los casos poniendo la opción de ACPI a 2&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comandos básicos y no tan básicos de Solaris&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html&quot;&gt;Instalación OpenIndiana paso a paso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://sparcki.blogspot.com/2010/01/diferencias-procesadores-virtuales.html&quot;&gt;Diferencias entre Procesadores Virtuales y Físicos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.oracle.com/danasblog/entry/configuring_solaris_acpi_at_boot&quot;&gt;Configuring Solaris ACPI at boot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/10/como-desactivar-acpi-en-openindiana.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-2227976307069214322</guid><pubDate>Sat, 24 Sep 2011 08:46:00 +0000</pubDate><atom:updated>2011-09-24T10:46:12.336+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Cómo clonar una tabla en PostgreSQL</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Alguna vez hemos necesitado &lt;i&gt;clonar&lt;/i&gt; una tabla, tanto estructura como contenido desde el propio SQL sin tener que recurrir a &amp;lt;pg_dump&amp;gt;.&lt;br /&gt;
Tal vez alguno esté pensando en un &lt;b&gt;CREATE TABLE AS SELECT ...&lt;/b&gt; pero lo cierto es que esta solución no nos crea los modificadores, índices, etc.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, no os preocupéis, que en PostgreSQL se puede hacer todo, o casi, y este caso sí que está muy resuelto.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pasos Ejemplo de Clonado &quot;completo&quot;&lt;/b&gt;&lt;br /&gt;
A continuación os muestro -de una forma sencilla- lo que vamos a hacer, paso a paso para que no resulte complicado:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Crearemos una tabla llamada &lt;b&gt;test&lt;/b&gt; con los campos &lt;b&gt;company&lt;/b&gt; y &lt;b&gt;homepage&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Añadiremos un &lt;b&gt;índice único&lt;/b&gt; en &lt;b&gt;company&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Añadiremos un par de compañías&lt;/li&gt;
&lt;li&gt;Crearemos una tabla nueva copiando el contenido de la tabla con un &lt;b&gt;CREATE TABLE&amp;nbsp; AS SELECT&lt;/b&gt; para comprobar cómo no clona los &lt;b&gt;índices, defaults, etc.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Utilizaremos un &lt;b&gt;clonado completo &lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
Una vez explicado, vamos a ponernos manos a la obra&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
search=&amp;gt; &lt;b&gt;CREATE TABLE test(company VARCHAR(20) NOT NULL, homepage VARCHAR(40) NOT NULL);&lt;/b&gt;&lt;br /&gt;CREATE TABLE&lt;br /&gt;search=&amp;gt; &lt;b&gt;CREATE UNIQUE INDEX test_company_uq ON test(company);&lt;/b&gt;&lt;br /&gt;CREATE INDEX&lt;br /&gt;search=&amp;gt; &lt;b&gt;\d test&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table &quot;public.test&quot;&lt;br /&gt;&amp;nbsp; Column&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifiers &lt;br /&gt;----------+-----------------------+-----------&lt;br /&gt;&amp;nbsp;company&amp;nbsp; | character varying(20) | not null&lt;br /&gt;&amp;nbsp;homepage | character varying(40) | not null&lt;br /&gt;Indexes:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;test_company_uq&quot; UNIQUE, btree (company)&lt;/blockquote&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
Ahora, añadimos un par de registros&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
search=&amp;gt; &lt;b&gt;INSERT INTO test(company,homepage) VALUES(&#39;SFChildren&#39;, &#39;http://www.sfchildren.com&#39;);&lt;/b&gt;&lt;br /&gt;INSERT 0 1&lt;br /&gt;search=&amp;gt; &lt;b&gt;INSERT INTO test(company,homepage) VALUES(&#39;HavocTec&#39;, &#39;http://www.havoctec.com&#39;);&lt;/b&gt;&lt;br /&gt;INSERT 0 1&lt;br /&gt;search=&amp;gt; &lt;b&gt;SELECT * FROM test;&lt;/b&gt;&lt;br /&gt;&amp;nbsp; company&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; homepage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;------------+---------------------------&lt;br /&gt;&amp;nbsp;SFChildren | http://www.sfchildren.com&lt;br /&gt;&amp;nbsp;HavocTec&amp;nbsp;&amp;nbsp; | http://www.havoctec.com&lt;br /&gt;(2 rows)&lt;/blockquote&gt;
Copiamos su contenido utilizando &lt;b&gt;CREATE TABLE newTable AS SELECT * FROM sourceTable &lt;/b&gt;y comprobaremos su resultado&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
search=&amp;gt; &lt;b&gt;CREATE TABLE test2 AS SELECT * FROM test;&lt;/b&gt;&lt;br /&gt;SELECT&lt;br /&gt;search=&amp;gt; &lt;b&gt;\d test2&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table &quot;public.test2&quot;&lt;br /&gt;&amp;nbsp; Column&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifiers &lt;br /&gt;----------+-----------------------+-----------&lt;br /&gt;&amp;nbsp;company&amp;nbsp; | character varying(20) | &lt;br /&gt;&amp;nbsp;homepage | character varying(40) | &lt;/blockquote&gt;
Como podemos observar, lo primero que nos falta es el índice que hemos creado &amp;lt;test_company_uq&amp;gt; y los modificadores &amp;lt;NOT NULL&amp;gt; en ambos campos.&lt;br /&gt;
&lt;br /&gt;
Es decir, utilizando esta forma &lt;b&gt;copiamos el contenido y estructura de campos pero no sus modificadores&lt;/b&gt;, pero, que no cunda el pánico, vamos a ver cómo lo podemos hacer de una forma sencilla.&lt;br /&gt;
&lt;br /&gt;
Borramos la tabla test2 que hemos creado para poder volver a clonarla, esta vez de forma completa. &lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
search=&amp;gt; &lt;b&gt;DROP TABLE test2;&lt;/b&gt;&lt;br /&gt;DROP TABLE&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
Clonar &quot;todo&quot;, para ello vamos a utilizar los modificadores &lt;b&gt;LIKE tabla INCLUIDING [DEFAULTS | CONSTRAINTS | INDEXES]&lt;/b&gt;. En nuestro ejemplo, queremos &quot;clonar&quot; toda la estructura&amp;nbsp; así que utilizamos todas.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
search=&amp;gt; &lt;b&gt;CREATE TABLE test2 (LIKE test INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES);&lt;/b&gt;&lt;br /&gt;CREATE TABLE&lt;br /&gt;search=&amp;gt; &lt;b&gt;\d test2&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table &quot;public.test2&quot;&lt;br /&gt;&amp;nbsp; Column&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Modifiers &lt;br /&gt;----------+-----------------------+-----------&lt;br /&gt;&amp;nbsp;company&amp;nbsp; | character varying(20) | not null&lt;br /&gt;&amp;nbsp;homepage | character varying(40) | not null&lt;br /&gt;Indexes:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;test2_company_key&quot; UNIQUE, btree (company)&lt;/blockquote&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Aunque el ejemplo es sencillo, la idea era mostrar la potencia de la opción LIKE ... INCLUIDING sin tener que mostrar una estructura muy compleja.&lt;br /&gt;
&lt;br /&gt;
Además, para aquellos que no os guste el SQL, siempre podéis utilizar el comando &amp;lt;pg_dump&amp;gt; para exportar una tabla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html&quot;&gt;Copias de Seguridad en PostgreSQL - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Instalación de PostgreSQL en OpenIndiana - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><link>http://sparcki.blogspot.com/2011/09/como-clonar-una-tabla-en-postgresql.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>4</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>40.8970673 -2.1399654 42.4155073 0.38688959999999994</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-726516308592667348</guid><pubDate>Mon, 08 Aug 2011 08:53:00 +0000</pubDate><atom:updated>2011-08-08T10:53:43.268+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">rbac</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Cómo buscar el profile necesario para ejecutar un comando en RBAC</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hemos hablado sobre el &lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;RBAC, Modelo de Seguridad en Solaris y Cómo utilizarlo&lt;/a&gt;, sin embargo, cuando se está empezando a utilizarlo nos surge una duda: Qué profile asigno para que pueda ejecutar el comando XYZ?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Buscar el Profile más adecuado&lt;/b&gt;&lt;br /&gt;
Imaginemos por ejemplo que queremos asignar privilegios a un &quot;rol&quot; para que sea capaz de actualizar e instalar paquetes en nuestro Solaris/OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
Sabemos que para ello, necesitamos ejecutar el comando , así que hacemos una búsqueda en el archivo  -donde se encuentran declarados los archivos y sus profiles-&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@hseries:~$ &lt;b&gt;cat /etc/security/exec_attr | grep &quot;pkg&quot;&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:solaris:cmd:::/usr/bin/pkg:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/bin/pkginfo:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/bin/pkgmk:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/bin/pkgparam:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/bin/pkgproto:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/bin/pkgtrans:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/sbin/pkgadd:uid=0;gid=bin&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/sbin/pkgask:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/sbin/pkgchk:uid=0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Software Installation:suser:cmd:::/usr/sbin/pkgrm:uid=0;gid=bin&lt;/span&gt;&lt;/blockquote&gt;
Como podemos observar, el &quot;Profile&quot; es &lt;software installation=&quot;&quot;&gt;, así que, simplemente deberemos asignarlo a nuestro &quot;rol&quot; o usuario.&lt;/software&gt;&lt;br /&gt;
&lt;br /&gt;
Si queremos asignarlo al &quot;role&quot; &lt;jmsserver&gt; haremos lo siguiente: &lt;/jmsserver&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@hseries:~$ &lt;b&gt;pfexec rolemod -P &#39;Software Installation&#39; jmsserver&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@hseries:~$ &lt;b&gt;pfexec profiles jmsserver&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;jmsserver:&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Software Installation&lt;/i&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;ZFS File System Management&lt;/i&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Basic Solaris User&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@hseries:~$ &lt;b&gt;pfexec su - jmsserver&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;OpenIndiana&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SunOS 5.11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oi_148&amp;nbsp; November 2010&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ &lt;b&gt;pkg rebuild-index&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Indexing Packages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 502/502 &lt;/span&gt;&lt;/blockquote&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
RBAC nos permite tener un control muy preciso sobre los accesos y privilegios de nuestros roles/usuarios. Además, debemos tener en cuenta que podemos definirnos nuestros propios &quot;Profiles&quot; para tener justo lo que queremos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comandos básicos y no tan básicos de Solaris &lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;Modelo de Seguridad de Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2011/08/como-buscar-el-profile-necesario-para.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-273021905734675825</guid><pubDate>Sun, 24 Jul 2011 21:54:00 +0000</pubDate><atom:updated>2011-07-24T23:54:30.835+02:00</atom:updated><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 4</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En las primeras partes de &lt;a href=&quot;http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;Qué es Crossbow y Cómo utilizarlo&lt;/a&gt; hablábamos de cada una de sus partes principales, hoy, haremos un pequeño acercamiento a los sistemas de auditoría.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Estadísticas de Red&lt;/b&gt;&lt;br /&gt;
Ya hemos visto en &lt;a href=&quot;http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en_26.html&quot;&gt;Qué es Crossbow y Cómo utilizarlo - Parte 3&lt;/a&gt; el comando &amp;lt;flowstat&amp;gt; que nos mostraba las estadísticas de uso de los flujos, pero siempre contando desde el último boot de nuestro sistema.&lt;br /&gt;
&lt;br /&gt;
Pero, si queremos saber el consumo de un flujo en un determinado tiempo, por ejemplo, a primera hora de la mañana? La verdad es que entonces el comando &amp;lt;flowstat&amp;gt; -tal y como lo hemos visto- no nos sirve, pero tranquilos, que para ello tenemos soluciones.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Auditoría de Red&lt;/b&gt;&lt;br /&gt;
En Solaris/OpenIndiana tenemos un sistema de auditoría muy potente, en el que se incluyen el registro de red &amp;lt;net&amp;gt; y flujos &amp;lt;flow&amp;gt; entre otros.&lt;br /&gt;
Para ello, simplemente deberemos definir un archivo donde queremos que se almacenen los datos -en nuestro caso /var/log/ipqos/hseries/hseries.log- y el tipo de auditoría que queremos realizar.&lt;br /&gt;
&lt;br /&gt;
Todo ello se realizará mediante el comando &amp;lt;/usr/sbin/acctadm&amp;gt; que ahora veremos con más detalle.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tipos de Auditorías&lt;/b&gt;&lt;br /&gt;
Tenemos dos tipos de auditorías: básica y extendida. Para ver qué tipos de datos incluyen cada una de las auditorías utilizaremos la opción &amp;lt;-r&amp;gt; que nos mostrará todas las opciones de auditoría.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -r&lt;/b&gt;&lt;br /&gt;
process:&lt;br /&gt;
extended pid,uid,gid,cpu,time,command,tty,projid,taskid,ancpid,wait-status,zone,flag,memory,mstate&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; pid,uid,gid,cpu,time,command,tty,flag&lt;br /&gt;
task:&lt;br /&gt;
extended taskid,projid,cpu,time,host,mstate,anctaskid,zone&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; taskid,projid,cpu,time&lt;br /&gt;
flow:&lt;br /&gt;
extended saddr,daddr,sport,dport,proto,dsfield,nbytes,npkts,action,ctime,lseen,projid,uid&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr,daddr,sport,dport,proto,nbytes,npkts,action&lt;br /&gt;
&lt;b&gt;net:&lt;br /&gt;
extended name,ehost,edest,vlan_pid,vlan_tci,sap,priority,bwlimit,devname,src_ip,dst_ip,src_port,dst_port,protocol,dsfield,curtime,ibytes,obytes,ipkts,opkts,ierrpkts,oerrpkts&lt;br /&gt;
basic&amp;nbsp;&amp;nbsp;&amp;nbsp; name,devname,ehost,edest,vlan_pid,vlan_tci,sap,priority,bwlimit,curtime,ibytes,obytes,ipkts,opkts,ierrpkts,oerrpkts&lt;/b&gt;&lt;/blockquote&gt;
En nuestro ejemplo de hoy, vamos a centrarnos en el módulo &amp;lt;net&amp;gt; que nos permitirá auditar los eventos de red. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Activar el sistema de auditoría&lt;/b&gt;&lt;br /&gt;
La activación del sistema de auditoría se realiza mediante el comando &lt;acctadm&gt; y la opción &amp;lt;-e {módulo}&amp;gt;, o utilizando el servicio &lt;svc: extended-accounting:net=&quot;&quot; system=&quot;&quot;&gt;.&lt;/svc:&gt;&lt;/acctadm&gt;&lt;br /&gt;
&lt;br /&gt;
Antes de poder activarlo, debemos asignar un fichero donde realizaremos el registro -más adelante veremos otras opciones como utilizar &lt;raw filesystem=&quot;&quot;&gt; para proteger el acceso al mismo-.&lt;/raw&gt;&lt;br /&gt;
&lt;br /&gt;
Como os he comentado, en nuestro ejemplo utilizaremos el archivo ; y el modo de auditoría &lt;extended&gt;&lt;/extended&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec mkdir -p /var/log/ipqos/hseries&lt;/b&gt;&lt;br /&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -e extended -f /var/log/ipqos/hseries/hseries.log net&lt;/b&gt;&lt;/blockquote&gt;
&lt;b&gt;Comprobar el estado de la auditoría&lt;/b&gt;&lt;br /&gt;
Podemos comprobar el estado de un sistema de auditoría utilizando el comando &lt;acctadm {modulo}=&quot;&quot;&gt;, en nuestro caso, queremos comprobar el estado del módulo &lt;net&gt;&lt;/net&gt;&lt;/acctadm&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$&lt;b&gt; pfexec acctadm net&lt;br /&gt;
&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;active&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: &lt;i&gt;extended&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/blockquote&gt;
Vemos que nos indica que está &lt;active&gt; y que el modo de auditoría es &lt;extended&gt;&lt;/extended&gt;&lt;/active&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Desactivar el sistema de auditoría&lt;/b&gt;&lt;br /&gt;
Tenemos varias formas de desactivar la auditoría en función de cómo queramos actuar, por ejemplo, si queremos desactivar temporalmente la auditoría -por una necesidad puntual- o de forma permanente:&lt;br /&gt;
&lt;br /&gt;
Para desactivar temporalmente -sin cerrar el archivo de auditoría-, utilizaremos la opción &amp;lt;-D {modulo}&amp;gt; del comando &lt;acctadm&gt;, por ejemplo, si queremos desactivar la auditoría del módulo &lt;net&gt;:&lt;/net&gt;&lt;/acctadm&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -D net&lt;/b&gt;&lt;br /&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;inactive&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/blockquote&gt;
Para desactivar definitivamente la auditoría, utilizaremos la opción &amp;lt;-x {modulo}&amp;gt;, por ejemplo, al igual que antes el módulo de &lt;net&gt;&lt;br /&gt;&lt;/net&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm -x net&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: inactive&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: &lt;b&gt;none&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/span&gt;&lt;/blockquote&gt;
Debemos fijarnos en el valor de &lt;net accounting=&quot;&quot; file=&quot;&quot;&gt; que ahora nos indica &lt;none&gt;, es decir, está totalmente desactivada&lt;/none&gt;&lt;/net&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Volver a activar las estadísticas&lt;/b&gt;&lt;br /&gt;
En ambos casos, deberemos utilizar la opción &amp;lt;-e -f {archivo}&amp;gt; para activar el sistema, por ejemplo, vemos cómo activarlo utilizando los dos métodos.&lt;br /&gt;
&lt;br /&gt;
Si cerramos el sistema de auditoría&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -x net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$&lt;b&gt; pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;inactive&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting file: &lt;i&gt;none&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm -e extended -f /var/log/ipqos/hseries/hseries.log net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: &lt;i&gt;active&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/blockquote&gt;
Y ahora si tenemos desactivada la auditoría temporalmente &lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec acctadm -D net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Net accounting: inactive&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm -e extended -f /var/log/ipqos/hseries/hseries.log net&lt;/b&gt;&lt;br /&gt;havoc@h1000:~$ &lt;b&gt;pfexec acctadm net&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting: active&lt;br /&gt;&amp;nbsp;&amp;nbsp; Net accounting file: /var/log/ipqos/hseries/hseries.log&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tracked net resources: extended&lt;br /&gt;&amp;nbsp;&amp;nbsp; Untracked net resources: none&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Estadísticas Avanzadas de Red&lt;/b&gt;&lt;br /&gt;
Ahora que ya sabemos activar el sistema de auditoría para la red en Solaris/OpenIndiana, podemos utilizar las funciones avanzadas del comando &lt;flowstat&gt;&lt;/flowstat&gt;&lt;br /&gt;
&lt;br /&gt;
Para ello, utilizaremos las opciones &amp;lt;-h -f {archivo-de-auditoria}&amp;gt;, por ejemplo, siguiendo con nuestro ejemplo:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h1000:~$ &lt;b&gt;pfexec flowstat -h -f /var/log/ipqos/hseries/hseries.log&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
Esto nos daría un resumen de los datos, por ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec flowstat -h -f /var/log/ipqos/hseries/hseries.log&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DURATION&amp;nbsp; IPACKETS RBYTES OPACKETS OBYTES BANDWIDTH&lt;br /&gt;
dns-flow&amp;nbsp;&amp;nbsp; 2655&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6330&amp;nbsp;&amp;nbsp; 42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3834&amp;nbsp; 0 Mbps&lt;br /&gt;
http-flow&amp;nbsp; 2655&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5662&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 535659 7389&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 94452 0.04 Mbps&lt;br /&gt;
https-flow 2655&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1391&amp;nbsp;&amp;nbsp; 24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 946&amp;nbsp;&amp;nbsp; 0 Mbps&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Estadísticas Utilizando un Rango de Fechas&lt;/b&gt;&lt;br /&gt;
Si queremos ver los datos capturados utilizando un rango de fechas, deberemos utilizar las opciones &amp;lt;-s {fecha,hora inicial} -e {fecha,hora final}&amp;gt;, por ejemplo, si queremos saber el tráfico entre las 22:00h y las 22:02h para el flow &lt;http-flow&gt; haremos&lt;/http-flow&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
havoc@h1000:~$ &lt;b&gt;pfexec flowstat -h -f /var/log/ipqos/hseries/hseries.log -s 07/24/2011,22:00:00 -e 07/24/2011,22:02:00 http-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; START&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RBYTES&amp;nbsp;&amp;nbsp; OBYTES&amp;nbsp;&amp;nbsp; BANDWIDTH&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 21:59:57&amp;nbsp; 22:00:17&amp;nbsp; 3105&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5141&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:00:17&amp;nbsp; 22:00:37&amp;nbsp; 3518&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5145&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:00:37&amp;nbsp; 22:00:57&amp;nbsp; 2913&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4646&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:00:57&amp;nbsp; 22:01:17&amp;nbsp; 3568&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5950&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:01:17&amp;nbsp; 22:01:37&amp;nbsp; 2676&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4592&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.002 Mbps&lt;br /&gt;
http-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; 22:01:37&amp;nbsp; 22:01:57&amp;nbsp; 2971&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.003 Mbps&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://draft.blogger.com/goog_17987501&quot;&gt;&amp;lt;&amp;lt; &lt;/a&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 2&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en_26.html&quot;&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Hemos visto cómo podemos utilizar el sistema de auditoría de Solaris/OpenIndiana para registrar los eventos de red.&lt;br /&gt;
&lt;br /&gt;
Además, esto nos da las bases necesarias para poder explorar los sistemas de auditoría que nos aporta Solaris/OpenIndiana así que ... ya lo veremos dentro de nuestra serie &lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;RBAC, Privilegios y Permisos en Solaris&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://sparcki.blogspot.com/2011/07/que-es-crossbow-y-como-utilizarlo-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3091337962986576066</guid><pubDate>Sun, 19 Jun 2011 09:39:00 +0000</pubDate><atom:updated>2011-06-19T11:39:07.765+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>El comando &quot;at&quot; de Solaris/OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
El comando &amp;lt;at&amp;gt; de Solaris nos permite planificar la ejecución de un comando en un intervalo de tiempo. A diferencia de &lt;a href=&quot;http://sparcki.blogspot.com/2009/09/como-editar-el-crontab-en-solaris.html&quot;&gt;cómo gestionar el cron en Solaris&lt;/a&gt;, donde se pueden definir repeticiones &amp;lt;at&amp;gt; nos permite ejecutar un comando &quot;luego&quot;.&lt;br /&gt;
&lt;br /&gt;
El formato de &amp;lt;at&amp;gt; es el siguiente:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;/usr/bin/at [-c | -k | -s] [-m] [-f file] [-p project] [-q queuename] timespec&lt;/blockquote&gt;donde&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;-c&lt;/b&gt; indica que queremos utilizar &amp;lt;C Shell&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-k&lt;/b&gt; indica que queremos utilizar &amp;lt;Korn Shell&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-s&lt;/b&gt; indica que queremos utilizar &amp;lt;Bash Shell&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-f&lt;/b&gt; indica que queremos utilizar &amp;lt;file&amp;gt; como comando en vez de la entrada estandar&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-p&lt;/b&gt; indica que queremos utilizar &amp;lt;project&amp;gt; como proyecto para la ejecución&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-q&lt;/b&gt; indica el nombre de la &amp;lt;queue&amp;gt; que queremos utilizar&lt;/li&gt;
&lt;li&gt;&lt;b&gt;timespec&lt;/b&gt; indica cuándo queremos ejecutarlo&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Colas de Ejecución&lt;/b&gt;&lt;br /&gt;
&amp;lt;at&amp;gt; dispone de diferentes &amp;lt;queue&amp;gt; de ejecución que nos van a permitir gestionar nuestras peticiones. Estas &amp;lt;queue&amp;gt; pueden ser letras en minúsculas de la &amp;lt;a ... z&amp;gt; donde debemos tener en cuenta que la &amp;lt;queue&amp;gt;b&amp;gt; está reservada para &amp;lt;batch&amp;gt; y la &amp;lt;c&amp;gt; para &amp;lt;cron&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;La cola de ejecución &amp;lt;batch&amp;gt;&lt;/b&gt;&lt;br /&gt;
Este tipo especial de &amp;lt;queue&amp;gt; nos permite ejecutar los comandos en modo &quot;secuencial&quot; cuando el equipo está &amp;lt;idle&amp;gt; y, por lo tanto, no nos interfiere en la carga del sistema.&lt;br /&gt;
&lt;br /&gt;
Su formato no requiere una definición de tiempo -ya que lo ejecutará cuando pueda-, por ejemplo&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/# &lt;b&gt;echo &quot;ls &amp;gt;/tmp/ls.batch&quot;| at -q b &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;commands will be executed using /bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;job 1308472386.b at dom jun 19 10:33:06 2011&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Variables definidas para definir la hora de ejecución &amp;lt;timespec&amp;gt;&lt;/b&gt;&lt;br /&gt;
Existen  algunas definiciones ya establecidas para &amp;lt;timespec&amp;lt;, por  ejemplo, &amp;lt;now&amp;gt;, &amp;lt;midnight&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
A estas definiciones podemos añadirles (utilizando +) un intervalo, por ejemplo, &amp;lt;minute, hour, day, week&amp;gt; con lo que tendremos una expresión como esta:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/# &lt;b&gt;echo &quot;ls&quot; | at now + 1 minute&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Ver el estado de las &amp;lt;queue&amp;gt;&lt;/b&gt;&lt;br /&gt;
Para ver el estado de las colas de ejecución, comandos pendientes y la fecha/hora planificada, utilizaremos la opción &amp;lt;-l&amp;gt;, por ejemplo&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/# &lt;b&gt;at -l&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;user = root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1308473222.a&amp;nbsp;&amp;nbsp;&amp;nbsp; dom jun 19 10:47:02 2011&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Borrar un comando de la &amp;lt;queue&amp;gt;&lt;/b&gt;&lt;br /&gt;
Podemos borrar un comando utilizando la opción &amp;lt;-r {id}&amp;gt;, por ejemplo,&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/# &lt;b&gt;echo &quot;ls &amp;gt; /tmp/ls.at&quot; | at now + 5 minutes&lt;/b&gt;&lt;br /&gt;
commands will be executed using /bin/bash&lt;br /&gt;
job 1308473822.a at dom jun 19 10:57:02 2011&lt;br /&gt;
havoc@h100:/# &lt;b&gt;at -l&lt;/b&gt;&lt;br /&gt;
user = root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1308473822.a&amp;nbsp;&amp;nbsp;&amp;nbsp; dom jun 19 10:57:02 2011&lt;br /&gt;
havoc@h100:/# &lt;b&gt;at -r 1308473822.a&lt;/b&gt;&lt;br /&gt;
havoc@h100:/# &lt;b&gt;at -l&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Permitir o denegar la ejecución de comandos&lt;/b&gt;&lt;br /&gt;
Al igual que sucede con &amp;lt;cron&amp;gt;, podemos establecer qué usuarios pueden ejecutar comandos mediante &amp;lt;at o cron&amp;gt; editando el archivo &amp;lt;/etc/cron.d/at.allow&amp;gt; y denegar editando el archivo &amp;lt;/etc/cron.d/at.deny&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Además, debemos tener en cuenta que si el usuario/role no tiene establecida una contraseña, no podrá ejecutar comandos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Algun ejemplo más ...&lt;/b&gt;&lt;br /&gt;
Por ejemplo, si queremos que se lance el sistema de actualización de paquetes hoy por la noche, podemos utilizar el siguiente formato:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:/# &lt;b&gt;echo &quot;pkg refresh --full&quot; | at -q z midnight&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;commands will be executed using /bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;job 1306792800.z at mar may 31 00:00:00 2011&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Este comando -a veces desconocido- nos puede solucionar algún que otro problema, sobre todo cuando queremos dejar &quot;algo para luego&quot;, o si queremos aprovecharnos de la ejecución en formato &quot;batch&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/como-editar-el-crontab-en-solaris.html&quot;&gt;Cómo editar el crontab en Solaris/OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/06/como-funciona-el-sistema-de-instalacion.html&quot;&gt;Cómo funciona el sistema de paquetes IPS en OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/06/el-comando-at-de-solarisopenindiana.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3235691528919423245</guid><pubDate>Sun, 05 Jun 2011 18:42:00 +0000</pubDate><atom:updated>2011-06-05T20:42:00.289+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ips</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Cómo funciona el sistema de instalación por paquetes IPS en OpenIndiana y Solaris - Parte 1</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Entre las muchas novedades que introdujo OpenSolaris, se encuentran el nuevo formato de instalación de paquetes (IPS).&lt;br /&gt;
&lt;br /&gt;
Esta nueva forma de instalación elimina los problemas de dependencias que podíamos tener en el formato anterior (SrV4) aunque, también nos incluye algunas limitaciones que veremos cómo podemos evitarlas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sistema IPS&lt;/b&gt;&lt;br /&gt;
El formato de paquetes IPS es muy parecido al sistema utilizado por FreeBSD, es decir, nos permite instalar, actualizar y desinstalar de una forma sencilla un paquete y sus dependencias, todo ello utilizando un único comando &amp;lt;pkg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Funcionamiento básico&lt;/b&gt;&lt;br /&gt;
Su funcionamiento consiste en incluir repositorios donde podemos encontrar los paquetes -en formato binario-, por lo tanto, disponemos de diversas fuentes desde la cuales instalar.&lt;br /&gt;
&lt;br /&gt;
Estos repositorios se pueden encontrar en una dirección web pública, por ejemplo, &lt;a href=&quot;http://pkg.x86.havoctec.com/&quot;&gt;http://pkg.x86.havoctec.com/&lt;/a&gt; o en un servidor interno, http://localhost:1000/.&lt;br /&gt;
&lt;br /&gt;
Cuando al principio os comentaba sobre &quot;algunas limitaciones&quot; esta era una de ellas, el hecho de necesitar de un acceso a Internet, pero como veis, es muy sencillo de solucionar creando un repositorio &quot;interno&quot; desde el cual instalar los paquetes -lo veremos más adelante-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Repositorios&lt;/b&gt;&lt;br /&gt;
Un repositorio es un servicio web que nos proporciona el funcionamiento de control y acceso. En OpenIndiana/Solaris debemos activar y configurar el servidor &amp;lt;svc:/application/pkg/server:default&amp;gt; para poder gestionarlo.&lt;br /&gt;
&lt;br /&gt;
Cada repositorio está &quot;asociado&quot; un &quot;publisher&quot;, es decir, quién lo publica. De esta forma, si instalamos el paquete &amp;lt;nagios-core&amp;gt; desde el repositorio &amp;lt;&lt;a href=&quot;http://pkg.x86.havoctec.com/&quot;&gt;http://pkg.x86.havoctec.com/&lt;/a&gt;&amp;gt;, nuestro sistema IPS, buscará las actualizaciones siempre en este repositorio.&lt;br /&gt;
&lt;br /&gt;
Para evitar esto, es decir que los paquetes se puedan actualizar desde cualquier repositorio hay que utilizar la opción &amp;lt;--non-sticky&amp;gt; pero luego hablamos con más detalle de todo esto.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Gestionar los Repositorios de Paquetes y Publisher&lt;/b&gt;&lt;br /&gt;
Como hemos comentado, todo el sistema de administración se realiza utilizando el comando &amp;lt;pkg&amp;gt;, para ello, debemos utilizar las opciones &amp;lt;publisher y unset-publisher&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ver los Publicadores -publisher-&lt;/b&gt;&lt;br /&gt;
Debemos utilizar la opción &amp;lt;publisher&amp;gt; para obtener el detalle de los repositorios instalados, y su estado, por ejemplo&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg publisher&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PUBLISHER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS&amp;nbsp;&amp;nbsp; URI&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;openindiana.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (preferred)&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/dev/&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;opensolaris.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/legacy/&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Añadir un nuevo publisher&lt;/b&gt;&lt;br /&gt;
Para añadir un publisher, simplemente deberemos utilizar la opción &amp;lt;publisher&amp;gt; del comando &amp;lt;pkg&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para añdir el publicador HavocTec.Com utilizaremos el siguiente comando, donde la opción &amp;lt;-O&amp;lt; representa la URL del repositorio, y havoctec.com es el nombre del publisher.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$&amp;nbsp; &lt;b&gt;pfexec pkg set-publisher -O http://pkg.x86.havoctec.com/ havoctec.com&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;Y nos quedará de la siguiente forma, donde vemos ahora nuestro nuevo publisher &quot;HavocTec.Com&quot;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg publisher&lt;/b&gt;&lt;br /&gt;
PUBLISHER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS&amp;nbsp;&amp;nbsp; URI&lt;br /&gt;
openindiana.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (preferred)&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/dev/&lt;br /&gt;
opensolaris.org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.openindiana.org/legacy/&lt;br /&gt;
&lt;b&gt;havoctec.com&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; origin&amp;nbsp;&amp;nbsp; online&amp;nbsp;&amp;nbsp; http://pkg.x86.havoctec.com/&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Modificar la URL del repositorio&lt;/b&gt;&lt;br /&gt;
Alguna vez puede que necesitemos modificar la URL en la que se encuentra el repositorio del publisher, para ello, deberemos utilizar la opción &amp;lt;set-publisher&amp;lt; con las opciones &amp;lt;-G direccion_a_eliminar&amp;gt; y &amp;lt;-g direccion_nueva&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para modificar la dirección del repositorio &amp;lt;http://pkg.x86.havoctec.com/&amp;gt; por &amp;lt;http://pkg.havoctec.com/&amp;gt; haremos lo siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg set-publisher -G http://pkg.x86.havoctec.com/ -g http://pkg.havoctec.com/ havoctec.com&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Eliminar un Publisher&lt;/b&gt;&lt;br /&gt;
Para eliminar un publisher, simplemente deberemos utilizar la opción &amp;lt;unset-publisher&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para eliminar el&amp;nbsp; publisher &amp;lt;havoctec.com&amp;gt; haremos lo siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg unset-publisher havoctec.com&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Instalar nuevos paquetes&lt;/b&gt;&lt;br /&gt;
Ya hemos utilizado muchas veces el comando, pero hasta ahora no habíamos entrado en detalle de su funcionamiento, :D. Para instalar un paquete nuevo, siemplemente deberemos ejecutar el comando &amp;lt;pkg install {frmi}&amp;gt;, por ejemplo para instalar el core de nagios, haremos lo siguiente&lt;br /&gt;
&lt;blockquote&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$ &lt;b&gt;pfexec pkg install nagios-core&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to update:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create boot environment:&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;br /&gt;
DOWNLOAD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PKGS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILES&amp;nbsp;&amp;nbsp;&amp;nbsp; XFER (MB)&lt;br /&gt;
Completed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0/0.0&lt;br /&gt;
&lt;br /&gt;
PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACTIONS&lt;br /&gt;
Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3/3 &lt;br /&gt;
&lt;br /&gt;
PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;br /&gt;
Package State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;br /&gt;
Package Cache Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&lt;br /&gt;
Image State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;br /&gt;
&lt;br /&gt;
PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;br /&gt;
Reading Existing Index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8/8 &lt;br /&gt;
Indexing Packages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1 &lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:~$&lt;b&gt; pfexec svcs nagios&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:15:17 svc:/application/network/nagios:server&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Limitaciones de IPS&lt;/b&gt;&lt;br /&gt;
Una de las limitaciones que tenemos en el nuevo sistema de paquetes es que no podemos ejecutar scripts -como antes teníamos post-install, pre-install, etc.- por lo tanto, algunas de las características más &quot;avanzadas&quot; de OpenIndiana/Solaris no se pueden llevar a cabo, por ejemplo crear nuevas autorizaciones, desde el propio sistema de instalación.&lt;br /&gt;
&lt;br /&gt;
Pero, como siempre, tenemos una solución, bueno en este caso hay muchas y diversas, aunque yo he utilizado una sencilla: Crear un script &amp;lt;post-install&amp;gt; en el paquete y llamarlo luego &quot;a mano&quot;, por ejemplo:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:/$ &lt;b&gt;pfexec sh /usr/local/nagios/scripts/post-install &lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;Si estáis interesados en &quot;el por qué&quot; aquí os dejo algunos links a las explicaciones: &lt;a href=&quot;http://blogs.oracle.com/sch/entry/pkg_1_a_no_scripting&quot;&gt;pkg no script zone&lt;/a&gt; y &lt;a href=&quot;http://constantin.glez.de/blog/2010/08/how-add-pre-post-scripts-ips-packages&quot;&gt;pkg postinstall using smf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Eliminar un paquete&lt;/b&gt;&lt;br /&gt;
Para eliminar un paquete, simplemente utilizaremos la opción &amp;lt;uninstall&amp;gt; seguido del nombre del paquete, por ejemplo, si queremos eliminar &amp;lt;nagios-core&amp;gt; haremos lo siguiente:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@tikko:/$ &lt;b&gt;pfexec pkg uninstall nagios-core&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Packages to remove:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create boot environment:&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Services to restart:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ACTIONS&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Removal Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/72&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Removal Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 72/72&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Package State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1 &lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Package Cache Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Image State Update Phase&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2/2 &lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PHASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITEMS&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Reading Existing Index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8/8 &lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Indexing Packages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta primera parte hemos vista algunas funciones básicas de IPS, en las siguientes veremos cómo crear un servidor IPS para tener réplicas locales y, de esta forma, no tener que depender de la conexión de Internet para las instalaciones.&lt;br /&gt;
&lt;br /&gt;
Además, os dejo el link del repositorio público que he creado -gracias a HavocTec por cederme recursos- para que todas las instalaciones que os voy enseñando, se puedan instalar con &amp;lt;pfexec pkg instal {frmi}&amp;gt; y simplificar el proceso.&lt;br /&gt;
&lt;br /&gt;
Aunque actualmente no hay muchos paquetes, poco a poco ire subiendo los principales: PostgreSQL, Apache HTTP, Nagios, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://pkg.x86.havoctec.com/en/catalog.shtml&quot;&gt;Repositorio HavocTec.Com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://hub.opensolaris.org/bin/view/Project+pkg/WebHome&quot;&gt;Documentación IPS en OpenSolaris&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/06/como-funciona-el-sistema-de-instalacion.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-4780444819747597659</guid><pubDate>Thu, 26 May 2011 18:35:00 +0000</pubDate><atom:updated>2011-05-26T20:35:44.397+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">crossbow</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 3</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En las primeras parte de Crossbow Qué y Cómo Utilizarlo hacíamos una introducción a la tecnología. En esta ocasión vamos a ver una nueva utilidad &amp;lt;flowadm&amp;gt; que nos permitirá aplicar QoS de una forma muy sencilla.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Flow o Flujos&lt;/b&gt;&lt;br /&gt;
Los &amp;lt;flow&amp;gt; nos permiten discriminar el tráfico en función de unos parámetros, como por ejemplo puerto origen &amp;lt;local_port&amp;gt;, puerto destino &amp;lt;remote_port&amp;gt;, tipo de protocolo &amp;lt;protocol&amp;gt;, etc. y asignarle una prioridad y un ancho de banda.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cómo utilizar flujos&lt;/b&gt;&lt;br /&gt;
Supongamos que tenemos un servidor con varias zonas, donde a su vez tenemos instalados diferentes servicios -por ejemplo &lt;a href=&quot;http://sparcki.blogspot.com/2009/12/instalar-apache-mod-gzip-solaris-10.html&quot;&gt;Apache HTTP&lt;/a&gt; y &lt;a href=&quot;http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html&quot;&gt;PostgreSQL&lt;/a&gt;- y, queremos asignar unos &quot;anchos de banda y prioridades&quot; para garantizar los servicios.&lt;br /&gt;
&lt;br /&gt;
Así crearemos dos flujos -uno para HTTP y otro para PostgreSQL- donde asignemos unos límites y prioridades sabiendo que ninguno de ellos &quot;usará el ancho de banda del otro&quot; y, de esta forma garantizando nuestros servicios.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Gestión de Flujos&lt;/b&gt;&lt;br /&gt;
Aunque pueda parecer que es lo mismo que veíamos en la &lt;a href=&quot;http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;Crossbow y Cómo utilizarlo en OpenIndiana - Parte 1&lt;/a&gt;, tiene algunas pequeñas diferencias.&lt;br /&gt;
&lt;br /&gt;
En sí, se obtiene un mismo objetivo: &quot;Asignar un ancho de banda máximo&quot; sin embargo, si utilizamos la opción de asignarlo al interface todos los servicios estarán limitados -y no podemos establecer un ajuste más fino-, pero si utilizamos &amp;lt;flowadm&amp;gt;, seremos capaces de diferenciar por servicios y, de esta forma, hacer un ajuste muy fino.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; El comando &amp;lt;flowadm&amp;gt;&lt;/b&gt;&lt;br /&gt;
Toda la gestión se realiza utilizando el comand &amp;lt;/usr/sbin/flowadm&amp;gt; -al igual que sucedía con &amp;lt;dladm&amp;gt;- y sus opciones son las siguientes:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm&lt;/b&gt;&lt;br /&gt;
usage: flowadm &amp;lt;subcommand&amp;gt; &amp;lt;args&amp;gt;...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; add-flow&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; -a &amp;lt;attr&amp;gt;=&amp;lt;value&amp;gt;[,...]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;,...] &amp;lt;flow&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; remove-flow&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] {-l &amp;lt;link&amp;gt; | &amp;lt;flow&amp;gt;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; show-flow&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-l &amp;lt;link&amp;gt;] [&amp;lt;flow&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; set-flowprop&amp;nbsp;&amp;nbsp; [-t] -p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;[,...] &amp;lt;flow&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; reset-flowprop [-t] [-p &amp;lt;prop&amp;gt;,...] &amp;lt;flow&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; show-flowprop&amp;nbsp; [-cP] [-l &amp;lt;link&amp;gt;] [-p &amp;lt;prop&amp;gt;,...] [&amp;lt;flow&amp;gt;]&lt;/blockquote&gt;&lt;br /&gt;
Nota: Recordar que se debe ejecutar como &amp;lt;root&amp;gt; o con un usuario con los privilegios suficientes. Si no sabes mucho de Privilegios y Roles te aconsejo que mires &lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;RBAC: Roles y Privilegios en Solaris/OpenIndiana&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Creación de un &amp;lt;flow&amp;gt;&lt;/b&gt;&lt;br /&gt;
Para crear un flow, simplemente deberemos utilizar la opción &amp;lt;add-flow&amp;gt; y definir sobre que interface queremos que se aplique. Recordar que ahora podemos utilizar tanto interface virtuales como físicos.&lt;br /&gt;
&lt;br /&gt;
Así que vamos a crear un &amp;lt;flow&amp;gt; que nos asigne siempre una prioridad muy alta a los accesos que realicemos a nuestra PostgreSQL sobre nuestro interface es un virtual &amp;lt;vnic1&amp;amp;gt.&lt;br /&gt;
&lt;br /&gt;
Podemos crear un &amp;lt;flow&amp;gt; utilizando las siguientes opciones como &quot;filtros&quot;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Puerto&lt;/b&gt;: Local &amp;lt;local_port&amp;gt; o remoto &amp;lt;remote_port&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tipo Conexión&lt;/b&gt;: &amp;lt;transport&amp;gt;, tcp, udp, sctp, icmp, icmp6&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IP&lt;/b&gt;: Origen &amp;lt;local_ip&amp;gt; o destino &amp;lt;remote_ip&amp;gt;&lt;/li&gt;
&lt;/ul&gt;Utilizaremos las opciones &amp;lt;transport=TCP&amp;gt; para indicar que será de tipo TCP y que el puerto local &amp;lt;local_port&amp;gt;. &lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm add-flow -l vnic1 -a transport=TCP,local_port=5432 postgres-flow&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Ver y Cambiar las propiedades&lt;/b&gt;&lt;br /&gt;
Como sucedía con los interfaces virtuales, podemos cambiarle las propiedades al flujo &quot;en caliente&quot;, para ello, utilizaremos las opciones &amp;lt;show-flowprop&amp;gt; para mostrar las propiedades y &amp;lt;set-flowprop -p {PROPIEDAD=VALOR}&amp;lt; para asignar una nueva.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
postgres-flow maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;br /&gt;
postgres-flow priority&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;/blockquote&gt;Cuando no tenemos asignado un valor a la propiedad se muestran como &quot;--&quot; para indicarnos que no hay nada.&lt;br /&gt;
&lt;br /&gt;
Y para cambiar una propiedad, por ejemplo asignarle la máxima prioridad haremos lo siguiente:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm set-flowprop -p priority=high postgres-flow&lt;/b&gt;&lt;/blockquote&gt;Comprobamos sus propiedades, utilizando la opción &amp;lt;show-flowprop&amp;gt; &lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
postgres-flow maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;br /&gt;
postgres-flow priority&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high &lt;/blockquote&gt;&lt;b&gt;Asignar un Ancho de Banda (maxbw)&lt;/b&gt;&lt;br /&gt;
Para limitar el ancho de banda máximo para el &amp;lt;flow&amp;gt;, deberemos utilizar la propiedad &amp;lt;maxbw&amp;gt;. El valor a asignar será un valor entero y deberemos añadir la escala (K, M o G para Kilobits, Megabits o Gigabits), si no añadimos ninguna, Solaris entenderá que estamos introduciendo Megabits.&lt;br /&gt;
&lt;br /&gt;
Un pequeño apunte sobre la limitación de ancho de banda a tener en cuenta es, si hemos limitado nuestro interface a un determinado valor, nuestro &amp;lt;flow&amp;gt; nunca superará éste aunque se mayor, es decir, si hemos puesto que nuestro interface tiene un valor de &amp;lt;maxbw=10M&amp;gt; y tenemos un flow con &amp;lt;maxbw=20M&amp;gt;, nuestro &amp;lt;flow&amp;gt; nunca nos dará un valor superior a 10M -porque lo limita el interface-&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm set-flowprop -p maxbw=2M postgres-flow&lt;/b&gt;&lt;br /&gt;
havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;br /&gt;
FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
postgres-flow&amp;nbsp; maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2M &lt;br /&gt;
postgres-flow&amp;nbsp; priority&amp;nbsp;&amp;nbsp;&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Resetear todas las propiedades&lt;/b&gt;&lt;br /&gt;
Cuando se está &quot;jugando&quot; con las propiedades, hay veces que queremos empezar &quot;de cero&quot; para poder asignar otros parámetros, para ello, utilizaremos la opción &amp;lt;reset-flowprop&amp;amp;ght;, por ejemplo:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm reset-flowprop postgres-flow&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm show-flowprop postgres-flow&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;FLOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp; VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;postgres-flow maxbw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;postgres-flow priority&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Eliminar un flujo&lt;/b&gt;&lt;br /&gt;
Para eliminar un &amp;lt;flow&amp;gt; simplemente utilizaremos la opción &amp;lt;remove-flow&amp;gt; del comando &amp;lt;flowadm&amp;gt;, siguiendo con nuestro ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowadm remove-flow postgres-flow&lt;/b&gt; &lt;/blockquote&gt;&lt;b&gt;Ver las Estadísticas&lt;/b&gt;&lt;br /&gt;
Podemos ver las estadísticas de un &amp;lt;flow&amp;gt; utilizando el comando &amp;lt;flowstats&amp;gt; que nos proporcionará los valores totales de los flujos, por ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;havoc@h100:~$ &lt;b&gt;pfexec flowstat&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLOW IPKTS&amp;nbsp; RBYTES&amp;nbsp; IERRS OPKTS&amp;nbsp;&amp;nbsp; OBYTES&amp;nbsp;&amp;nbsp;&amp;nbsp; OERRS&lt;br /&gt;
&amp;nbsp; postgres-flow 14,14K 987,97K 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15,68K&amp;nbsp; 17,09M&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pkg-flow 47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,13K&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,54K&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/blockquote&gt;Si queremos ver las estadísticas de un período concreto, debemos activar los sistemas de auditoría que ... esto lo dejaremos para la Parte 4 ya que así lo podremos unir a Auditoría sobre RBAC en Solaris&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://draft.blogger.com/goog_17987501&quot;&gt;&amp;lt;&amp;lt; &lt;/a&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusión&lt;/b&gt;&lt;br /&gt;
Poco a poco avanzamos en el uso de Crossbow, y, en esta ocasión nos hemos centrado en una parte importante de Calidad de Servicio (QoS) que, sinceramente se ha simplificado en gran medida.</description><link>http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en_26.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-9098787446521016174</guid><pubDate>Sun, 22 May 2011 19:20:00 +0000</pubDate><atom:updated>2011-05-22T21:20:00.674+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">havoctec</category><category domain="http://www.blogger.com/atom/ns#">off topic</category><title>Resumen de mi Trabajo en HavocTec</title><description>Hoy no voy a hablar sobre Solaris, OpenIndiana o PostgreSQL .... no, no, no, hoy voy a hacer un &quot;resumen en voz alta&quot; de mis experiencias en &lt;a href=&quot;http://www.havoctec.com/&quot;&gt;HavocTec&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Lo cierto es que, aunque no tengo todo el tiempo que me gustaría para dedicarme al blog -creo que ninguno lo tenemos-, muchos de los posts están inspirados en algo que he hecho -o he tenido que diseñar- tanto en HavocTec como en los productos que disponemos (&lt;a href=&quot;http://www.havoctec.com/services.html&quot;&gt;HSeries&lt;/a&gt;, &lt;a href=&quot;http://www.sfchildren.com/&quot;&gt;SafeChildren&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Han pasado muchas cosas desde que decidí incorporarme a &lt;a href=&quot;http://www.havoctec.com/index.html&quot;&gt;HavocTec&lt;/a&gt;, y, ciertamente no me arrepiento de haberlo hecho, ya que, creo que contribuir a la creación de un Sistema de Gestión de Internet me ha servido para aprender mucho, y, poner ese &quot;granito de arena&quot; contra lo &lt;a href=&quot;http://www.protegeles.org/&quot;&gt;Pornografía Infantil, Acoso, CyberBulling&lt;/a&gt; y otras lacras que nos empiezan a sonar bastante más de lo que me gustaría.&lt;br /&gt;
&lt;br /&gt;
Me ha permitido llevar temas de seguridad a niveles &quot;más humanos&quot; -por ejemplo &lt;a href=&quot;http://www.havoctec.com/news.html&quot;&gt;Charlas con Padres preocupados por sus niños&lt;/a&gt;- y, eso, hace ver que la tecnología tiene un lado humano muy gratificante.&lt;br /&gt;
&lt;br /&gt;
Por eso, quería felicitar a todo el equipo de HavocTec y espero seguir disfrutando como hasta ahora con ellos.&lt;br /&gt;
&lt;br /&gt;
Urko Benito,</description><link>http://sparcki.blogspot.com/2011/05/resumen-de-mi-trabajo-en-havoctec.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.079430800000004 -1.4182684000000165 42.2331438 -0.33480740000001663</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-9222200932857324645</guid><pubDate>Mon, 09 May 2011 21:56:00 +0000</pubDate><atom:updated>2011-05-09T23:56:15.504+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">crossbow</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 2</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En la primera parte hablábamos de &lt;a href=&quot;http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;Qué es Crossbow y Cómo Utilizarlo&lt;/a&gt; en nuestros equipos de producción.&lt;br /&gt;
&lt;br /&gt;
En esta ocasión, vamos a seguir profundizando en las opciones que nos aporta la creación de nic virtuales (vnic)&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Optimización en Servidores CMT (&lt;a href=&quot;http://sparcki.blogspot.com/2010/01/diferencias-procesadores-virtuales.html&quot;&gt;MultiThread&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;
Una de las opciones más interesantes cuando hablamos de servidores Web, es la posibilidad de &quot;unir&quot; nuestras vnic a cores -o threads- de nuestro equipo.&lt;br /&gt;
&lt;br /&gt;
De esta forma, podemos hacer que si tenemos una zona de en la cual tengamos instalado nuestro servidor Web Apache (o varios servidores), la interrupciones que se producen en la tarjeta de red, no afecten a los demás.&lt;br /&gt;
&lt;br /&gt;
Dicho de otra forma, si tenemos una zona donde está nuestro servidor de aplicaciones, pongamos &lt;a href=&quot;http://sparcki.blogspot.com/2010/11/como-configurar-https-en-tomcat.html&quot;&gt;Apache Tomcat&lt;/a&gt; y sobre otra zona nuestro &lt;a href=&quot;http://sparcki.blogspot.com/2010/04/instalacion-de-squid-como-proxy-reverso.html&quot;&gt;Squid como Proxy Reverso&lt;/a&gt;, y nuestra máquina tiene 4 cpus. Así que vamos a asignar las CPUs 0,1,2 al Proxy Reverso y la 3 a nuestro servidor Tomcat.&lt;br /&gt;
&lt;br /&gt;
Para ello, vamos a utilizar la propiedad &amp;lt;cpus&amp;gt; y &amp;lt;priority&amp;gt;, para crear dos VirtualNIC -como vimos en la primera parte-&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@h1-cl1:/# &lt;b&gt;psrinfo &lt;/b&gt;&lt;br /&gt;
0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:24&lt;br /&gt;
1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:26&lt;br /&gt;
2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:26&lt;br /&gt;
3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on-line&amp;nbsp;&amp;nbsp; since 05/09/2011 00:07:26&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm create-vnic -l e1000g0 vnic10&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm create-vnic -l e1000g0 vnic11&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm show-vnic&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; MACADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MACADDRTYPE&amp;nbsp; VID&lt;br /&gt;
vnic10&amp;nbsp;&amp;nbsp; e1000g0&amp;nbsp; 1000&amp;nbsp;&amp;nbsp; 2:8:20:20:17:9f&amp;nbsp; random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
vnic11&amp;nbsp;&amp;nbsp; e1000g0&amp;nbsp; 1000&amp;nbsp;&amp;nbsp; 2:8:20:70:e5:b1&amp;nbsp; random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p cpus=0,1,2 vnic10&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p cpus=3 vnic11&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p priority=high vnic10&lt;/b&gt;&lt;br /&gt;
root@h1-cl1:/# &lt;b&gt;dladm set-linkprop -p priority=medium vnic11&lt;/b&gt;&lt;/blockquote&gt;De esta forma hemos hecho que las tarjetas &quot;no se pisen&quot; cuando tenga un tráfico muy elevado, y, si tenemos CPUs CMT -como los UltraSPARC T- podemos aprovechar al máximo el número de Threads que nos aportan.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://draft.blogger.com/goog_1617897094&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html&quot;&gt;&amp;lt;&amp;lt; Qué es Crossbow y Cómo Utilizarlo - Parte 1&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta ocasión no hemos hablado -a simple vista- de mucho, sin embargo, cuando empecéis a hacer vuestras pruebas, veréis cómo se obtienen unos resultados sorprendentes.&lt;br /&gt;
&lt;br /&gt;
De todas formas, queda mucho por descubrir en Crossbow, y, en las siguientes entregas veremos algo más sobre optimización de anchos de banda (QoS)</description><link>http://sparcki.blogspot.com/2011/05/que-es-crossbow-y-como-utilizarlo-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3694372068358798499</guid><pubDate>Fri, 29 Apr 2011 07:25:00 +0000</pubDate><atom:updated>2011-04-29T09:25:27.170+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><title>Problemas RTL8168B PCI-e en OpenIndiana</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Hace unos días decidí cambiar algunos de mis equipos de pruebas de mi casa, y me &quot;lancé&quot; a comprarme componentes sueltos en App Informática -era en previsión de las días de fiesta ... :D-&lt;br /&gt;
&lt;br /&gt;
Así que me compré diferentes componentes, aunque hoy vamos a hablar sólo de la tarjeta de red &lt;a href=&quot;http://www.appinformatica.com/tarjetas-red-edimax-en-9260tx-e-t.red-gigabit-pci-express.php&quot;&gt;PCI-e EDIMAX&lt;/a&gt; y su Chipset RTL8168B.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;El problema&lt;/b&gt;&lt;br /&gt;
Después de instalar OpenIndiana sin ningún problema, configurar y demás historias -todo ello utilizando la tarjeta de red integrada en la placa- me dispuse a activar la tarjeta PCI-e y configurar OpenIndiana como Router -para poner &lt;a href=&quot;http://sparcki.blogspot.com/2009/09/instalar-squid-como-proxy-transparente.html&quot;&gt;SQUID como Proxy Transparente&lt;/a&gt;-, pero ... cuál fue mi sorpresa que después de unas horas &quot;OpenIndiana se colgaba 100%&quot;.&lt;br /&gt;
&lt;br /&gt;
No respondía nada! Ni por consola!!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;La Solución&lt;/b&gt;&lt;br /&gt;
Siento decir que me hubiese gustado poner aquí &quot;la solución mágica&quot;, pero ... no fui capaz! Toqué cientos de parámetros, cambie de driver -utilizando gani- y muchas horas de pruebas, siempre con el mismo resultado: &quot;colgada 100% de OpenIndiana&quot;&lt;br /&gt;
&lt;br /&gt;
Así que, al final, he cambiado esta tarjeta por una Intel PCI-e ...</description><link>http://sparcki.blogspot.com/2011/04/problemas-rtl8168b-pci-e-en-openindiana.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>4</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-957017670709204819</guid><pubDate>Sun, 17 Apr 2011 21:29:00 +0000</pubDate><atom:updated>2011-04-17T23:32:44.403+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">grub</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Activar Salida por Consola Serie en OpenIndiana/Solaris 11</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Si queremos hacer que nuestro OpenIndiana/Solaris utilice nuestro puerto serie como salida en vez de la tarjeta gráfica, por ejemplo en servidores, simplemente deberemos incluir la opción &quot;console=ttya&quot; en nuestra entrada &quot;kernel&quot; del archivo &amp;lt;menu.lst&amp;gt; de GRUB.&lt;br /&gt;
&lt;br /&gt;
Debemos recordar que si tenemos ZFS como sistema de archivos, el archivo &amp;lt;menu.lst&amp;gt; se encontrará en &amp;lt;POOL/boot/grub&amp;gt;, por ejemplo, en mi caso el nombre del POOL es &quot;rpool&quot;.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@h100:/rpool/boot/grub# &lt;b&gt;zpool status&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; pool: &lt;b&gt;rpool&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;state: ONLINE&lt;br /&gt;
&amp;nbsp;scan: resilvered 4,10G in 0h1m with 0 errors on Sat Apr 16 13:30:56 2011&lt;br /&gt;
config:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ WRITE CKSUM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rpool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mirror-0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c2d0s0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3d1s0&amp;nbsp; ONLINE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&lt;br /&gt;
errors: No known data errors&lt;/blockquote&gt;Editaremos el archivo &quot;menu.lst&quot;, e incluiremos la opción &quot;console=ttya&quot; teniendo en cuenta que debemos incluir un &quot;,&quot; para separar la opción.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@h100:/#&lt;b&gt; vi /rpool/boot/grub/menu.lst&lt;/b&gt; &lt;br /&gt;
&amp;nbsp;title ASEngine Enterprise Platform&lt;br /&gt;
&amp;nbsp;findroot (pool_rpool,0,a)&lt;br /&gt;
&amp;nbsp;bootfs rpool/ROOT/solaris-1&lt;br /&gt;
&amp;nbsp;kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS&lt;b&gt;,console=ttya&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;module$ /platform/i86pc/$ISADIR/boot_archive&lt;br /&gt;
&lt;i&gt;:wq&lt;/i&gt;&lt;/blockquote&gt;Ahora, la próxima vez que iniciemos nuestro OpenIndiana, la salida se producirá por nuestro puerto de serie 1 -ttya- y, por lo tanto, podremos acceder con nuestro programa favorito, por ejemplo &amp;lt;minicom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusión&lt;/b&gt;&lt;br /&gt;
No ha sido difícil activar nuestra salida de consola por puerto serie, y ya podemos gestionar de forma remota -y rápida- nuestro OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/10/como-cambiar-el-timeout-de-arranque-en.html&quot;&gt;Cómo cambiar el TimeOut de GRUB en OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comando básicos de Solaris, y no  tan básicos de Solaris&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/04/activar-salida-por-consola-serie-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-6917505518955018497</guid><pubDate>Mon, 11 Apr 2011 11:22:00 +0000</pubDate><atom:updated>2011-04-11T22:01:14.780+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">crossbow</category><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><title>Qué es Crossbow y Cómo Utilizarlo en Solaris/OpenIndiana - Parte 1</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Una de las tecnologías que OpenSolaris nos dejó fue la &quot;Virtualización de la Infraestructura de Red&quot;. Actualmente tanto OpenIndiana como Solaris 11 incorporan esta tecnología, que, aunque un poco desconocida, realmente muy potente.&lt;br /&gt;
&lt;br /&gt;
En esta serie de artículos vamos a ver cómo podemos utilizar esta tecnología en nuestras máquinas de producción.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;¿Virtualizar Infraestructura de Red?&lt;/b&gt;&lt;br /&gt;
Si, es correcto. Crossbow nos permite virtualizar nuestra infraestructura -switches, routers, tarjetas- por lo tanto, nos permite diseñar una &quot;infraestructura virtual&quot; completa.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, vamos a ver un enfoque más &quot;práctico&quot; a la virtualización de la infraestructura de Red, y, sobre todo, cómo utilizarlo en nuestro equipos de producción.&lt;br /&gt;
&lt;br /&gt;
El uso de &lt;a href=&quot;http://sparcki.blogspot.com/2009/07/gestion-basica-de-zonas-en-solaris-10.html&quot;&gt;Solaris Zones&lt;/a&gt; es una ventaja importante, pero, si queremos &quot;mover&quot; nuestras máquinas virtuales de un host a otro, tenemos algunos problemas -por ejemplo el nombre de la tarjeta de red-. Utilizando una tarjeta virtual, eliminaremos este problema, y, además podremos &lt;a href=&quot;http://sparcki.blogspot.com/2010/04/como-configurar-ipfilter-en-solaris-10.html&quot;&gt;añadir soporte IPFilter a nuestra zona&lt;/a&gt; ya que podemos poner &amp;lt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/05/instalar-ipfilter-en-opensolaris.html&quot;&gt;ip-type=exclusive&lt;/a&gt;&amp;gt; en vez de &amp;lt;shared&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, crossbow incluye una nueva forma de manejar QoS, y sí, esta vez, es sencilla y muy eficiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;El comando &amp;lt;dladm&amp;gt;&lt;/b&gt;&lt;br /&gt;
La gestión de la virtualización de red se encuentra en el comando &amp;lt;/usr/sbin/dladm&amp;gt; que, nos proporciona los métodos para: crear, modificar y borrar elementos virtuales -vnic, etherstub, bridge, vlan-&lt;br /&gt;
&lt;br /&gt;
Si ejecutamos el comando -teniendo en cuenta que debemos disponer de permisos suficientes- sin argumentos, se nos muestra las diferentes opciones &lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec /sbin/dladm &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;usage:&amp;nbsp; dladm &amp;lt;subcommand&amp;gt; &amp;lt;args&amp;gt; ...&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename-link&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;oldlink&amp;gt; &amp;lt;newlink&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-link&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-P &amp;lt;policy&amp;gt;] [-L &amp;lt;mode&amp;gt;] [-T &amp;lt;time&amp;gt;] [-u &amp;lt;address&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; add-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remove-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modify-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-P &amp;lt;policy&amp;gt;] [-L &amp;lt;mode&amp;gt;] [-T &amp;lt;time&amp;gt;] [-u &amp;lt;address&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-aggr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pPLx] [-o &amp;lt;field&amp;gt;,..] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan-wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect-wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e &amp;lt;essid&amp;gt;] [-i &amp;lt;bssid&amp;gt;] [-k &amp;lt;key&amp;gt;,...] [-s wep|wpa]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-a open|shared] [-b bss|ibss] [-c] [-m a|b|g] [-T &amp;lt;time&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; disconnect-wifi&amp;nbsp; [-a] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set-linkprop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;[,...] &amp;lt;name&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reset-linkprop&amp;nbsp;&amp;nbsp; [-t] [-p &amp;lt;prop&amp;gt;,...] &amp;lt;name&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-linkprop&amp;nbsp;&amp;nbsp;&amp;nbsp; [-cP] [-o &amp;lt;field&amp;gt;,...] [-p &amp;lt;prop&amp;gt;,...] &amp;lt;name&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-ether&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-px][-o &amp;lt;field&amp;gt;,...] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-secobj&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-f &amp;lt;file&amp;gt;] -c &amp;lt;class&amp;gt; &amp;lt;secobj&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-secobj&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;secobj&amp;gt;[,...]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-secobj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;secobj&amp;gt;,...]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-vlan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-ft] -l &amp;lt;link&amp;gt; -v &amp;lt;vid&amp;gt; [link]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-vlan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-vlan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -T &amp;lt;type&amp;gt; [-a {local|remote}=&amp;lt;addr&amp;gt;,...] &amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modify-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -a {local|remote}=&amp;lt;addr&amp;gt;,... &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-iptun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,..] [-H] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] -l &amp;lt;link&amp;gt; [-m &amp;lt;value&amp;gt; | auto |&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {factory [-n &amp;lt;slot-id&amp;gt;]} | {random [-r &amp;lt;prefix&amp;gt;]} |&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {vrrp -V &amp;lt;vrid&amp;gt; -A {inet | inet6}} [-v &amp;lt;vid&amp;gt; [-f]]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p &amp;lt;prop&amp;gt;=&amp;lt;value&amp;gt;[,...]] &amp;lt;vnic-link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] &amp;lt;vnic-link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-l &amp;lt;link&amp;gt;] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-f] -l &amp;lt;link&amp;gt; [-P &amp;lt;pkey&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] &amp;lt;part-link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t] [-R &amp;lt;root-dir&amp;gt;] &amp;lt;part-link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-pP] [-o &amp;lt;field&amp;gt;,...][-l &amp;lt;linkover&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;part-link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-ib&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-etherstub [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-etherstub [-t] &amp;lt;link&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-etherstub&amp;nbsp;&amp;nbsp; [-t] [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] [-P &amp;lt;protect&amp;gt;] [-p &amp;lt;priority&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-m &amp;lt;max-age&amp;gt;] [-h &amp;lt;hello-time&amp;gt;] [-d &amp;lt;forward-delay&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-f &amp;lt;force-protocol&amp;gt;] [-l &amp;lt;link&amp;gt;]... &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modify-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] [-P &amp;lt;protect&amp;gt;] [-p &amp;lt;priority&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-m &amp;lt;max-age&amp;gt;] [-h &amp;lt;hello-time&amp;gt;] [-d &amp;lt;forward-delay&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-f &amp;lt;force-protocol&amp;gt;] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; add-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;]... &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remove-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp; [-R &amp;lt;root-dir&amp;gt;] -l &amp;lt;link&amp;gt; [-l &amp;lt;link&amp;gt;]... &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] [&amp;lt;bridge&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -f [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-bridge&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -t [-p] [-o &amp;lt;field&amp;gt;,...] [-s [-i &amp;lt;interval&amp;gt;]] &amp;lt;bridge&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; show-usage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-a] [-d | -F &amp;lt;format&amp;gt;] [-s &amp;lt;DD/MM/YYYY,HH:MM:SS&amp;gt;]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e &amp;lt;DD/MM/YYYY,HH:MM:SS&amp;gt;] -f &amp;lt;logfile&amp;gt; [&amp;lt;link&amp;gt;]&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Ver los interfaces &quot;físicos&quot;&lt;/b&gt;&lt;br /&gt;
El primer paso es conocer nuestros interfaces físicos, y para ello utilizaremos el argumento &amp;lt;show-phys&amp;gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$&lt;b&gt; pfexec /usr/sbin/dladm show-phys&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDIA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; DUPLEX&amp;nbsp;&amp;nbsp;&amp;nbsp; DEVICE&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;e1000g0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ethernet&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1000&amp;nbsp;&amp;nbsp; full&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1000g0&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;e1000g1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ethernet&amp;nbsp;&amp;nbsp; unknown&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; half&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1000g1&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Ver los estado de los &quot;enlaces&quot;&lt;/b&gt;&lt;br /&gt;
Ahora debemos conocer &quot;cómo están conectados&quot; nuestros enlaces, para ello, utilizaremos la opción &amp;lt;show-link&amp;gt; &lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm show-link&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MTU&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; BRIDGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&lt;br /&gt;
e1000g0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;
e1000g1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; unknown&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;/blockquote&gt;&lt;b&gt;Virtualizar Interfaces de Red&lt;/b&gt;&lt;br /&gt;
Crossbow nos permite virtualizar los interfaces de red físicos, y asignarlos a una zona de Solaris como &amp;lt;ip-type=exclusive&amp;gt; de esta forma, podemos utilizar IPFilter de forma separada, y, también &quot;mover&quot; nuestra zona a otro host sin importarnos si la tarjeta de red es o no la misma.&lt;br /&gt;
&lt;br /&gt;
Por defecto utilizaremos el nombre &amp;lt;vnicN&amp;gt; para definir nuestros interfaces virtuales, esto es debido a que en OpenSolaris existía un problema con la nomenclatura, y os recomiendo no cambiar a nombres &quot;más complicados&quot;.&lt;br /&gt;
&lt;br /&gt;
Para la creación de un interface virtual debemos seleccionar sobre que &quot;interface físico&quot; queremos montarlo, en nuestro caso lo haremos sobre &amp;lt;e1000g0&amp;gt; y lo llamaremos &amp;lt;vnic1&amp;gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec /sbin/dladm create-vnic -l e1000g0 vnic1&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Ver Interfaces Virtuales&lt;/b&gt;&lt;br /&gt;
Para ver que interfaces virtuales tenemos declarados en nuestro host, utilizaremos la opción &amp;lt;show-vnic&amp;gt; y para ver su estado utilizaremos &amp;lt;show-link&amp;gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec /sbin/dladm show-vnic&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; MACADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MACADDRTYPE&amp;nbsp; VID&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp; e1000g0 1000&amp;nbsp;&amp;nbsp; 2:8:20:cd:ad:34 random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec dladm show-link&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MTU&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp; BRIDGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&lt;br /&gt;
e1000g0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;
e1000g1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; unknown&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vnic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1000g0&lt;/blockquote&gt;Como vemos, &amp;lt;vnic1&amp;gt; está &quot;asociado&quot; al link físico &amp;lt;e1000g0&amp;gt; y se encuentra como &quot;up&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Manejo de Interface Virtuales&lt;/b&gt;&lt;br /&gt;
La ventaja de uso de interfaces de red virtuales, radica en que se utilizan de igual forma que un interface físico, por lo tanto, podemos utilizar el comando &amp;lt;ifconfig&amp;gt; para asignarle una IP y &quot;levantarlo&quot;, por ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1 plumb&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1 192.168.1.20/24 broadcast + up&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1&lt;/b&gt;&lt;br /&gt;
vnic1: flags=1000843&lt;up,broadcast,running,multicast,ipv4&gt; mtu 1500 index 3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet 192.168.1.20 netmask ffffff00 broadcast 192.168.1.255&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ether 2:8:20:cd:ad:34 &lt;/up,broadcast,running,multicast,ipv4&gt;&lt;/blockquote&gt;Y desconectarlo ...&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec ifconfig vnic1 unplumb&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec ifconfig -a&lt;/b&gt;&lt;br /&gt;
lo0: flags=2001000849&lt;up,loopback,running,multicast,ipv4,virtual&gt; mtu 8232 index 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet 127.0.0.1 netmask ff000000 &lt;br /&gt;
e1000g0: flags=1004843&lt;up,broadcast,running,multicast,dhcp,ipv4&gt; mtu 1500 index 2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet 192.168.1.12 netmask ffffff00 broadcast 192.168.1.255&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ether 8:0:27:86:70:32 &lt;br /&gt;
lo0: flags=2002000849&lt;up,loopback,running,multicast,ipv6,virtual&gt; mtu 8252 index 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet6 ::1/128 &lt;/up,loopback,running,multicast,ipv6,virtual&gt;&lt;/up,broadcast,running,multicast,dhcp,ipv4&gt;&lt;/up,loopback,running,multicast,ipv4,virtual&gt;&lt;/blockquote&gt;&lt;b&gt;Eliminar un Interface Virtual&lt;/b&gt;&lt;br /&gt;
Para eliminar un interface de red virtual, deberemos utilizar la opción &amp;lt;delete-vnic&amp;gt; del comando &amp;lt;dladm&amp;gt;, por ejemplo,&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm delete-vnic vnic1&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;pfexec dladm show-vnic&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Ver las propiedades de un Enlace&lt;/b&gt;&lt;br /&gt;
Una de las opciones más interesantes que nos proporciona esta tecnología es tratar a los interfaces virtuales como &quot;físicos&quot; y, por lo tanto, podemos modificar los parámetros del enlace de forma similar.&lt;br /&gt;
&lt;br /&gt;
Las propiedades de un enlace las obtendremos con la opción &amp;lt;show-linkprop&amp;gt; y el nombre del enlace, en nuestro caso &amp;lt;vnic1&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El valor de PERM nos indicará si es posible modificarlo (rw), o por el contrario si es de sólo lectura (r-). Aunque hay muchas propiedades, hoy nos centraremos en dos: maxbw y priority. &lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;itily@openzooey:~$&lt;b&gt; pfexec dladm show-linkprop vnic1&lt;/b&gt;&lt;br /&gt;
LINK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROPERTY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PERM VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POSSIBLE&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autopush&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zone&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r-&amp;nbsp;&amp;nbsp; unknown&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; up&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; up,down &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1500 &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;maxbw&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpus-effective&amp;nbsp; r-&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pool-effective&amp;nbsp; r-&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;priority&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; low, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; medium,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; high&lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tagmode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; vlanonly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vlanonly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; normal,vlanonly &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mac-nospoof,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; restricted,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip-nospoof,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dhcp-nospoof &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allowed-ips&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allowed-dhcp-cids rw --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxrings&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxrings-effective r- --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txrings&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rw&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txrings-effective r- --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txrings-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxrings-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxhwclnt-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;br /&gt;
vnic1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txhwclnt-available r- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- &lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Modificar una propiedad de un enlace&lt;/b&gt;&lt;br /&gt;
Si la propiedad es de lectura y escritura (rw) entonces, podemos cambiar su valor utilizando la opción &amp;lt;set-linkprop -p OPCION=VALOR&amp;gt;, por ejemplo, vamos a modificar la velocidad de nuestro enlace &amp;lt;vnic1&amp;gt; y vamos a ponerlo a 10Mb en vez de 1000Mb:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm set-linkprop -p maxbw=10m vnic1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm show-vnic&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;LINK&amp;nbsp;&amp;nbsp;&amp;nbsp; OVER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPEED&amp;nbsp; MACADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MACADDRTYPE&amp;nbsp;&amp;nbsp; VID&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;vnic1&amp;nbsp;&amp;nbsp; e1000g0&amp;nbsp; &lt;b&gt;10&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2:8:20:74:9a:f3&amp;nbsp; random&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;&lt;/blockquote&gt;Y ahora la prioridad&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec dladm set-linkprop -p priority=low vnic1&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Crear una Zona con &amp;lt;ip-type=exclusive&amp;gt;&lt;/b&gt;&lt;br /&gt;
Como es costumbre en el blog, después de un poco de teoría, viene la práctica &quot;real&quot;. Esta vez vamos a crear una zona de Solaris/OpenIndiana y vamos a asignar la IP como &quot;exclusiva&quot; para poder incluir IPFilter y poder gestionar el ancho de banda que nos consume nuestra zona. &lt;br /&gt;
&lt;br /&gt;
Para ello, primero crearemos un sistema ZFS donde alojaremos la zona -zonepath- llamado &amp;lt;/export/zones&amp;gt; (En mi caso el zpool es &quot;rpool1&quot;). Si ya disponéis de un espacio ZFS para zonas, no es necesario crear uno nuevo.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec zfs create rpool1/export/zones&lt;/b&gt;&lt;/blockquote&gt;Ahora ya podemos crear la zona, utilizaremos como nombre &amp;lt;pkg-srv&amp;gt; -espero que intuyáis para que la utilizaremos-&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec zonecfg -z pkg-srv&lt;/b&gt;&lt;br /&gt;
pkg-srv: No such zone configured&lt;br /&gt;
Use &#39;create&#39; to begin configuring a new zone.&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;create&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;set zonepath=/export/zones/pkg-srv&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;set ip-type=exclusive&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;set scheduling-class=FSS&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;add net&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv:net&amp;gt; &lt;b&gt;set physical=vnic1&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv:net&amp;gt; &lt;b&gt;end&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;verify&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;commit&lt;/b&gt;&lt;br /&gt;
zonecfg:pkg-srv&amp;gt; &lt;b&gt;exit&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~$&lt;b&gt; pfexec zoneadm -z pkg-srv install&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Encender la zona&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec /usr/sbin/zoneadm -z pkg-srv boot&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Conectarse a la Consola&lt;/b&gt;&lt;br /&gt;
Para los que no tenemos un teclado en_US &lt;a href=&quot;http://sparcki.blogspot.com/2009/08/como-poner-otro-caracter-de-escape-en.html&quot;&gt;el carácter de escape de &amp;lt;zlogin&amp;gt;&lt;/a&gt; es un poco complicado, así que pongo un carácter más sencillo &quot;#.&quot; de ahí la opción -e\# &lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec zlogin -C -e\# pkg-srv&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;[Connected to zone &#39;pkg-srv&#39; console]&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Pantalla de Resumen de Red&lt;/b&gt;&lt;br /&gt;
Aquí os&amp;nbsp; dejo la pantalla de resumen del asistente de configuración de la zona, y como podéis ver, para él (Solaris/OpenIndiana), el uso de una interface virtual no representa ningún cambio, la trata &quot;igual&quot;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;─ Confirm Information for vnic1 ──────────────────&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;gt; Confirm the following information.&amp;nbsp; If it is correct, press F2; to change any information, press F4.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Host name: pkg-srv&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IP address: 192.168.1.20&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; System part of a subnet: Yes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Netmask: 255.255.255.0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enable IPv6: No&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Default Route: Specify one&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Router IP Address: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
────────────────────────────────────────────────&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Esc-2_Continue&amp;nbsp;&amp;nbsp;&amp;nbsp; Esc-4_Change&amp;nbsp;&amp;nbsp;&amp;nbsp; Esc-6_Help&lt;/blockquote&gt;&lt;b&gt;Instalar IPFilter&lt;/b&gt;&lt;br /&gt;
Una vez finalizado el proceso de configuración de la zona, podemos realizar la &lt;a href=&quot;http://sparcki.blogspot.com/2010/04/como-configurar-ipfilter-en-solaris-10.html&quot;&gt;Instalación de IPFilter en la Zona&lt;/a&gt; con un simple&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@pkg-srv:~# &lt;b&gt;pkg install ipfilter&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
En esta primera parte hemos visto cómo es muy sencillo crear interfaces virtuales y, como se comportan &quot;igual&quot; que los físicos. Además, al poder modificar las propiedades de una forma &quot;sencilla&quot;,&amp;nbsp; tenemos un control más exhaustivo.&lt;br /&gt;
&lt;br /&gt;
En las siguientes entregas veremos un poco más sobre propiedades, flujos y, sobre todo, cómo aplicarlo a nuestros entornos de producción, pero hasta entonces ... a esperar.&lt;br /&gt;
&lt;br /&gt;
Como siempre, cualquier duda o sugerencia es bienvenida,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://hub.opensolaris.org/bin/view/Project+crossbow/WebHome&quot;&gt;Projecto Crossbow OpenSolaris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/07/gestion-basica-de-zonas-en-solaris-10.html&quot;&gt;Gestión Básica de Zonas en Solaris &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/04/como-configurar-ipfilter-en-solaris-10.html&quot;&gt;Instalar IPFilter en Solaris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comandos  Básicos y No tan Básicos de Solaris&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/04/que-es-crossbow-y-como-utilizarlo-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>3</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-4099909194423725282</guid><pubDate>Fri, 01 Apr 2011 06:01:00 +0000</pubDate><atom:updated>2011-04-01T08:01:00.786+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">uuid</category><title>Instalar PostgreSQL 9.0.3 64bit en OpenIndiana con soporte UUID</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Continuando con algunas de las características de los módulos &quot;contrib&quot; que tenemos en PostgreSQL, y de algunas dependencias de OpenBravo, vamos a ver cómo podemos &lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Instalar PostgreSQL 9.0.3 en 64bits&lt;/a&gt; sobre OpenIndiana con soporte para UUID.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requisitos Previos&lt;/b&gt;&lt;br /&gt;
Antes de poder continuar, es necesario &lt;a href=&quot;http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html&quot;&gt;Instalar OSSP-UUID en OpenIndiana&lt;/a&gt;, en nuestro caso en 64bits -como vimos anteriormente-&lt;br /&gt;
&lt;br /&gt;
Además, os recomiendo -si no lo sabéis ya- leer los post sobre &lt;a href=&quot;http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html&quot;&gt;Instalar PostgreSQL 9.x en OpenIndiana&lt;/a&gt; y &lt;a href=&quot;http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html&quot;&gt;Requisitos de Instalación de PostgreSQL 9.x en OpenIndiana&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Instalación desde el Binario&lt;/b&gt;&lt;br /&gt;
Para aquellos que no tengáis tiempo -o ganas- os dejo una versión de PostgreSQL 9.0.3 64bits con soporte para OSSP UUID que simplemente hay que descargar e Instalar el módulo en PostgreSQL -ver más abajo-&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;cd /&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; root@openzooey:/# &lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;wget http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; root@openzooey:/# &lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;gzip -dc&lt;/b&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz &lt;/b&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;| tar xpf -&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; root@openzooey:/# &lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;chown -R postgres:postgres /u01&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; root@openzooey:/# &lt;/span&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;rm &lt;/b&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Compilación de PostgreSQL&lt;/b&gt;&lt;br /&gt;
La compilación de PostgreSQL no supone mayor problema que añadir en el script de configuración la opción &amp;lt;--with-ossp-uuid&amp;gt; para que nos permita utilizar nuestro creador de UUID.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, tendremos que exportar nuestro &amp;lt;LD_LIBRARY_PATH&amp;gt; para que el script &amp;lt;configure&amp;gt; pueda &quot;testear&quot; correctamente el acceso a la biblioteca &quot;uuid&quot; que hemos compilado.&lt;br /&gt;
&lt;br /&gt;
Una vez hecho esto, la compilación es, igual que siempre. Vamos a verlo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$&lt;b&gt; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ossp-uuid/lib/64&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export CC=cc &lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export CFLAGS=&quot;-xO3 &amp;nbsp;-xspace -Xa &amp;nbsp;-xildoff &amp;nbsp;-m64 &amp;nbsp;-xc99=none -xCC -fast -native&quot;&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;export LDFLAGS=&quot;-R/usr/sfw/lib/64 -R/usr/lib/64 -R/opt/ossp-uuid/lib/64&quot;&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;./configure&lt;/b&gt; \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --prefix=/u01/app/postgres/9.0/db \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --exec-prefix=/u01/app/postgres/9.0/db \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --bindir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --libexecdir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --sbindir=/u01/app/postgres/9.0/db/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --datadir=/u01/app/postgres/9.0/db/share \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --sysconfdir=/u01/app/postgres/9.0/db/etc \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --mandir=/u01/app/postgres/9.0/db/man \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --libdir=/u01/app/postgres/9.0/db/lib/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --includedir=/u01/app/postgres/9.0/db/include \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --sharedstatedir=/var/postgres/9.0 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --localstatedir=/var/postgres/9.0 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-nls \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --docdir=/u01/app/postgres/9.0/db/doc \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-system-tzdata=/usr/share/lib/zoneinfo \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-python \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-pam \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-openssl \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-libedit-preferred \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-libxml \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-libxslt \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --with-gssapi \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-thread-safety \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-dtrace \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; --disable-integer-datetimes \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;--with-includes=/usr/include:/usr/sfw/include:/opt/ossp-uuid/include&lt;/b&gt; \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;--with-libs=/lib/64:/usr/lib/64:/usr/sfw/lib/64:/opt/ossp-uuid/lib/64&lt;/b&gt; \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;--with-ossp-uuid&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Compilación e Instalación&lt;/b&gt;&lt;br /&gt;
Como siempre, ejecutaremos los comando &amp;lt;make&amp;gt; y &amp;lt;pfexec make install&amp;gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$ &lt;b&gt;make&lt;/b&gt;&lt;br /&gt;
$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/blockquote&gt;&lt;div style=&quot;color: #0b5394;&quot;&gt;NOTA: El proceso de instalación completo se encuentra detallado en &lt;a href=&quot;http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html&quot;&gt;Cómo Instalar PostgreSQL 9 64bits en OpenIndiana con SMF&lt;/a&gt;&lt;/div&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Compilación del Módulo UUID&lt;/b&gt;&lt;br /&gt;
Para compilar el módulo de UUID, será necesario tener instalado PostgreSQL y situarse en el directorio &amp;lt;contrib&amp;gt; del código fuente de PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
Además, tener en cuenta que debemos compilarlo con GNU Make y no con SVR4 Make. Para comprobar &quot;cual tenéis en el path&quot; simplemente se puede utilizar &amp;lt;which make&amp;gt; y ver cuál es, o, simplemente utilizamos &amp;lt;gmake&amp;gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~/postgresql-9.0.3$ &lt;b&gt;cd contrib&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/postgresql-9.0.3/contrib$ &lt;b&gt;cd uuid-ossp&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/postgresql-9.0.3/contrib/uuid-ossp$ &lt;b&gt;gmake&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/postgresql-9.0.3/contrib/uuid-ossp$ &lt;b&gt;pfexec gmake install&lt;/b&gt;&lt;/blockquote&gt;Esto nos creará una nueva biblioteca de enlace dinámico &amp;lt;uuid-ossp.so&amp;gt; en nuestro directorio &amp;lt;lib/64&amp;gt; de PostgreSQL:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;cd&lt;/b&gt; &lt;b&gt;/u01/app/postgres/9.0/db/lib/64&lt;/b&gt;&lt;br /&gt;
itily@openzooey:/u01/app/postgres/9.0/db/lib/64$ &lt;b&gt;ls -ltrh uuid-ossp.so &lt;/b&gt;&lt;br /&gt;
-rwxr-xr-x&amp;nbsp;&amp;nbsp; 1 root root&amp;nbsp;&amp;nbsp; 16K mar 30 21:09 uuid-ossp.so&lt;br /&gt;
itily@openzooey:/u01/app/postgres/9.0/db/lib/64$ &lt;b&gt;file uuid-ossp.so &lt;/b&gt;&lt;br /&gt;
uuid-ossp.so:&amp;nbsp;&amp;nbsp; &lt;i&gt;ELF 64-bit LSB dynamic lib&lt;/i&gt; AMD64 Version 1, dynamically linked, not stripped&lt;br /&gt;
itily@openzooey:/u01/app/postgres/9.0/db/lib/64$ &lt;b&gt;ldd uuid-ossp.so &lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libuuid.so.16 =&amp;gt; /opt/ossp-uuid/lib/64/libuuid.so.16&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libc.so.1 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/lib/64/libc.so.1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libm.so.2 =&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/64/libm.so.2&lt;/blockquote&gt;&lt;b&gt;Instalación en PostgreSQL&lt;/b&gt;&lt;br /&gt;
Por último, sólo nos queda crear las funciones en nuestra DB de PostgreSQL, para ello, utilizaremos el script &amp;lt;uuid-ossp.sql&amp;gt; que encontraremos en $POSTGRES_HOME/share/contrib&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/$ cd /u01/app/postgres/9.0/db/share/contrib&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/u01/app/postgres/9.0/db/share/contrib$ ls -ltr&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;total 7&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;-rw-r--r-- 1 root mar 30 21:09 uninstall_uuid-ossp.sql&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;-rw-r--r-- 1 root mar 30 21:09 uuid-ossp.sql&lt;/span&gt;&lt;/blockquote&gt;Deberemos añadirlo a las DB que queramos, utilizando el comando &amp;lt;psql&amp;gt; y un usuario con permisos para &quot;crear languages&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U postgres -d testdb -f uuid-ossp.sql &lt;/b&gt;&lt;br /&gt;
SET&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U test -d testdb&lt;/b&gt;&lt;br /&gt;
psql (9.0.3)&lt;br /&gt;
Type &quot;help&quot; for help.&lt;br /&gt;
&lt;br /&gt;
testdb=&amp;gt; &lt;b&gt;SELECT uuid_generate_v3(uuid_ns_url(), &#39;http://www.postgresql.org&#39;);&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uuid_generate_v3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
--------------------------------------&lt;br /&gt;
&amp;nbsp;cf16fe52-3365-3a1f-8572-288d8d2aaa46&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
testdb=&amp;gt; &lt;b&gt;SELECT uuid_generate_v3(uuid_ns_url(), &#39;http://www.havoctec.com/&#39;);&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uuid_generate_v3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
--------------------------------------&lt;br /&gt;
&amp;nbsp;5f2f3ed0-ce36-3968-b065-4bbaf6684d22&lt;br /&gt;
(1 row)&lt;br /&gt;
&lt;br /&gt;
testdb=&amp;gt; &lt;b&gt;\q&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Desinstalación del módulo&lt;/b&gt;&lt;br /&gt;
Para poder desinstalarlo, simplemente utilizaremos el script &amp;lt;uninstall_uuid-ossp.sql&amp;gt; de la siguiente forma:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U postgres -d testdb -f&lt;/b&gt; &lt;b&gt;uninstall_uuid-ossp.sql &lt;/b&gt;&lt;br /&gt;
SET&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
DROP FUNCTION&lt;/blockquote&gt;&lt;b&gt;Algunos Errores&lt;/b&gt;&lt;br /&gt;
Si no hemos podido instalar correctamente el módulo dentro de PostgreSQL, se nos mostrará el siguiente error al tratar de usar la función:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;testdb=&amp;gt; &lt;b&gt;SELECT uuid_generate_v3(uuid_ns_url(), &#39;http://www.postgresql.org&#39;);&lt;/b&gt;&lt;br /&gt;
ERROR:&amp;nbsp; function uuid_ns_url() does not exist&lt;br /&gt;
LINE 1: SELECT uuid_generate_v3(uuid_ns_url(), &#39;http://www.postgresq...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br /&gt;
HINT:&amp;nbsp; No function matches the given name and argument types. You might need to add explicit type casts.&lt;/blockquote&gt;Si intentamos crear las funciones con un usuario que no tiene permisos suficientes, tendremos el siguiente error:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;postgres@openzooey:~$ &lt;b&gt;/u01/app/postgres/9.0/db/bin/64/psql -U testuser -d testdb -f&lt;/b&gt; uuid-ossp.sql &lt;br /&gt;
SET&lt;br /&gt;
psql:uuid-ossp.sql:9: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:14: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:19: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:24: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:29: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:34: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:39: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:44: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:49: ERROR:&amp;nbsp; permission denied for language c&lt;br /&gt;
psql:uuid-ossp.sql:54: ERROR:&amp;nbsp; permission denied for language c&lt;/blockquote&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;br /&gt;
Parece más complicado de lo que parece, pero al final, resulta bastante sencillo. Además, debemos recordar que a partir de ahora, tenemos que incluir OSSP-UUID como dependencia de nuestro PostgreSQL &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html&quot;&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html&quot;&gt;Copias de Seguridad en PostgreSQL&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana-with-uuid.tar.gz&quot;&gt;PostgreSQL 9.0.3 x86 64bit para OpenIndiana con UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html&quot;&gt;Instalación de OSSP UUID en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-3833565739195519120</guid><pubDate>Wed, 30 Mar 2011 22:35:00 +0000</pubDate><atom:updated>2011-04-01T09:19:08.797+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><category domain="http://www.blogger.com/atom/ns#">uuid</category><title>Compilar OSSP UUID en OpenIndiana para PostgreSQL</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Aunque PostgreSQL tiene un tipo de datos UUID nativo, no existe implementación para la generación de los mismos. Por eso, es necesario utilizar una biblioteca que lo implemente, en nuestro caso OSSP-UUID.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Antes de Empezar&lt;/b&gt;&lt;br /&gt;
Lo cierto es que la Instalación de OSSP-UUID no comienza con buen pie, ya que la &lt;a href=&quot;http://www.ossp.org/pkg/lib/uuid/&quot;&gt;página oficial&lt;/a&gt; proporciona un servidor ftp para su descarga, pero ... no ha sido posible, así que he tenido que &lt;a href=&quot;http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/&quot;&gt;utilizar algún mirror&lt;/a&gt; para poder descargarlo.&lt;br /&gt;
&lt;br /&gt;
Después de este pequeño contratiempo, ya podemos comenzar con la compilación, no exenta de problemillas, así que si no tenéis mucho tiempo y/o ganas, podéis utilizar la versión que he compilado tanto en 32bit como 64bits, aunque en la versión de 64bits no he incluido soporte para C++ ya que ha sido imposible.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Instalación desde el binario&lt;/b&gt;&lt;br /&gt;
Para aquellos que no tengáis tiempo, podéis instalar OSSP-UUID desde el binario descargando y descomprimiendo sobre el directorio &amp;lt;/opt&amp;gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;b&gt;cd /opt&lt;/b&gt;&lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;wget http://blog.sfchildren.com/blogger/postgres/ossp-uuid/openindiana/ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz&lt;/b&gt;&lt;br /&gt;
...&lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;gzip -dc ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz | tar xpf -&lt;/b&gt;&lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;rm ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz&lt;/b&gt; &lt;br /&gt;
root@openzooey:/opt# &lt;b&gt;cd ossp-uuid&lt;/b&gt;&lt;br /&gt;
root@openzooey:/opt/ossp-uuid# &lt;b&gt;bin/64/uuid&lt;/b&gt;&lt;br /&gt;
2645be62-5b18-11e0-8701-8f5adc896ddd&lt;br /&gt;
root@openzooey:/opt/ossp-uuid# &lt;b&gt;bin/uuid&lt;/b&gt;&lt;br /&gt;
2a08e9ca-5b18-11e0-9914-47107445423d&lt;/blockquote&gt;&lt;b&gt;Instalación desde el código fuente&lt;/b&gt;&lt;br /&gt;
Para la instalación desde el código fuente, deberemos tener en cuenta que la compilación en 64bits no es posible realizarla utilizando el flag &amp;lt;--with-cxx&amp;gt; y debemos separar las bibliotecas de 64bits de las de 32bits utilizando &amp;lt;--bindir=&amp;gt; y &amp;lt;--libdir&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Además, hay que hacer un ajuste para que nos enlace de forma correcta la biblioteca, utilizando CC=&quot;cc -m64&quot; ya que libtool no lo pasa correctamente &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Descargamos el Código Fuente&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;wget http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;gzip -dc uuid-1.6.2.tar.gz | tar xpf -&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Compilación en 64bits&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;cd uuid-1.6.2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CC=&quot;cc -m64&quot;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CXX=cc&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CFLAGS=&quot;-xO3 -xspace -Xa -xildoff -m64 -xc99=none -fast -native -xCC&quot;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CXXFLAGS=&quot;-xO3 -xspace -Xa -xildoff -m64 -xc99=none -fast -native -xCC&quot;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;./configure \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --prefix=/opt/ossp-uuid \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --bindir=/opt/ossp-uuid/bin/64 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --libdir=/opt/ossp-uuid/lib/64&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;itily@openzooey:~/a/uuid-1.6.2$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Compilación en 32bits&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CC=&quot;cc&quot;&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CFLAGS=&quot;-xO3 -xspace -Xa -xildoff -m32 -xc99=none -xCC&quot;&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;export CXXFLAGS=$CFLAGS&lt;/b&gt; &lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;./configure \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --prefix=/opt/ossp-uuid \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --bindir=/opt/ossp-uuid/bin \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;   --libdir=/opt/ossp-uuid/lib&lt;/b&gt;&lt;br /&gt;
itily@openzooey:~/uuid-1.6.2$ &lt;b&gt;pfexec make install&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Comprobación de Funcionamiento&lt;/b&gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;/opt/ossp-uuid/bin/uuid -v 4 -n 4&lt;/b&gt;&lt;br /&gt;
2dadf532-fddf-4902-b89b-4354f208b882&lt;br /&gt;
441823a3-5f73-4a9e-be28-0ed394091f7f&lt;br /&gt;
926c0d16-99b4-4d72-b5c7-e91933a4818a&lt;br /&gt;
c3347042-de2b-4407-9ba5-03ea4ef5a984&lt;br /&gt;
itily@openzooey:~$ &lt;b&gt;/opt/ossp-uuid/bin/64/uuid -v 4 -n 4&lt;/b&gt;&lt;br /&gt;
4376f895-750a-4eef-a865-f06a89baed61&lt;br /&gt;
0e4bf68c-7386-4329-9aaa-9e3c3cbc0672&lt;br /&gt;
cb5134d4-5cbb-401b-aa70-0edcce7f1a04&lt;br /&gt;
ccabcd16-3227-4b59-b0de-3bad19d988f9&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html&quot;&gt;Instalar PostgreSQL 9.0.3 64bits con Soporte UUID en OpenIndiana &amp;gt;&amp;gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;
Bueno, al principio parece un poco complicado, aunque, al final, no es más que una instalación normal y, como siempre, son los 64bits los que más problemas nos dan.&lt;br /&gt;
&lt;br /&gt;
Ahora sólo nos queda compilar correctamente nuestro &lt;a href=&quot;http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html&quot;&gt;PostgreSQL 9 con Soporte par UUID e Instalarlo en OpenIndiana&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Refrencias&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.ossp.org/pkg/lib/uuid/&quot;&gt;Página oficial de OSSP UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/postgres/ossp-uuid/openindiana/ossp-uuid-1.6.2-OpenIndiana-x86-32bit-64bit.tar.gz&quot;&gt;UUID para OpenIndiana x86 32bit y 64bit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/04/instalar-postgresql-903-64bit-en.html&quot;&gt;Instalar PostgreSQL 9.0.3 64bits en OpenIndiana con soporte UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Instalar PostgreSQL 9.0.x 64bits en OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/03/compilar-ossp-uuid-en-openindiana-para.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.87653790000001663</georss:point><georss:box>41.416485800000004 -1.1232984000000166 41.8960888 -0.6297774000000167</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-6177599213761828302</guid><pubDate>Sun, 20 Mar 2011 14:26:00 +0000</pubDate><atom:updated>2011-03-20T15:26:50.291+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">openindiana</category><category domain="http://www.blogger.com/atom/ns#">postgres</category><title>Instalación de PostgreSQL 9.0.3 en OpenIndiana utilizando SMF y RBAC, Requisitos</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
Ya hemos hablado varias veces de &lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Cómo Instalar PosgreSQL en OpenIndiana&lt;/a&gt; y, también &lt;a href=&quot;http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html&quot;&gt;Cómo Actualizar PostgreSQL en OpenIndiana&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
En esta ocasión, vamos a compilar PostgreSQL 9.0.3 en 64bits y, debido a las peticiones que tengo por parte de vosotros, también en 32bits.&lt;br /&gt;
&lt;br /&gt;
Además, veremos todos los requisitos necesarios para poder gestionar PostgreSQL 9.0.3 en OpenIndiana utilizando Solaris SMF y, utilizar RBAC para su gestión. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Antes de comenzar&lt;/b&gt;&lt;br /&gt;
He visto que alguno de vosotros tenéis problemas con la forma de instalación de PostgreSQL sobre OpenIndiana, y, al parecer también con el role &amp;lt;postgres&amp;gt; o los pasos de compilación.&lt;br /&gt;
&lt;br /&gt;
Todos los pasos de compilación de estos post se realizan sobre OpenIndiana 64bits utilizando para la instalación el formato de &amp;lt;Text Install&amp;gt; y siguiendo los pasos de Instalar &lt;a href=&quot;http://sparcki.blogspot.com/2011/02/instalar-openindiana-b147-paso-paso-en.html&quot;&gt;OpenIndiana en VirtualBox Paso a Paso&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Así mismo, os recomiendo -si no lo habéis hecho antes- leer el post sobre &lt;a href=&quot;http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html&quot;&gt;Actualización de PostgreSQL 9.0.2 64bits en OpenIndiana&lt;/a&gt;, donde explico los pasos de una forma más detallada.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Upgrade desde OpenSolaris&lt;/b&gt;&lt;br /&gt;
Si hemos hecho el &amp;lt;upgrade&amp;gt; desde OpenSolaris, tendremos el role &amp;lt;postgres&amp;gt; y las autorizaciones necesarias, si por el contrario hemos &lt;b&gt;Instalado OpenIndiana directamente, no existirán&lt;/b&gt; y las deberemos crear. &lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Comprobación de las Autorizaciones&lt;/b&gt;&lt;br /&gt;
Debemos comprobar también que tenemos las autoriaciones necesarias para poder gestionar el servicio &amp;lt;postgresql_9&amp;gt; en nuestro sistema a través de Solaris SMF.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec&amp;nbsp; cat /etc/security/auth_attr|grep postgres&lt;/b&gt;&lt;br /&gt;
solaris.smf.manage.postgres:::Manage Postgres service states::&lt;br /&gt;
solaris.smf.value.postgres:::Change Postgres value properties::&lt;/blockquote&gt;Si no nos devuelve nada, entonces deberemos crearlo, para ello añadiremos las autorizaciones de la siguiente forma&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;b&gt;echo &quot;solaris.smf.manage.postgres:::Manage Postgres service states::&quot; &amp;gt;&amp;gt; /etc/security/auth_attr&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;echo &quot;solaris.smf.value.postgres:::Change Postgres value properties::&quot; &amp;gt;&amp;gt; /etc/security/auth_attr&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Verificación del Profile &amp;lt;Postgres Administration&amp;gt;&lt;/b&gt;&lt;br /&gt;
Por último, debemos comprobar que tenemos el &amp;lt;profile&amp;gt; de Administración de PostgreSQL definido en nuestro sistema, para ello, haremos&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec cat /etc/security/prof_attr|grep Postgres&lt;/b&gt;&lt;br /&gt;
Postgres Administration::::auths=solaris.smf.manage.postgres,solaris.smf.value.postgres&lt;/blockquote&gt;Si no nos devuelve nada, deberemos crearlo de la siguiente manera:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;b&gt;echo &quot;Postgres Administration::::auths=solaris.smf.manage.postgres,solaris.smf.value.postgres&quot; &amp;gt;&amp;gt; /etc/security/prof_attr&lt;/b&gt;&lt;/blockquote&gt;&lt;b&gt;Comprobación del Role &amp;lt;postgres&amp;gt;&lt;/b&gt;&lt;br /&gt;
Debemos  comprobar que nuestro sistema tiene el role &amp;lt;postgres&amp;gt;  creado, sino, lo crearemos nosotros, para ello, simplemente buscaremos  en la base de datos &amp;lt;/etc/user_attr&amp;gt; y nos fijaremos en el  valor de &amp;lt;type=&amp;gt; para comprobar que es un  &amp;lt;role&amp;gt;, por ejemplo&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec cat /etc/user_attr|grep postgres&lt;/b&gt;&lt;br /&gt;
postgres::::&lt;b&gt;type=role&lt;/b&gt;;profiles=Postgres Administration,All&lt;/blockquote&gt;Llegado a este punto, debemos tener en cuenta que si no existe el &amp;lt;role&amp;gt; postgres, comprobaremos si es un usuario, ya que en OpenIndiana viene como Usuario y no como Role, para ello comprobaremos que existe en &amp;lt;/etc/passwd&amp;gt;&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;b&gt;cat /etc/passwd |grep postgres&lt;/b&gt;&lt;br /&gt;
postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh&lt;/blockquote&gt;Como vemos, existe como usuario, pero no dispone del &amp;lt;profile&amp;gt; Postgres Aministration que necesitamos, así que vamos a añadirlo utilizando la opción &quot;-P &#39;Postgres Administration&#39;&quot;.&lt;br /&gt;
&lt;br /&gt;
Si intentamos modificar el &amp;lt;profile&amp;gt; de un usuario utilizando el comando &amp;lt;rolemod&amp;gt; OpenIndiana nos contestará con un mensaje come este:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/#&lt;b&gt; rolemod -P &#39;Postgres Administration&#39; postgres&lt;/b&gt;&lt;br /&gt;
UX: rolemod: ERROR: Users must be modified with ``usermod&#39;&#39;.&lt;/blockquote&gt;Así que utilizaremos el comando &amp;lt;usermod&amp;gt; con la misma opción&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;b&gt;usermod -P &quot;Postgres Administration&quot; postgres&lt;/b&gt;&lt;/blockquote&gt;Comprobamos que tenemos asignado correctamente todo, y que las autorizaciones están definidas. Para ello, utilizaremos el comando &amp;lt;auth postgres&amp;gt; para las autorizaciones y &amp;lt;profiles postgres&amp;gt; para los profiles.&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:~# &lt;b&gt;profiles postgres&lt;/b&gt;&lt;br /&gt;
postgres:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Postgres Administration&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Basic Solaris User&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All&lt;br /&gt;
root@openzooey:~# &lt;b&gt;auths postgres&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;solaris.admin.wusb.read,&lt;br /&gt;
&amp;nbsp;solaris.device.cdrw,&lt;br /&gt;
&amp;nbsp;solaris.device.mount.removable,&lt;br /&gt;
&amp;nbsp;solaris.mail.mailq,&lt;br /&gt;
&amp;nbsp;solaris.profmgr.read,&lt;br /&gt;
&amp;nbsp;&lt;i&gt;solaris.smf.manage.postgres&lt;/i&gt;,&lt;br /&gt;
&amp;nbsp;&lt;i&gt;solaris.smf.value.postgres&lt;/i&gt;&lt;/blockquote&gt;Ahora debemos dedicir si queremos seguir manteniendo el usuario, o por el contrario convertirlo a un Role y así, poder delegar las tareas de administración.&lt;br /&gt;
&lt;br /&gt;
Mi recomendación es convertirlo a un role -si no lo es-, para ello, utilizaremos el comando &amp;lt;usermod&amp;gt; y la opción &amp;lt;-K type=role&amp;gt; para convertirlo, por ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@openzooey:/# &lt;b&gt;usermod -K type=role postgres&lt;/b&gt;&lt;br /&gt;
root@openzooey:/# &lt;b&gt;cat /etc/user_attr|grep postgres&lt;/b&gt;&lt;br /&gt;
postgres::::type=role;profiles=Postgres Administration&lt;/blockquote&gt;&lt;b&gt;Configurar base de datos de &amp;lt;pfexec&amp;gt;&lt;/b&gt;&lt;br /&gt;
Por último, deberemos definir los comandos que el &amp;lt;profile&amp;gt; Postgres Administration puede ejecutar utilizando &amp;lt;pfexec&amp;gt;, para ello, deberemos de dar de alta.&lt;br /&gt;
&lt;br /&gt;
Es muy importante que entendáis que estáis haciendo, para ello, os recomiendo leer la serie de artículos sobre &lt;a href=&quot;http://sparcki.blogspot.com/2010/11/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;Solaris RBAC y Modelo de Privilegios&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto, ya tenemos la estructura para poder gestionar nuestro &lt;a href=&quot;http://sparcki.blogspot.com/2010/10/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;PostgreSQL con RBAC&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Comprobación de la Arquitectura y Kernel&lt;/b&gt;&lt;br /&gt;
A continuación, vamos a comprobar que tipo de arquitectura tenemos: SPARC o x86 y sobre esta, qué tipo de kernel tenemos, de 32bit o 64bit.&lt;br /&gt;
&lt;br /&gt;
Para verificar nuestra arquitectura, utilizaremos el comando &amp;lt;uname -a&amp;gt; por ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec uname -a&lt;/b&gt;&lt;br /&gt;
SunOS openzooey 5.11 oi_148 i86pc i386 i86pc&lt;/blockquote&gt;Hay que tener en cuenta que el comando &amp;lt;uname&amp;gt; no nos va a decir si es o no una arquitectura de 64bits, ya que nos dirá &amp;lt;i386&amp;gt;. Esto es porque la diferencia de arquitectura es para SPARC o i386.&lt;br /&gt;
&lt;br /&gt;
Para saber si nuestro kernel es de 32bit o 64bits, deberemos utilizar el comando &amp;lt;isainfo&amp;gt; con las opciones &amp;lt;-kv&amp;gt;, por ejemplo:&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:~$ &lt;b&gt;pfexec isainfo -kv&lt;/b&gt;&lt;br /&gt;
64-bit amd64 kernel modules&lt;/blockquote&gt;Por lo tanto, ahora sabemos que estamos ejecutando OpenIndiana -o Solaris- sobre una plataforma x86 con un kernel de 64bit.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;b&gt;Instalación de PostgreSQL 9.0.3 desde Binarios&lt;/b&gt;&lt;br /&gt;
Ahora que ya sabemos qué arquitectura tenemos, y nuestro tipo de kernel, podemos seleccionar la versión de PostgreSQL 9.0.3 que deseemos.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-32bit-openindiana.tar.gz&quot;&gt;PostgreSQL 9.0.3 i86pc 32bits para OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana.tar.gz&quot;&gt;PostgreSQL 9.0.3 i86pc 64bits para OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;Simplemente, descargaremos el binario que queramos (de 32bit o 64bit) y lo descomprimiremos en nuestro sistema, en &amp;lt;/&amp;gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/# &lt;b&gt;cd /&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/# &lt;b&gt;wget http://blog.sfchildren.com/blogger/postgres/9.0.3/openindiana/postgresql-9.0.3-x86-64bit-openindiana.tar.gz&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/# &lt;b&gt;gzip -dc postgresql-9.0.3-x86-64bit-openindiana.tar.gz | tar xvpf -&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/# &lt;b&gt;chown -R postgres:postgres /u01&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;itily@openzooey:/# &lt;b&gt;chmod 750 /u01&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Configuración de PostgreSQL en SMF&lt;/b&gt;&lt;br /&gt;
A continuación configuraremos nuestro servicio &lt;i&gt;postgres&lt;/i&gt; para que sea controlado mediante SMF, para ello, debemos descargar el &lt;a href=&quot;http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgresql_9.xml&quot;&gt;Manifest para Solaris y OpenIndiana SMF&amp;nbsp; PostgreSQL 9&lt;/a&gt; y el &lt;a href=&quot;http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgres_9&quot;&gt;Method para Solaris y OpenIndiana SMF PostgreSQL 9&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;# &lt;b&gt;cd /lib/svc/method&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;wget http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgres_9&lt;/b&gt;&lt;br /&gt;
#&lt;b&gt; chown root:bin postgres_9&lt;/b&gt;&lt;br /&gt;
#&lt;b&gt; chmod 555 postgres_9&lt;/b&gt;&lt;br /&gt;
#&lt;b&gt; mkdir -p /var/svc/manifest/application/database&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;cd /var/svc/manifest/application/database&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;wget http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgresql_9.xml&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;svccfg&lt;/b&gt;&lt;br /&gt;
svc:&amp;gt; &lt;b&gt;validate postgresql_9.xml&lt;/b&gt;&lt;br /&gt;
svc:&amp;gt;&lt;b&gt; import postgresql_9.xml&lt;/b&gt;&lt;br /&gt;
svc:&amp;gt; &lt;b&gt;quit&lt;/b&gt;&lt;br /&gt;
# &lt;b&gt;svcs -p postgresql_9&lt;/b&gt;&lt;br /&gt;
STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STIME&amp;nbsp;&amp;nbsp;&amp;nbsp; FMRI&lt;br /&gt;
disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9:29:24 svc:/application/database/postgresql_9:default_32bit&lt;br /&gt;
disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10:24:40 svc:/application/database/postgresql_9:default_64bit&lt;/blockquote&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;
En esta ocasión hemos visto algunos puntos necesarios para la instalación de PostgreSQL en OpenIndiana.&lt;br /&gt;
&lt;br /&gt;
Además, gracias a los comentarios y dudas, creo que en esta ocasión he intentado despejar esas &quot;dudas&quot; que os asaltan,&lt;br /&gt;
&lt;br /&gt;
Espero que os ayude y, sobre todo, aclarar los pasos de instalación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2011/01/actualizacion-postgresql-902-en.html&quot;&gt;Actualizar PostgreSQL 9.0.2 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/instalacion-de-postgresql-en.html&quot;&gt;Instalación de PostgreSQL 9.0 en OpenIndiana &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/10/instalar-postgresql-en-solaris-10-parte.html&quot;&gt;Instalación de PostgreSQL en Solaris 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/11/copias-de-seguridad-y-recuperacion-en.html&quot;&gt;Copias de Seguridad en PostgreSQL &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac.html&quot;&gt;RBAC, Roles y Privilegios - Parte 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/09/modelo-de-seguridad-de-solaris-rbac_08.html&quot;&gt;RBAC, Roles y Privilegios - Parte 2 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgresql_9.xml&quot;&gt;Manifest PostgreSQL 9.0 OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sfchildren.com/blogger/openindiana/postgresql/9.0/smf/postgres_9&quot;&gt;Method PostgreSQL 9.0 OpenIndiana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.postgresql.org/&quot;&gt;Página principal PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/03/instalacion-de-postgresql-903-en.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3023674627195806772.post-1312656320038432244</guid><pubDate>Thu, 03 Mar 2011 07:00:00 +0000</pubDate><atom:updated>2011-03-03T08:00:03.022+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">projects</category><category domain="http://www.blogger.com/atom/ns#">solaris</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Cómo saber el project de un proceso concreto</title><description>&lt;b&gt;Introducción&lt;/b&gt;&lt;br /&gt;
En alguna ocasión hemos necesitado saber en que project se encuentra nuestro proceso de Solaris, para ello, simplemente utilizaremos la opción &amp;lt;-o&amp;gt; del comando &amp;lt;ps&amp;gt; que nos permite obtener el formato de salida que queramos.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para ver los procesos del usuario &amp;lt;appserver&amp;gt; mostrando su PID, Comando y Project utilizaremos el siguiente comando:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;root@h1000:/# &lt;b&gt;ps -fu appserver -o pid,args,project&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; PID COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROJECT&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;1672 /usr/jdk/instances/jdk1.6.0/bin&amp;nbsp; asengine.appserve&lt;/span&gt;r&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Referencias&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/03/como-saber-las-variables-de-entorno-de.html&quot;&gt;Cómo saber las variables de entorno de un proceso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2010/07/como-poner-varios-valores-un-propiedad.html&quot;&gt;Cómo poner varios valores en Resource Controls&lt;/a&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sparcki.blogspot.com/2009/09/comandos-basicos-y-no-tan-basicos-de.html&quot;&gt;Comando básicos de Solaris, y no  tan básicos de Solaris&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;</description><link>http://sparcki.blogspot.com/2011/03/como-saber-el-project-de-un-proceso.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Zaragoza, España</georss:featurename><georss:point>41.6562873 -0.8765379</georss:point><georss:box>41.3997763 -1.3434569 41.912798300000006 -0.4096189</georss:box></item></channel></rss>