<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4087090229420193000</id><updated>2009-02-21T01:48:11.018+02:00</updated><title type='text'>au boulot</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-8628447910581185250</id><published>2008-09-11T10:42:00.002+02:00</published><updated>2008-09-11T10:44:46.384+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Installing openSSH on Solaris 8</title><content type='html'>Nice page describing how to install/setup openSSH on Solaris 8 at :&lt;br /&gt;&lt;a href="http://sunfreeware.com/openssh8.html"&gt;http://sunfreeware.com/openssh8.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-8628447910581185250?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/8628447910581185250/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=8628447910581185250' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/8628447910581185250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/8628447910581185250'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/09/installing-openssh-on-solaris-8.html' title='Installing openSSH on Solaris 8'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-1951081174008552247</id><published>2008-09-05T18:03:00.004+02:00</published><updated>2008-09-05T18:59:44.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zones'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Installing a linux zone on a Solaris host</title><content type='html'>Previous posts describe the creation of Solaris zones, this post describes the creation of a linux zone (RedHat EL 3.x or CentOS 3.x) running on a Solaris 10 host (x86 hardware).&lt;br /&gt;&lt;br /&gt;First create a ZFS filesystem for your zone as described in the previous posts on this blog.&lt;br /&gt;Here we will use the zfs file system &lt;span style="font-family:courier new;"&gt;zones_pool/zone1_root&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Then create the zone :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;zonecfg -z linux-zone1&lt;/span&gt;&lt;br /&gt;l&lt;span style="color: rgb(102, 0, 204);"&gt;inux-zone1: No such zone configured&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Use 'create' to begin configuring a new zone.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;create -t SUNWlx&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;set zonepath=/zones_pool/zone1_root&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;set autoboot=true&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;set bootargs=""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;add net&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1:net&gt; &lt;span style="font-weight: bold;"&gt;set address=10.17.7.156/24&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1:net&gt; &lt;span style="font-weight: bold;"&gt;set physical=bge0&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1:net&gt; &lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;verify&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;commit&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:linux-zone1&gt; &lt;span style="font-weight: bold;"&gt;exit&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To install linux on the zone, you need one linux distribution (today RedHat 3.x or CentOS 3.x),&lt;br /&gt;&lt;ul&gt;&lt;li&gt;either as a tar archive,&lt;/li&gt;&lt;li&gt;or a set of cd-rom/dvd,&lt;/li&gt;&lt;li&gt;or a set of isos images.&lt;/li&gt;&lt;/ul&gt;You can for example download a CentOS tar archive from :&lt;br /&gt;&lt;a href="http://opensolaris.org/os/community/brandz/downloads/"&gt;http://opensolaris.org/os/community/brandz/downloads/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here, we will install RedHat from isos images, the zoneadm installation command is given in parameter a directory where to find these iso files :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;zoneadm -z linux-zone1 install -d /net/machine/export/LINUX/as3-u8/i386_iso&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;Installing distribution 'Red Hat Enterprise Linux 3 Update 8'...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing cluster 'desktop'&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing miniroot for zone 'linux-zone1'.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 30 packages...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;Installing 1 miniroot package...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;Attempting to locate 29 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing 29 miniroot packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Setting up the initial lx brand environment.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;System configuration modifications complete.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Duplicating miniroot; this may take a few minutes...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Booting zone miniroot...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Miniroot zone setup complete.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Performing full install for zone 'linux-zone1'.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 663 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing zone 'linux-zone1' from&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;  ISO&lt;br /&gt;"/net/machine/export/LINUX/as3-u8/i386_iso/RHEL3-U8-re20060712.1-i386-disc2-ftp.iso".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Checking for deferred packages...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 3 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing 470 packages; this may take several minutes...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 193 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing zone 'linux-zone1' from&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;  ISO&lt;br /&gt;"/net/machine/export/LINUX/as3-u8/i386_iso/RHEL3-U8-re20060712.1-i386-disc3-ftp.iso".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Checking for deferred packages...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 3 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing 106 packages; this may take several minutes...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 87 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing zone 'linux-zone1' from&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;  ISO&lt;br /&gt;"/net/machine/export/LINUX/as3-u8/i386_iso/RHEL3-U8-re20060712.1-i386-disc4-ftp.iso".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Checking for deferred packages...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 3 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing 69 packages; this may take several minutes...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 18 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing zone 'linux-zone1' from&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;  ISO&lt;br /&gt;"/net/machine/export/LINUX/as3-u8/i386_iso/RHEL3-U8-re20060712.1-i386-AS-disc1-ftp.iso".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Checking for deferred packages...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Attempting to locate 3 packages...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing 18 packages; this may take a few minutes...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installing 3 deferred packages; this may take a few minutes...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Completing installation; this may take a few minutes.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Setting up the initial lx brand environment.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;System configuration modifications complete.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installation of Red Hat Enterprise Linux 3 Update 8 to zone&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;'linux-zone1' completed Fri Sep  5 17:33:06 MEST 2008.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Installation of zone 'linux-zone1' completed successfully.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Details saved to log file:&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;  "/zones_pool/zone1_root/root/var/log/linux-zone1.install.20498.log"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By default, networking is disabled in a linux zone.&lt;br /&gt;You can enable it by editing from the Solaris global zone, the file &lt;span style="font-family:courier new;"&gt;/zones_pool/zone1_root/root/etc/sysconfig/network&lt;/span&gt; to have the following content:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;NETWORKING="yes"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;HOSTNAME=myhost&lt;br /&gt;NISDOMAIN=mydomain&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You can now boot the zone, using the command:&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;zoneadm -z linux-zone1 boot&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-1951081174008552247?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/1951081174008552247/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=1951081174008552247' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/1951081174008552247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/1951081174008552247'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/09/installing-linux-zone-on-solaris-host.html' title='Installing a linux zone on a Solaris host'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-6487549353335165895</id><published>2008-07-25T15:38:00.003+02:00</published><updated>2008-09-08T09:30:56.367+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zones'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Installing a Solaris 8 zone on CMT hardware</title><content type='html'>Solaris 8 is not supported on new systems like the Sun Fire T2000 using the Chip Multithreading Technology (CMT), but it is possible to install a Solaris 8 zone on this system and run a Solaris 8 application.&lt;br /&gt;&lt;br /&gt;For this example, we will use a Sun Fire T2000 running Solaris 10 5/08.&lt;br /&gt;(for solaris 10 8/07, the instructions are the same, but you need first to download from &lt;a href="http://sunsolve.sun.com/"&gt;sunsolve&lt;/a&gt; and install patch 127111-01 or the latest patch that obsoletes 127111)&lt;br /&gt;&lt;br /&gt;First download Solaris 8 Containers 1.0 from &lt;a href="https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=solaris8-cont-1.0-G-F@CDS-CDS_SMI"&gt;https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=solaris8-cont-1.0-G-F@CDS-CDS_SMI&lt;/a&gt;&lt;br /&gt;(packages and the sample Solaris 8 flash archive)&lt;br /&gt;&lt;br /&gt;Install two of the packages contained in this download :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;pkgadd -d . SUNWs8brandr&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;&lt;br /&gt;pkgadd -d . SUNWs8brandu&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Create a ZFS filesystem for your zone as described in the previous post on this blog.&lt;br /&gt;Here we will use the zfs file system zones_pool/zone1_root.&lt;br /&gt;&lt;br /&gt;Then create the Solaris 8 zone and specify the machine hardware name being sun4u (while our physical system using UltraSPARC T1 is a sun4v hardware) :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;zonecfg -z s8-zone&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;s8-zone: No such zone configured&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Use 'create' to begin configuring a new zone.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone&gt; &lt;span style="font-weight: bold;"&gt;create -t SUNWsolaris8&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone&gt; &lt;span style="font-weight: bold;"&gt;set zonepath=/zones_pool/zone1_root&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone&gt; &lt;span style="font-weight: bold;"&gt;set autoboot=true&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone&gt; &lt;span style="font-weight: bold;"&gt;add net&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:net&gt; &lt;span style="font-weight: bold;"&gt;set address=10.17.7.249/24&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:net&gt; &lt;span style="font-weight: bold;"&gt;set physical=e1000g0&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:net&gt; &lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone&gt; &lt;span style="font-weight: bold;"&gt;add attr&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:attr&gt; &lt;span style="font-weight: bold;"&gt;set name=machine&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:attr&gt; &lt;span style="font-weight: bold;"&gt;set type=string&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:attr&gt; &lt;span style="font-weight: bold;"&gt;set value=sun4u&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone:attr&gt; &lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;zonecfg:s8-zone&gt; &lt;span style="font-weight: bold;"&gt;exit&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Install the zone from the flash archive sample provided by Sun in the Solaris 8 Containers 1.0 download :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;zoneadm -z s8-zone install -u -a /download/solaris8-image.flar&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;     Log File: /var/tmp/s8-zone.install.23636.log&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;       Source: /download/solaris8-image.flar&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;   Installing: This may take several minutes...&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;Postprocessing: This may take several minutes...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;       Result: Installation completed successfully.&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;     Log File: /zones_pool/zone1_root/root/var/log/s8-zone.install.23636.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can now boot the zone, login on this zone, and check the output of uname command :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;"&gt;uname -a&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;&lt;br /&gt;SunOS s8zone 5.8 Generic_Virtual sun4u sparc SUNW,Sun-Fire-T200&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-6487549353335165895?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/6487549353335165895/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=6487549353335165895' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/6487549353335165895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/6487549353335165895'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/07/installing-solaris-8-zone-on-cmt.html' title='Installing a Solaris 8 zone on CMT hardware'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-3361442265872002899</id><published>2008-07-17T16:59:00.004+02:00</published><updated>2008-09-08T09:30:24.603+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zfs'/><category scheme='http://www.blogger.com/atom/ns#' term='zones'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Creating a zone with a root directory on a ZFS file system</title><content type='html'>Basic try of commands to create a &lt;a href="http://www.sun.com/bigadmin/content/zones/"&gt;zone&lt;/a&gt; on a Solaris 10 8/07 host.&lt;br /&gt;&lt;br /&gt;First create a &lt;a href="http://en.wikipedia.org/wiki/Zfs"&gt;zfs&lt;/a&gt; file system where we will later store our zone root.&lt;br /&gt;Our host has just one disk, so for this test we will create a zfs pool from a 8Go partition of this disk that already contains a UFS filesystem , but it can be overridden using the zpool create -f option:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zpool create -f zones_pool c0t0d0s3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check it was created:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zpool list&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;NAME                    SIZE    USED   AVAIL    CAP HEALTH    ALTROOT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;&lt;br /&gt;zones_pool             7.94G     88K   7.94G     0%  ONLINE     -&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Create a zfs filesystem:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;zfs create zones_pool/zone1_root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check it was created:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zfs list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;font-size:78%;"  &gt;NAME                    USED  AVAIL  REFER  MOUNTPOINT&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;font-size:78%;"  &gt;zones_pool              115K  7.81G  25.5K  /zones_pool&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;font-size:78%;"  &gt;&lt;br /&gt;zones_pool/zone1_root  24.5K  7.81G  24.5K /zones_pool/zone1_root&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Set a quota on this filesystem (not mandatory, better for isolation, and it can be changed easily with zfs):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zfs set quota=800m zones_pool/zone1_root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Change the permissions as the zone root must not have read/write/execute permissions for group and other:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;chmod go-rwx /zones_pool/zone1_root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Our zone root filesystem is ready, we can now create a zone:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zonecfg -z zone1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zone1: No such zone configured&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Use 'create' to begin configuring a new zone.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1&gt; &lt;span style="font-weight: bold;"&gt;create&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1&gt; &lt;span style="font-weight: bold;"&gt;set zonepath=/zones_pool/zone1_root&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1&gt; &lt;span style="font-weight: bold;"&gt;add net&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1:net&gt; &lt;span style="font-weight: bold;"&gt;set physical=bge0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1:net&gt; &lt;span style="font-weight: bold;"&gt;set address=10.19.1.22/24&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1:net&gt; &lt;span style="font-weight: bold;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonecfg:zone1&gt; &lt;span style="font-weight: bold;"&gt;exit&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Install this new zone:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zoneadm -z zone1 install&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Preparing to install zone &lt;zone1&gt;.&lt;/zone1&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Creating list of files to copy from the global zone.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Copying &lt;547&gt; files to the zone.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Initializing zone product registry.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Determining zone package initialization order.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Preparing to initialize &lt;445&gt; packages on the zone.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Initialized &lt;445&gt; packages on zone.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;Zone &lt;zone1&gt; is initialized.&lt;/zone1&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;The file  contains a log of the zone installation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check the size of our zone's root:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;zfs list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;font-size:78%;"  &gt;NAME                    USED  AVAIL  REFER  MOUNTPOINT&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;font-size:78%;"  &gt;zones_pool             11.8M  7.80G  25.5K  /zones_pool&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;font-size:78%;"  &gt;zones_pool/zone1_root  11.7M   788M  11.7M  /zones_pool/zone1_root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This doesn't take much place as the zone we created is a sparse root zone: only a subset of the packages installed in the global zone are installed in our new zone, other packages are accessed as read-only loopbak mounted filesystems.&lt;br /&gt;&lt;br /&gt;Another option is to create a whole root zone where all the required packages are installed into the zone's root. This is done by removing default inherit-pkg-dir resources.&lt;br /&gt;&lt;br /&gt;We can see the default inherit-pkg-dir resources of our zone by running the command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zonecfg -z zone1 info&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonename: zone1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;zonepath: /zones_pool/zone1_root&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;brand: native&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;autoboot: false&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;bootargs:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;pool:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;limitpriv:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;scheduling-class:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;ip-type: shared&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;inherit-pkg-dir:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        dir: /lib&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;inherit-pkg-dir:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        dir: /platform&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;inherit-pkg-dir:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        dir: /sbin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;inherit-pkg-dir:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        dir: /usr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;net:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        address: 10.19.1.22&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        physical: bge0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now we have to configure the zone.&lt;br /&gt;This can be done either in interactive mode or by creating a configuration file.&lt;br /&gt;&lt;br /&gt;For the interactive mode, login on the console:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;zlogin -C zone1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And from another terminal, boot the zone:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;zoneadm -z zone1 boot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A series of questions about language, locale, etc... will appear on the console.&lt;br /&gt;&lt;br /&gt;Or we can configure the zone in non-interactive mode by creating a sysidcfg file:&lt;br /&gt;&lt;br /&gt;create a file &lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;/zones_pool/zone1_root/root/etc/sysidcfg&lt;/span&gt; with the following content:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;system_locale=C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;terminal=dtterm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;network_interface=primary {&lt;br /&gt;hostname=hostzone1&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;timeserver=localhost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;security_policy=NONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;name_service=NONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;timezone=MET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;system_locale=C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;root_password=""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;nfs4_domain=dynamic&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then boot the zone:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;zoneadm -z zone1 boot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Login on the console zone:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;zlogin -C zone1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check the host name:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;hostname&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;hostzone1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Check the network configuration:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-family:courier new;" &gt;ifconfig -a&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;lo0:1: flags=2001000849&lt;up,loopback,running,multicast,ipv4,virtual&gt; mtu 8232 index 1&lt;/up,loopback,running,multicast,ipv4,virtual&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        inet 127.0.0.1 netmask ff000000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;bge0:1: flags=1000843&lt;up,broadcast,running,multicast,ipv4&gt; mtu 1500 index 2&lt;/up,broadcast,running,multicast,ipv4&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;        inet 10.19.1.22 netmask ffffff00 broadcast 10.19.1.255&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We just see the network configuration of zone1 and not the network configuration of the global zone&lt;br /&gt;&lt;br /&gt;Type &lt;span style="font-weight: bold; color: rgb(102, 0, 204);font-family:courier new;" &gt;~.&lt;/span&gt; to leave zone1 console&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-3361442265872002899?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/3361442265872002899/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=3361442265872002899' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/3361442265872002899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/3361442265872002899'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/07/creating-zone-with-root-directory-on.html' title='Creating a zone with a root directory on a ZFS file system'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-651162332298239414</id><published>2008-04-17T14:25:00.002+02:00</published><updated>2008-04-17T14:29:07.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><title type='text'>Disable ipv6 on RedHat 4</title><content type='html'>Edit the file &lt;span style="font-family:courier new;"&gt;/etc/modprobe.conf&lt;/span&gt; and add the following line :&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:courier new;" &gt;alias net-pf-10 off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then reboot the node.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-651162332298239414?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/651162332298239414/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=651162332298239414' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/651162332298239414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/651162332298239414'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/04/disable-ipv6-on-redhat-4.html' title='Disable ipv6 on RedHat 4'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-9138386347850437982</id><published>2008-03-28T16:05:00.001+02:00</published><updated>2008-03-28T16:08:23.852+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TIPC'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>TIPC on Solaris</title><content type='html'>TIPC (Transparent Inter-Process Communication) is now available on your preferred OS !&lt;br /&gt;With Renaud Métrich, we ported TIPC on Solaris.&lt;br /&gt;Packages for Solaris 10 and later releases for both SPARC and x86  can be downloaded from &lt;a href="http://tipc.sourceforge.net/"&gt;sourceforge&lt;/a&gt; or from &lt;a href="http://opensolaris.org/os/project/tipc/"&gt;OpenSolaris&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-9138386347850437982?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/9138386347850437982/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=9138386347850437982' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/9138386347850437982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/9138386347850437982'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/03/tipc-on-solaris.html' title='TIPC on Solaris'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-5444185781598779188</id><published>2008-03-28T15:56:00.001+02:00</published><updated>2008-03-28T15:58:52.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Creating a patch on linux</title><content type='html'>diff -Naur -x &lt;span style="font-style: italic; color: rgb(102, 0, 204);"&gt;exclude_file&lt;/span&gt; &lt;span style="font-style: italic; color: rgb(102, 0, 204);"&gt;path_1&lt;/span&gt; &lt;span style="color: rgb(102, 0, 204);"&gt;path_2&lt;/span&gt; &gt; &lt;span style="font-style: italic; color: rgb(102, 0, 204);"&gt;patch_name&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-5444185781598779188?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/5444185781598779188/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=5444185781598779188' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/5444185781598779188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/5444185781598779188'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/03/creating-patch-on-linux.html' title='Creating a patch on linux'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-5480383702206522164</id><published>2008-03-28T15:49:00.005+02:00</published><updated>2008-03-28T16:12:59.149+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>rcp/rsh fails on error rcmd: socket: Cannot assign requested address</title><content type='html'>On one of our Solaris 10 systems, it happened from time to time that a rsh or rcp command was failing during the NHAS installation, with the following error:&lt;br /&gt;&lt;blockquote&gt;rcmd: socket: Cannot assign requested address&lt;br /&gt;&lt;/blockquote&gt;This is a solaris 10 problem that has been addressed by the following bug :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sunsolve.sun.com/search/document.do?assetkey=1-1-6533773-1"&gt;6533773&lt;/a&gt; tcp checksum 0xFFFF (-0) used instead of 0x0000 (+0) since Solaris 10&lt;br /&gt;&lt;br /&gt;A Patch is available on sunsolve to fix this issue : patch 127111&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-5480383702206522164?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/5480383702206522164/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=5480383702206522164' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/5480383702206522164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/5480383702206522164'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2008/03/rcprsh-fails-on-error-rcmd-socket.html' title='rcp/rsh fails on error rcmd: socket: Cannot assign requested address'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-8980995171320665393</id><published>2007-07-09T13:55:00.000+02:00</published><updated>2007-07-09T18:36:55.799+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='high availability'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Running OpenClovis on top of NHAS</title><content type='html'>The &lt;a href="http://www.sun.com/software/netrahasuite/"&gt;Netra HA Suite&lt;/a&gt; (NHAS) provides High Availability foundation services like:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;a Reliable IP Transport, CGTP (Carrier Grade Transport Protocol). It ensures that a single network failure does not result in data loss and provides zero time fail-over IP.&lt;/li&gt;   &lt;li&gt;an implementation of the &lt;a href="http://www.saforum.org/"&gt;Service Availability Forum&lt;/a&gt; (SA Forum ) Cluster Membership Service (CLM) API triggering fast fail-over, isolation of faulty node and performing cluster membership.&lt;/li&gt;   &lt;li&gt;a Reliable NFS Service, providing a reliable file system accessible through NFS, enabling fail-over of NFS data and services to backup in case of failure.&lt;/li&gt;   &lt;li&gt;a Reliable Boot and DHCP Service for diskless nodes, enabling node reboot regardless of potential hardware or software failures in the cluster.&lt;/li&gt;   &lt;li&gt;etc,...&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;a href="http://www.openclovis.org/"&gt;OpenClovis&lt;/a&gt; is a open source carrier-grade middleware providing among many features :&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;an implementation of the &lt;a href="http://www.saforum.org/"&gt;SA Forum&lt;/a&gt; Availability Management Framework (AMF) allowing to configure and manage redundancy models for HA components (2N, N+1, ...).&lt;/li&gt;   &lt;li&gt;a checkpointing service,&lt;/li&gt;   &lt;li&gt;an implementation of the SA Forum Event Service,&lt;/li&gt;   &lt;li&gt;a Group Membership Service (GMS) detecting when new nodes join or existing nodes leave the system, and providing a cluster view and cluster membership notification service to components subscribing for the service.&lt;/li&gt;   &lt;li&gt;etc, ...&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; This Group Membership Service (GMS) provided by OpenClovis is using some piece of code from the third party &lt;a href="http://www.openais.org/"&gt;OpenAIS&lt;/a&gt; middleware :&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;TOTEM, a reliable multicast protocol,&lt;/li&gt;   &lt;li&gt;the CLM, cluster Membership API, modified for GMS needs.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;Replacing this &lt;a href="http://www.openais.org/"&gt;OpenAIS&lt;/a&gt; piece of code with calls to the &lt;a href="http://www.sun.com/software/netrahasuite/"&gt;NHAS&lt;/a&gt; APIs would provide OpenClovis features like checkpointing, or the Application Management Framework of 2N/N+1 redundancy availabilty models, on a cluster running NHAS foundation services.&lt;br /&gt;&lt;br /&gt;The details of code modifications to get a prototype of OpenClovis running on top of NHAS, or on top of any third party software providing an implementation of the &lt;a href="http://www.saforum.org/"&gt;SA Forum&lt;/a&gt; Cluster Membership API, are described in the document: &lt;a href="http://docs.google.com/View?docid=dtrk3bb_8gv4jhc"&gt;Using OpenClovis on top of NHAS&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-8980995171320665393?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/8980995171320665393/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=8980995171320665393' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/8980995171320665393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/8980995171320665393'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2007/07/openclovis-on-top-of-nhas.html' title='Running OpenClovis on top of NHAS'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-189529748595748828</id><published>2007-04-13T18:44:00.000+02:00</published><updated>2007-04-13T19:15:07.828+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Parallelization in perl</title><content type='html'>Some piece of perl code we are using to execute operations on a set of cluster nodes, is doing the job sequentially node by node.&lt;br /&gt;To speed up things, I had a look on how to parallelize this piece of code in perl.&lt;br /&gt;Perl provides threads and fork.&lt;br /&gt;But threads support is a compilation option, so it may not be provided on all platforms.&lt;br /&gt;To know if the current perl version is compiled to support threads, you can do :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;$ perl -V | grep thread&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;usethreads=undef use5005threads=undef useithreads=undef  usemultiplicity=undef&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here, the perl version bundled with Solaris 10 doesn't provide threads feature.&lt;br /&gt;So I tried to use fork, and it's working fine, here is a sample of code.&lt;br /&gt;There was function func taking one parameter that was called n times with a different parameter.&lt;br /&gt;The function below parallelize each call to this function func :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sub execute_in_parallel {&lt;br /&gt;&lt;br /&gt; my ($func, @param_list) = @_;&lt;br /&gt;&lt;br /&gt; my $pid;&lt;br /&gt; my @children;&lt;br /&gt; my $final_status;&lt;br /&gt; &lt;br /&gt; foreach my $param (@param_list) {&lt;br /&gt;&lt;br /&gt;  if (!defined($pid = fork)) {&lt;br /&gt;&lt;br /&gt;   print "ERROR: parent could not fork\n";&lt;br /&gt;   exit(1);&lt;br /&gt;&lt;br /&gt;  } elsif ($pid) {&lt;br /&gt;&lt;br /&gt;   # We are in the parent&lt;br /&gt;   # Store the child PID&lt;br /&gt;   push(@children, $pid);&lt;br /&gt;&lt;br /&gt;  } else {&lt;br /&gt;&lt;br /&gt;   # We are in a child&lt;br /&gt;   # do the job&lt;br /&gt;   my $res = &amp;$func($param);&lt;br /&gt;   exit($res);&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; # Wait for the end of children&lt;br /&gt; $final_status = 0;&lt;br /&gt; &lt;br /&gt; foreach my $childId (@children) {&lt;br /&gt;&lt;br /&gt;  waitpid($childId, 0);&lt;br /&gt;  my $status = $?;&lt;br /&gt;  if ( $status != 0 ) {&lt;br /&gt;   $final_status = $status;&lt;br /&gt;   print "child running $func exited with status $status\n";&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; if ( $final_status != 0 ) {&lt;br /&gt;  print "One child exited with status $final_status";&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-189529748595748828?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/189529748595748828/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=189529748595748828' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/189529748595748828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/189529748595748828'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2007/04/parallelization-in-perl.html' title='Parallelization in perl'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-1787837500937589577</id><published>2007-04-05T10:07:00.000+02:00</published><updated>2007-07-30T19:15:36.504+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firmware'/><title type='text'>Installing a Sun host from its system console</title><content type='html'>&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;From a Sun Netra T2000 system console, a power-on will boot the host.&lt;br /&gt;if instead of a boot, we want to perform an OS installation from the network, the default auto-boot parameter has to be changed from the system console as follows :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;sc&gt; poweroff -yf&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;sc&gt; bootmode bootscript="setenv auto-boot? false"&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;sc&gt; poweron -c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We will be connected to the console. We will then have to wait for the prompt ok and type :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;ok setenv auto-boot? true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;ok boot net - install&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-1787837500937589577?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/1787837500937589577/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=1787837500937589577' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/1787837500937589577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/1787837500937589577'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2007/04/installing-sun-host-from-its-system.html' title='Installing a Sun host from its system console'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-2791485829372156200</id><published>2007-04-04T14:18:00.000+02:00</published><updated>2007-04-04T15:05:30.757+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>First steps in ruby</title><content type='html'>I had a quick look at ruby for some internal tools, the language looks really nice with a lot of &lt;a href="http://rubyforge.org/"&gt;extensions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As I'm using a cluster made of several nodes in my job, I wrote a first little program to launch in parallel some &lt;a href="http://www.sun.com/software/netrahasuite/index.xml"&gt;Netra HA Suite&lt;/a&gt; admin commands on each node to get the cluster membership status, trigger a switch-over, etc... or run any system command.&lt;br /&gt;&lt;br /&gt;I removed the Netra HA Suite specific stuff here and just let the code running any system command in parallel.&lt;br /&gt;This code is using the &lt;a href="http://net-ssh.rubyforge.org/"&gt;NET::SSH ruby extension&lt;/a&gt;.&lt;br /&gt;And it assumes that ssh is running on cluster nodes and configured to allow root login without password.&lt;br /&gt;First, launch the ruby intepreter (irb) with the lib cluster.rb provided at the end of this post:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;$ /usr/local/bin/irb  -r cluster.rb --simple-prompt --noinspect&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You are on the interpreter, now you can define your cluster and specify the hostnames of nodes part of your cluster :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&gt;&gt; c = cluster.new&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;&gt;&gt; c.add 'v20z-1'&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;&gt;&gt; c.add 'v20z-2'&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;&gt;&gt; c.add 'v20z-3'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Run a system command on all nodes,  date for example to see if nodes are synchronized :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&gt;&gt; c.run 'date'&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-1 : Fri Mar 23 18:53:03 GMT 2007&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-2 : Fri Mar 23 18:53:01 GMT 2007&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-3 : Fri Mar 23 18:53:05 GMT 2007&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No they aren't, synchronize them :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&gt;&gt; c.run 'date 03231852'&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-3 : Fri Mar 23 18:52:00 GMT 2007&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-1 : Fri Mar 23 18:52:00 GMT 2007&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-2 : Fri Mar 23 18:52:00 GMT 2007&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Check again to see :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&gt;&gt; c.run 'date'&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-1 :Fri Mar 23 18:52:15 GMT 2007&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-2 :Fri Mar 23 18:52:15 GMT 2007&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;&lt;br /&gt;v20z-3 :Fri Mar 23 18:52:15 GMT 2007 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is the ruby file cluster.rb :&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'net/ssh'&lt;br /&gt;&lt;br /&gt;# Global variables&lt;br /&gt;&lt;br /&gt;$user='root'&lt;br /&gt;$passwd='none'&lt;br /&gt;&lt;br /&gt;######################################################################&lt;br /&gt;#&lt;br /&gt;# Runs a command given in parameter&lt;br /&gt;# Parameters : a ssh session and the command to run&lt;br /&gt;#&lt;br /&gt;def run_cmd( session, cmd )&lt;br /&gt;   &lt;br /&gt;    # open a shell&lt;br /&gt;&lt;br /&gt;    shell = session.shell.sync&lt;br /&gt;       &lt;br /&gt;    # Get the hostname&lt;br /&gt;   &lt;br /&gt;    out = shell.hostname&lt;br /&gt;    myhost = out.stdout.chomp&lt;br /&gt;&lt;br /&gt;    # Run the command&lt;br /&gt;   &lt;br /&gt;    out = shell.send_command cmd&lt;br /&gt;    status = out.status&lt;br /&gt;    result = out.stdout.chomp&lt;br /&gt;    if (status != 0)&lt;br /&gt;        puts "ERROR on #{myhost} : #{result}"&lt;br /&gt;    else&lt;br /&gt;        puts "#{myhost} : #{result}"&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;######################################################################&lt;br /&gt;#&lt;br /&gt;# cluster class to instantiate by the user&lt;br /&gt;#&lt;br /&gt;# Provides the methods :&lt;br /&gt;#&lt;br /&gt;# . add        : to add a node in the list of cluster nodes&lt;br /&gt;# . run        : to run a system command in parallel on all nodes&lt;br /&gt;#&lt;br /&gt;class cluster&lt;br /&gt;&lt;br /&gt;    attr_accessor :nodes&lt;br /&gt;   &lt;br /&gt;    def initialize&lt;br /&gt;        @nodes = Array.new&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    # Add a node to the list in the cluster&lt;br /&gt;   &lt;br /&gt;    def add(node)&lt;br /&gt;        @nodes.push(node)&lt;br /&gt;        self&lt;br /&gt;    end       &lt;br /&gt;&lt;br /&gt;    #&lt;br /&gt;    # Run in parallel on all node a command given in argument&lt;br /&gt;    #&lt;br /&gt;   &lt;br /&gt;    def run(cmd)&lt;br /&gt;   &lt;br /&gt;        if @nodes.nil?&lt;br /&gt;            puts "No node in the cluster yet..."&lt;br /&gt;        else&lt;br /&gt;&lt;br /&gt;            # For each node, start a new thread&lt;br /&gt;            # Each thread will :&lt;br /&gt;            # - Start a new SSH session for the node&lt;br /&gt;            # - run the command&lt;br /&gt;           &lt;br /&gt;            threads = []&lt;br /&gt;            @nodes.each do |node|&lt;br /&gt;           &lt;br /&gt;                threads &lt;&lt; Thread.new(node) { |myNode|&lt;br /&gt;               &lt;br /&gt;                    Net::SSH.start(&lt;br /&gt;                    myNode,&lt;br /&gt;                    $user,&lt;br /&gt;                    $passwd ) do |session|&lt;br /&gt;                   &lt;br /&gt;                    res = run_cmd(session, cmd)&lt;br /&gt;                end&lt;br /&gt;               &lt;br /&gt;                }&lt;br /&gt;               &lt;br /&gt;            end&lt;br /&gt;           &lt;br /&gt;            # Wait for the threads to finish&lt;br /&gt;           &lt;br /&gt;            threads.each { |aThread|  aThread.join }&lt;br /&gt;        end&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-2791485829372156200?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/2791485829372156200/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=2791485829372156200' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/2791485829372156200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/2791485829372156200'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2007/04/first-steps-in-ruby.html' title='First steps in ruby'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4087090229420193000.post-7828404899320464634</id><published>2007-04-04T11:18:00.000+02:00</published><updated>2007-04-05T11:35:23.504+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>opensolaris jumpstart installation</title><content type='html'>During a re-installation of a host with the latest Solaris 10 update 4 build or &lt;a href="http://www.opensolaris.org/os/"&gt;opensolaris&lt;/a&gt;, if the jumpstart installation is unexpectedly interactive you can:&lt;br /&gt;&lt;br /&gt;check if the following new parameter is defined in the &lt;span style="font-style: italic; font-weight: bold;"&gt;sysidcfg&lt;/span&gt; jumpstart file:&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;nfs4_domain=dynamic&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;check if the time service running on the install server, and if not, enable it doing :&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;$ svcadm enable svc:/network/time:dgram&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;$ svcadm enable svc:/network/time:stream&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4087090229420193000-7828404899320464634?l=laurent-g.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://laurent-g.blogspot.com/feeds/7828404899320464634/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4087090229420193000&amp;postID=7828404899320464634' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/7828404899320464634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4087090229420193000/posts/default/7828404899320464634'/><link rel='alternate' type='text/html' href='http://laurent-g.blogspot.com/2007/04/solaris-jumpstart-installation-tips.html' title='opensolaris jumpstart installation'/><author><name>Laurent</name><uri>http://www.blogger.com/profile/00247993389258906501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07784810053026581933'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>