<?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' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36491389829011608</id><updated>2012-01-17T23:43:19.587+01:00</updated><category term='active directory'/><category term='cab'/><category term='hooks'/><category term='mod_auth_kerb'/><category term='perl'/><category term='CE'/><category term='monit'/><category term='multipath'/><category term='NAS'/><category term='hot-plug'/><category term='ss4200'/><category term='c#'/><category term='interface'/><category term='rancid'/><category term='dell'/><category term='cisco'/><category term='iperf windows centos monit'/><category term='gregarius'/><category term='configuration'/><category term='ios'/><category term='python'/><category term='wizd'/><category term='sspi'/><category term='debian'/><category term='single sign on'/><category term='windows'/><category term='xenserver'/><category term='ipmi'/><category term='x64'/><category term='kerberos'/><category term='linux'/><category term='apache'/><category term='debug'/><category term='embedded'/><category term='collabnet'/><category term='centos'/><category term='visual studio 2008'/><category term='java'/><category term='authentication'/><category term='BD390'/><category term='uclinux'/><category term='OTRS'/><category term='jdk'/><category term='edge'/><category term='nagios'/><category term='sqldeveloper'/><category term='firefly'/><category term='bash'/><category term='omsa'/><category term='oracle'/><category term='iperf'/><category term='trac'/><category term='pygments'/><category term='citrix'/><category term='bandwidth'/><category term='sql'/><category term='FAN'/><category term='iscsi'/><category term='network'/><category term='subversion'/><category term='svn'/><category term='nslu2'/><title type='text'>ingenious excerpts</title><subtitle type='html'>my public scratchpad</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-244915601695926124</id><published>2011-12-29T15:04:00.000+01:00</published><updated>2011-12-29T15:04:00.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collabnet'/><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='edge'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='sspi'/><title type='text'>CollabNet Subversion Edge cont'd</title><content type='html'>I already explained &lt;a href="http://www.open.collab.net/products/subversion/SVNedge.html"&gt;Collabnet Subversion Edge&lt;/a&gt; and my experience installing it. Now I want to focus on installing &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; (with some hacks).&lt;br /&gt;I really thought this should be easy, but it turns out that there are a lot of pitfalls. So for any other poor souls who are not fluent in python (and for my own reference) here it goes.&lt;br /&gt;&lt;br /&gt;Installing Trac&lt;br /&gt;&lt;br /&gt;As you know, trac has some requirements. Namely &lt;a href="http://peak.telecommunity.com/DevCenter/setuptools"&gt;setuptools&lt;/a&gt; and &lt;a href="http://genshi.edgewall.org/wiki/Download"&gt;genshii&lt;/a&gt;. There are a few packages to download for Windows &lt;a href="http://pypi.python.org/pypi/setuptools#files"&gt;here&lt;/a&gt;. I didn't know which version of python came with subversion edge, so I checked. There is a folder named csvn/python25. So it seems to be python 2.5. But wait - there is a python27.dll in there. and some other files indicating python 2.7. So which is it?&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;D:\csvn\Python25&amp;gt;python.exe --version&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Python 2.7.1&lt;/span&gt;&lt;/blockquote&gt;&amp;nbsp;Alright, that settles it. But why did Collabnet not rename the folder..?&lt;br /&gt;So I downloaded the setuptools package for python 2.7 and win32. The installer failed to run, it sais it couldn't find any python 2.7 installation.&lt;br /&gt;&lt;br /&gt;Apparently a regular python installer will create some registry entries so that the system recognizes the python installation. Collabnet subversion edge doesn't do this anymore due some &lt;a href="http://subversion.open.collab.net/ds/viewMessage.do?dsForumId=4&amp;amp;dsMessageId=386993"&gt;complaints&lt;/a&gt;.&lt;br /&gt;So I had to go in there and manually create the relevant entries. They were already present from the old python 2.5 installation, which I wanted to get rid of anyway. So I changed the version to 2.7 and updated the paths to point to D:\csvn\python25. This let me install setuptools, genshii and finally trac too.&lt;br /&gt;&lt;br /&gt;Configuring Trac&lt;br /&gt;&lt;br /&gt;That part was straight-forward. Like with subversion, I just copied the relevant parts of my VisualSVN server's apache config and pasted it to the main httpd.conf file. Here is the relevant snippet:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;Location /trac&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;SetHandler mod_python&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;PythonInterpreter main_interpreter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;PythonHandler trac.web.modpython_frontend&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;PythonOption TracEnvParentDir D:\Trac&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;PythonOption TracUriRoot /trac&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;AuthName "Trac"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;AuthType SSPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;SSPIAuth On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;SSPIAuthoritative On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;SSPIDomain jerich&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;SSPIOfferBasic On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;SSPIOmitDomain On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;require group DOMAIN\Trac-Users&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;/Location&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;All relevant modules are already loaded, so that's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-244915601695926124?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/244915601695926124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=244915601695926124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/244915601695926124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/244915601695926124'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/12/collabnet-subversion-edge-contd.html' title='CollabNet Subversion Edge cont&apos;d'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-952870689102879430</id><published>2011-12-29T14:30:00.000+01:00</published><updated>2011-12-29T14:30:09.510+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collabnet'/><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='edge'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Collabnet Subversion Edge</title><content type='html'>I have been quite fond of &lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN Server&lt;/a&gt; on Windows, since it was an easy way to setup subversion with a nice means to administer repositories and users.&lt;br /&gt;&lt;br /&gt;As of lately, I grew tired because of the way they mangled &lt;a href="http://apache.org/"&gt;apache&lt;/a&gt;, &lt;a href="http://subversion.apache.org/"&gt;subversion&lt;/a&gt;, &lt;a href="http://python.org/"&gt;python &lt;/a&gt;and &lt;a href="http://trac.edgewall.org/"&gt;trac&lt;/a&gt; together. While searching for an alternative I found out that &lt;a href="http://www.collab.net/"&gt;Collabnet&lt;/a&gt; offers exactly what I need: Apache bundled with Subversion, Python and other stuff. Very nice! This bundle is called &lt;a href="http://www.open.collab.net/products/subversion/SVNedge.html"&gt;Subversion Edge&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I decided to take the plunge and update the production VisualSVN server. After all: How hard can it be?&lt;br /&gt;&lt;br /&gt;The installation went fine, and the collabnet subversion edge web-interface greeted me.&lt;br /&gt;I had tweaked the configuration of VisualSVN server to allow single-sign-on with SSPI, so I naturally wanted to copy the relevant parts of the config. Once one tinkers with the config files, the web-interface can no longer be used to make changes to those parts. That's fine by me.&lt;br /&gt;&lt;br /&gt;After this was taken care of I fired up Collabnet's Apache service and started to dump my subversion repositories one by one. Instead of manually loading them with svnadmin, the web interface of subversion edge provides takes care of that. Simply point it to the dump file and go ahead. That was easy!&lt;br /&gt;&lt;br /&gt;Setting up the server, finetuning apache and migrating my three repositories took less than one hour! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-952870689102879430?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/952870689102879430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=952870689102879430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/952870689102879430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/952870689102879430'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/12/collabnet-subversion-edge.html' title='Collabnet Subversion Edge'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-8231347594817053445</id><published>2011-09-19T11:44:00.000+02:00</published><updated>2011-09-19T11:44:14.373+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='rancid'/><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='interface'/><category scheme='http://www.blogger.com/atom/ns#' term='hooks'/><title type='text'>rancid updates</title><content type='html'>&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;I'm still happy about &lt;a href="http://www.shrubbery.net/rancid/"&gt;rancid&lt;/a&gt;, that I blogged about &lt;a href="http://ingenious-excerpts.blogspot.com/2011/09/discover-rancid.html"&gt;previously&lt;/a&gt;. I used one more change by &lt;a href="http://kublik.net/blog/rancid/"&gt;Stefan Kublik&lt;/a&gt; that is also present in rancid-git:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Remove memory addresses from "show controllers" to avoid unnecessary change notifications&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This is done by changing a line in bin/rancid from&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ProcessHistory("INT","","","!Interface: $INT$1\n") &amp;amp;&amp;amp; next; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;to&lt;/div&gt;&lt;blockquote&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ProcessHistory("INT","","","!Interface: $INT\n") &amp;amp;&amp;amp; next;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;In other words, just remove the $1 and you will change these lines:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:OfficeDocumentSettings&gt;   &lt;o:AllowPNG/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;w:DoNotOptimizeForBrowser/&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;}&lt;/style&gt; &lt;![endif]--&gt;&lt;span style="font-size: 11pt;"&gt;!Interface: FastEthernet0/0, GT96K FE ADDR: 63F52098, FASTSEND: 62084C3C, MCI_INDEX: 0&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;into these:&lt;/div&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:OfficeDocumentSettings&gt;   &lt;o:AllowPNG/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;w:DoNotOptimizeForBrowser/&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;}&lt;/style&gt; &lt;![endif]--&gt;&lt;span style="font-size: 11pt;"&gt;!Interface: FastEthernet0/0, &lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;In other news, it turned out to be tricky to have rancid automatically updating a &lt;a href="http://trac.edgewall.org/"&gt;trac&lt;/a&gt; repository with post-commit hooks. &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; is very picky when it comes to permissions, and you need write access to the trac environment and to the &lt;a href="http://trac.edgewall.org/wiki/TracIni#logging-section"&gt;trac logfile&lt;/a&gt; to do that. Try out the "trac-admin changeset" command works before debugging svn-hooks, ok? &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-8231347594817053445?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/8231347594817053445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=8231347594817053445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/8231347594817053445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/8231347594817053445'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/09/rancid-updates.html' title='rancid updates'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-6392354316339932912</id><published>2011-09-14T14:04:00.000+02:00</published><updated>2011-09-14T14:04:40.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='pygments'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>discover Rancid</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;For those of you who don't know &lt;a href="http://www.shrubbery.net/rancid/"&gt;Rancid&lt;/a&gt;: &lt;/div&gt;&lt;blockquote style="font-family: Arial,Helvetica,sans-serif;"&gt;RANCID monitors a router's (or more generally a device's) configuration, including software and hardware (cards, serial numbers, etc) and uses CVS (Concurrent Version System) or Subversion to maintain history of changes. &lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Essentially, this allows to have full coverage over routers, firewalls, network devices configuration and changes. Every network administrator's dream, right? Well, it certainly seems too good to be true..! Let's find out.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I've set it up on a CentOS 5.4 box to tinker with it. Installation is pretty straightforward. Configuration is a bit tricky, but the sample files are well documented. There are a few pitfallse, however.&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;"Show VLAN" output has different line-wrapping behaviour on different IOS versions; as diff is line oriented, this leads to unneccesary changes and notifications&lt;/li&gt;&lt;li&gt;"call-forward all" directives are shown for cisco callmanagers or unified communication managers; if a user forwards his phone, this causes the configuration to change, and notifications to be sent out.&lt;/li&gt;&lt;li&gt;The notification emails show diff output in plaintext; no colors, no highlighting&lt;/li&gt;&lt;li&gt;Notificaions are only sent to a single email address; no distribution lists are possible&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As rancid is comprised of a set of perl and bash scripts, the above issues shouldn't be too difficult to address, right? Well, there is&amp;nbsp; fork called &lt;a href="http://dotwaffle.github.com/rancid-git/"&gt;rancid-git&lt;/a&gt; that provides support for &lt;a href="http://www.blogger.com/"&gt;git&lt;/a&gt; as well as various other improvements. Most notably is perhaps support for html-mail. So after tinkering a bit with vanilla rancid, I decided to give rancid-git a go. After all it can be used as a drop-in replacement.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Unfortunately it turned out that most of the advertised patches/enhancments are more trouble than they are worth. First of all rancid-git is based on an outdated version of rancid, which means that certain bugfixes and fixes are missing. I didn't see any ill effects with the devices that I monitored (mostly Cisco and proCurve) but ymmv.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;So I fired up rancid-git and immedately got a notification with some profound config changes. It was an HTML mail, but there weren't any colors to be seen. I use &lt;a href="http://subversion.apache.org/"&gt;subversion&lt;/a&gt; as repository, so the diff command doesn't show colors. Lucliky there is an &lt;a href="http://cksum.org/blog/58-color-highlighted-svn-diff-output"&gt;easy workaround&lt;/a&gt;.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;The problem now is, that rancid always sends out notifications, even when there are no changes. So this patch isn't ready for prime-time just yet.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;I did like the detailed commit messages of rancid-git, however. So I decided to blend together my own patchset, based on vanilla rancid. Here's what I did:&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Comment out "show vlan", "show vlan-switch" in bin/rancid to get rid of the ever-changing vlan port memberships&lt;/li&gt;&lt;li&gt;Added "/^ *(call-forward all)/ &amp;amp;&amp;amp; next;" to the dog gone cool matches in bin/rancid to filter out unwanted phone forwardings in the notification mails&lt;/li&gt;&lt;li&gt;Added "/.*coredumpinfo.*/ &amp;amp;&amp;amp; next;" to ShowFlash in bin/rancid to get rid of the coredump bug on Cisco ASAs&lt;/li&gt;&lt;li&gt;Added "svn propset "svn:mime-type" text/x-ios $router" to bin/control_rancid so cisco config files can be properly syntax highlighted in trac&lt;/li&gt;&lt;li&gt;Added proper commit messages, blatantly copied from rancid-git&lt;/li&gt;&lt;li&gt;To get syntax highlighting working in trac, install Pygments and &lt;a href="http://174.143.27.129/redmine/projects/routerlexers/repository/entry/pygments_routerlexers/Cisco/IOS.py?rev="&gt;this ios lexer&lt;/a&gt;; simply put it in the lexers subdirectory and run _mapping.py. If you get an error for a missing attribute, add a line like this "__all__ = ['IOSLexer']" between the imports and the class.&lt;/li&gt;&lt;li&gt;For trac to recognize the mime-type and the IOS lexer, simply add "text/x-ios:ios" to the mime_map in trac.ini. I've tried to add the mime-type to the IOS lexer itself, but this didn't work.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This way, you can use the trac interface to view diffs and the configs. Instead of notification emails, simply rely on the RSS-feed of trac. Profit!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-6392354316339932912?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/6392354316339932912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=6392354316339932912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6392354316339932912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6392354316339932912'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/09/discover-rancid.html' title='discover Rancid'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-6897648992735049738</id><published>2011-08-12T09:56:00.000+02:00</published><updated>2011-08-12T09:56:19.141+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='active directory'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kerberos'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_auth_kerb'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='single sign on'/><category scheme='http://www.blogger.com/atom/ns#' term='OTRS'/><title type='text'>Apache on Linux and Single-Sign-On with Active Directory</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;There are many &lt;a href="http://blog.scottlowe.org/2007/01/15/linux-ad-integration-version-4/"&gt;howtos&lt;/a&gt; &lt;a href="http://grolmsnet.de/kerbtut/"&gt;and&lt;/a&gt; &lt;a href="http://blogs.law.emory.edu/benchapman/2010/06/16/kerberized-sso-from-windows-to-apache-on-centos/"&gt;blog&lt;/a&gt; &lt;a href="http://modauthkerb.sourceforge.net/configure.html"&gt;posts&lt;/a&gt; that describe how to get Apache on Linux to work against Active Directory with single-sign-on. I found none of them to be current and complete. After tinkering with this topic for a while and getting it to work on my Centos 5.4 box, I wanted to post what I did here.&lt;br /&gt;In my case, I wanted single-sign-on to work for agents in &lt;a href="http://otrs.org/"&gt;OTRS&lt;/a&gt;.&amp;nbsp; &lt;/div&gt;&lt;ol style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Use samba to join the AD&lt;br /&gt;No need to create a special user account and tinker with ktpass and the likes on windows. Everything that needs to be done in AD can be done from Linux through samba, and it works fine. &lt;br /&gt;I've tried to go down the route with the user-service account in AD and it was troublesome, to say the least. There is no resource kit for Windows 7 anymore, so there is no way to get ktpass.exe. The version from the Windows Server 2003 resource kit doesn't work in Windows 7 x64. In the end I had to run ktpass in the domain controller directly, which I'm sure isn't possible in all environments.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Compile mod_auth_kerb from source, as described by Ben Chapman &lt;a href="http://blogs.law.emory.edu/benchapman/2010/06/16/kerberized-sso-from-windows-to-apache-on-centos/"&gt;here&lt;/a&gt;. Unfortunately the link he cites is no longer available. While authentication works with the mod_auth_kerb in the centos repositories, authorization seems to be troublesome.&lt;/li&gt;&lt;li&gt;Configure Kerberos and Apache accordingly.&lt;br /&gt;My config files are attached. krb5.conf is complete, the rest are just the relevant parts. Case matters to krb5! I tried to define aliases so it would be less picky about that, but to no avail. Test kerberos functionality with klist and kinit.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;kinit username@DOMAIN.LOCAL&lt;/span&gt;&lt;/blockquote&gt;Should prompt for password, and exit silently if all worked. If not, go through your config again. I've set Apaches loglevel to debug, otherwise there is no useful output in case of errors with mod_auth_kerb. I had many issues of&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;gss_acquire_cred() failed: Unspecified GSS failure.&amp;nbsp; Minor code may provide more information (, No principal in keytab matches desired name)&lt;/span&gt;&lt;/blockquote&gt;In my Apache error_log. It took me a while to figure them out. Somehow mod_auth_kerb wasn't using the correct name for the kerberos service principal, despite me using canonical names. I had to override it, and this finally worked. &lt;/li&gt;&lt;li&gt;Configure OTRS&lt;br /&gt;I first decided to set up authorization in OTRS via Active Directory through LDAP. The &lt;a href="http://wiki.otrs.org/"&gt;OTRS Wiki&lt;/a&gt; provides an &lt;a href="http://wiki.otrs.org/index.php?title=Using_OTRS_with_Active_Directory_as_a_source_for_agents"&gt;excellent article&lt;/a&gt; that outlines the necessary changes in Kernel/Config.pm. This will not only authenticate existing users through AD, but also create new OTRS users and sync them from AD. For this to work no special Apache configuration is required. If this works, move on to enable Single-Sign-On in Apache for the otrs directory.&lt;br /&gt;Because I want to enable SSO for agents only, I had to use .htaccess files to specify security. So the only change in the Apache config for OTRS from the default is this:&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&amp;lt;Directory "/opt/otrs/bin/cgi-bin/"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;AllowOverride All&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Options +ExecCGI -Includes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;lt;/Directory&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;This enables us to comfortable change security settings in a .htaccess file placed in /opt/otrs/bin/cgi-bin. Here it is:&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&amp;lt;files index.pl&amp;gt;&lt;br /&gt;&amp;nbsp; AuthType Kerberos&lt;br /&gt;&amp;nbsp; AuthName "OTRS Kerberos Login"&lt;br /&gt;&amp;nbsp; KrbMethodNegotiate On&lt;br /&gt;&amp;nbsp; KrbMethodK5Passwd On&lt;br /&gt;&amp;nbsp; KrbAuthRealms DOMAIN.LOCAL&lt;br /&gt;&amp;nbsp; KrbServiceName HTTP/webserver.domain.local&lt;br /&gt;&amp;nbsp; Krb5KeyTab /etc/krb5.keytab&lt;br /&gt;&amp;nbsp; KrbSaveCredentials Off&lt;br /&gt;&amp;nbsp; KrbAuthoritative off&lt;br /&gt;&amp;nbsp; KrbVerifyKDC off&lt;br /&gt;#&amp;nbsp; KerbLocalUserMapping on&lt;br /&gt;&amp;nbsp; PerlAddVar ntdomain "DOMAIN.LOCAL pdc bdc"&lt;br /&gt;&amp;nbsp; PerlSetVar defaultdomain DOMAIN.LOCAL&lt;br /&gt;&amp;nbsp; PerlSetVar splitdomainprefix 1&lt;br /&gt;&amp;nbsp; require valid-user&lt;br /&gt;&amp;nbsp;&amp;lt;/files&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;With these settings in place, we only need to adapt OTRS to use Apaches authentication. Add these lines to OTRS's Config/Kernel.pm:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$Self-&amp;amp;gt;{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;$Self-&amp;amp;gt;{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN.LOCAL';&lt;/span&gt;&lt;/blockquote&gt;Despite the manually compiled mod_auth_kerb I still found that Apache passed through the users with the domain name. The easy fix in OTRS is to replace that part via regex, and all is peachy. As of now I'm happy it's working and don't want to spend more time finding out why this fix is required. ;-) &lt;/li&gt;&lt;li&gt;Client settings&lt;br /&gt;This may be obvious to some, but here it is anyway. In Internet Explorer you have to add the webserver.domain.local to the Local Intranet. Also, you have to enable Integrated Windows Authentication in the Advanced Settings. In Firefox you need to make sure to add "domain.local" to the config value network.negotiate-auth.trusted-uris. This will cause firefox to authenticate using SSPI. I use Firefox 5 and this worked like a charm. Specifying webserver.domain.local under network.automatic-ntlm-auth.trusted-uris alone will not work, as this uses NTLM, which is not Kerberos! Also, by using canonical names in Apache, it doesn't matter whether the clients access the serber by hostname alone, or by FQDN. I've had too many users who don't seem to care, so this is a good thing. Of course, when you add SSL to the equation, things look differently. YMMV.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;/etc/samba/smb.conf&lt;/div&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[global]&lt;br /&gt;&amp;nbsp;&amp;nbsp; workgroup = DOMAIN&lt;br /&gt;&amp;nbsp;&amp;nbsp; password server = pdc_fqdn bdc_fqdn&lt;br /&gt;&amp;nbsp;&amp;nbsp; realm = DOMAIN.LOCAL&lt;br /&gt;&amp;nbsp;&amp;nbsp; security = ads&lt;br /&gt;&amp;nbsp;&amp;nbsp; template shell = /sbin/nologin&lt;br /&gt;&amp;nbsp;&amp;nbsp; winbind use default domain = false&lt;br /&gt;&amp;nbsp;&amp;nbsp; winbind offline logon = false&lt;br /&gt;&amp;nbsp;&amp;nbsp; use kerberos keytab = true&lt;br /&gt;&amp;nbsp;&amp;nbsp; winbind enum users = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp; winbind enum groups = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp; winbind use default domain = yes&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;/etc/krb5.conf&lt;/div&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;[logging]&lt;br /&gt;&amp;nbsp;default = FILE:/var/log/krb5libs.log&lt;br /&gt;&amp;nbsp;kdc = FILE:/var/log/krb5kdc.log&lt;br /&gt;&amp;nbsp;admin_server = FILE:/var/log/kadmind.log&lt;br /&gt;&lt;br /&gt;[libdefaults]&lt;br /&gt;&amp;nbsp;default_realm = DOMAIN.LOCAL&lt;br /&gt;&amp;nbsp;dns_lookup_realm = true&lt;br /&gt;&amp;nbsp;dns_lookup_kdc = true&lt;br /&gt;&amp;nbsp;ticket_lifetime = 24h&lt;br /&gt;&amp;nbsp;forwardable = yes&lt;br /&gt;&lt;br /&gt;[domain_realm]&lt;br /&gt;&amp;nbsp;MYSERVER.DOMAIN.LOCAL = DOMAIN&lt;br /&gt;DOMAIN.LOCAL = DOMAIN&lt;br /&gt;.DOMAIN.LOCAL = DOMAIN&lt;br /&gt;&amp;nbsp;domain.local = DOMAIN&lt;br /&gt;.domain.local = DOMAIN&lt;br /&gt;DOMAIN = DOMAIN&lt;br /&gt;.DOMAIN = DOMAIN&lt;br /&gt;domain = DOMAIN&lt;br /&gt;.domain = DOMAIN&lt;br /&gt;&lt;br /&gt;[realms]&lt;br /&gt;&amp;nbsp;DOMAIN= {&lt;br /&gt;&amp;nbsp; kdc = pdc_fqdn&lt;br /&gt;&amp;nbsp; admin_server = pdc_fqdn&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;DOMAIN.LOCAL = {&lt;br /&gt;&amp;nbsp; kdc = pdc_fqdn&lt;br /&gt;&amp;nbsp; kdc = pdc_fqdn&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;[appdefaults]&lt;br /&gt;&amp;nbsp; pam = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug = true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ticket_lifetime = 36000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; renew_lifetime = 36000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; forwardable = true&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; krb4_convert = true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; krb5_get_tickets = false&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;[login]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; krb4_convert = true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; krb4_get_tickets = false&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;Where pdc_fqdn would be somthing like DomainController.domain.local.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;/etc/httpd/conf/httpd.conf&lt;/div&gt;&lt;i style="font-family: Arial,Helvetica,sans-serif;"&gt;These are only the relevant parts, the rest is the default config.&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;KeepAlive On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ServerName webserver.domain.local&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;UseCanonicalName On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LogLevel debug&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;/etc/httpd/conf.d/auth_kerb.conf&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LoadModule auth_kerb_module modules/mod_auth_kerb.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Alias /private/ /path/to/my/folder&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&amp;lt;location private=""&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; Options Indexes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# SSLRequireSSL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; AuthType Kerberos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; AuthName "webserver Kerberos Login"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbMethodNegotiate On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbMethodK5Passwd On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbAuthRealms DOMAIN.LOCAL DOMAIN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbServiceName HTTP/webserver.domain.local&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; Krb5KeyTab /etc/krb5.keytab&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbSaveCredentials On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbAuthoritative off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; KrbVerifyKDC off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#&amp;nbsp; KerbLocalUserMapping on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; require valid-user&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/location&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-6897648992735049738?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/6897648992735049738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=6897648992735049738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6897648992735049738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6897648992735049738'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/08/apache-on-linux-and-single-sign-on-with.html' title='Apache on Linux and Single-Sign-On with Active Directory'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-6987552700314997290</id><published>2011-05-26T09:28:00.000+02:00</published><updated>2011-05-26T09:28:53.474+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='citrix'/><category scheme='http://www.blogger.com/atom/ns#' term='multipath'/><category scheme='http://www.blogger.com/atom/ns#' term='iscsi'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>XenServer iSCSI multipathing</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Like many others, I use XenServer with a iSCSI SAN. To leverage a single point of failure, I enabled multipathing. When the IP or path of a host adapter changes, it can be challenging to get XenServer to recognize the new path.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;The kb articles that Citrix &lt;a href="http://support.citrix.com/article/CTX118791"&gt;provides &lt;/a&gt;&lt;a href="http://support.citrix.com/article/CTX125888"&gt;about &lt;/a&gt;&lt;a href="http://support.citrix.com/article/CTX126162"&gt;such &lt;/a&gt;&lt;a href="http://support.citrix.com/article/CTX124754"&gt;issues&lt;/a&gt; are good pointers, but some commands are just plain wrong.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;So this should serve as my little cheat sheet, and it might help others out there as well.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;Check existing iSCSI sessions:&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;iscsiadm -m session&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt; &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt; More verbosive information can be gathered with:&lt;/div&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;iscsiadm --mode node  --loginall=all&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt; &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;If an IP has indeed changed, the old path needs to be forgotten. This can be done with:&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;iscsiadm –m node –T iqn.2008-01.com.openfiler:store01.lun01 –-portal=ip-address-of-the-storage -u&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;To reactivate a SR with multipathing&lt;/span&gt; one needs to get the SCSI ID from XenCenter, and then issue this:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mpathutil.py add &lt;scsi id="" lun="" of="" the=""&gt;&lt;/scsi&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span&gt;This step didn't work for me, however. Here's what did work in my case. Discover the targets manually:&lt;/span&gt;&lt;/div&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;iscsiadm -m discovery -t sendtargets --portal=&lt;span&gt;ip-address-of-the-storage&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span&gt;Then, with the iSCSI IQN manually log on to the target:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;iscsiadm -m node -T &lt;/span&gt;&lt;span&gt;iqn.2008-01.com.openfiler:store01.lun01&lt;/span&gt;&lt;span&gt; --portal=&lt;/span&gt;&lt;span&gt;ip-address-of-the-storage&lt;/span&gt;&lt;span&gt; -l&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span&gt;This should yield in something like this:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;Logging in to [iface: default, target: &lt;/span&gt;&lt;span&gt;iqn.2008-01.com.openfiler:store01.lun01&lt;/span&gt;&lt;span&gt;, portal: &lt;/span&gt;&lt;span&gt;ip-address-of-the-storage&lt;/span&gt;&lt;span&gt;,3260]&lt;br /&gt;Login to [iface: default, target: &lt;/span&gt;&lt;span&gt;iqn.2008-01.com.openfiler:store01.lun01&lt;/span&gt;&lt;span&gt;, portal: &lt;/span&gt;&lt;span&gt;ip-address-of-the-storage&lt;/span&gt;&lt;span&gt;,3260]: successful&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;The added path should immediately be shown in iscsiadm -m session. If there are still issues, restart the multipath daemon:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;service multipathd restart&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;It's noteworthy that this doesn't disrupt any services. So it should be safe in a production environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span&gt;If XenCenter still reports wrong number of active/inactive paths, a refresh can be forced by running:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/opt/xensource/sm/mpathcount.py&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-6987552700314997290?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/6987552700314997290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=6987552700314997290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6987552700314997290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6987552700314997290'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/05/xenserver-iscsi-multipathing.html' title='XenServer iSCSI multipathing'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-2138729964714897884</id><published>2011-05-23T14:02:00.002+02:00</published><updated>2011-08-11T14:13:48.149+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omsa'/><category scheme='http://www.blogger.com/atom/ns#' term='dell'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>XenServer 5.6 and Dell OpenManage 6.5</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="http://citrix.com/"&gt;Citrix &lt;/a&gt;recently released &lt;a href="http://support.citrix.com/article/CTX129390"&gt;XenServer 5.6 Service Pack 2&lt;/a&gt;. While you probably have found out already, that upgrading from XenServer 5.6 FP1 only works through XenCenter and not by booting from the ISOs, those of you running XenServer on Dell boxes might appreciate some pointers in getting OMSA up and running again.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Dell actually recognizes XenServer as an operating system for their servers, so there is an ISO that can be used as supplemental pack when XenServer is installed. Yay! The same ISO can be used to install it on an existing system. Instructions can be found &lt;a href="http://www.delltechcenter.com/page/OpenManage+on+XenServer+5.6"&gt;here&lt;/a&gt;, at &lt;a href="http://www.delltechcenter.com/"&gt;Dell's Enterprise Technology Center&lt;/a&gt;. This site also has directions where the latest OMSA download can be found, so check it out!&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I had OpenManagae 6.4 installed on all of my XenServers prior to upgrading them to 5.6 SP2. The installer failed because some conflicting packages were already installed. So I basically had to remove OMSA 6.4 before I could install 6.5. To save you the hassle of identifying the individual packages, here's how to get rid of it quickly:&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;yum remove srvadmin-smweb srvadmin-smcommon srvadmin-omilcore srvadmin-sm srvadmin-iws libsmbios sblim-sfcc&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;After running the install.sh script on the downloaded ISO, it is necessary to bounce the srvadmin services by issuing:&lt;/div&gt;&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/opt/dell/srvadmin/sbin/srvadmin-services stop&lt;br /&gt;/opt/dell/srvadmin/sbin/srvadmin-services start&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Thanks to jh for pointing out the mistake.&amp;nbsp;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-2138729964714897884?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/2138729964714897884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=2138729964714897884' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/2138729964714897884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/2138729964714897884'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2011/05/xenserver-56-and-dell-openmanage-65.html' title='XenServer 5.6 and Dell OpenManage 6.5'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-7858912847927832841</id><published>2010-12-22T11:23:00.000+01:00</published><updated>2010-12-22T11:23:59.729+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iperf windows centos monit'/><title type='text'>iperf woes</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Yesterday I blogged about &lt;a href="http://ingenious-excerpts.blogspot.com/2010/12/centos-iperf-and-monit.html"&gt;iperf, CentOS and monit&lt;/a&gt;. Well, it turns out it was a bit early to report success. Even with monit, iperf is inherently unstable on CentOS. Monit's log shows this: &lt;/div&gt;&lt;blockquote style="font-family: Arial,Helvetica,sans-serif;"&gt;[CET Dec 21 11:26:14] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' process with pid 20557 is a zombie&lt;br /&gt;[CET Dec 21 11:26:14] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' failed, cannot open a connection to INET[127.0.0.1:5001] via TCP&lt;br /&gt;[CET Dec 21 11:26:14] info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' trying to restart&lt;br /&gt;[CET Dec 21 11:26:14] info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' stop: /etc/init.d/iperfd&lt;br /&gt;[CET Dec 21 11:26:44] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' failed to stop&lt;br /&gt;[CET Dec 21 11:27:44] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' process with pid 20557 is a zombie&lt;br /&gt;[CET Dec 21 11:27:44] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' failed, cannot open a connection to INET[127.0.0.1:5001] via TCP&lt;br /&gt;[CET Dec 21 11:27:44] info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' trying to restart&lt;br /&gt;[CET Dec 21 11:27:44] info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' stop: /etc/init.d/iperfd&lt;br /&gt;[CET Dec 21 11:28:14] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' failed to stop&lt;br /&gt;[CET Dec 21 11:29:14] error&amp;nbsp;&amp;nbsp;&amp;nbsp; : 'iperf' process with pid 20557 is a zombie&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;And ps shows iperf is defunct. This is obviously a bad situation. When I run iperf without -D parameter, it responds one time and then shuts down. But I couldn't get this behaviour to work with iperfd and monit properly. For the record, I used "iperf version 2.0.4 (7 Apr 2008) pthreads".&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;So in the end I resorted to use iperf on a Windows box and run it as a service. So far there have been no problems.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-7858912847927832841?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/7858912847927832841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=7858912847927832841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7858912847927832841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7858912847927832841'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/12/iperf-woes.html' title='iperf woes'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-2099296185713321235</id><published>2010-12-21T10:13:00.004+01:00</published><updated>2010-12-21T10:24:54.375+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='monit'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='FAN'/><category scheme='http://www.blogger.com/atom/ns#' term='iperf'/><category scheme='http://www.blogger.com/atom/ns#' term='bandwidth'/><category scheme='http://www.blogger.com/atom/ns#' term='nagios'/><title type='text'>CentOS, iperf and monit</title><content type='html'>&lt;span style="font-family:arial;"&gt;I'm quite fond of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://fannagioscd.sourceforge.net/"&gt;FAN&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and so I have several CentOS-based Nagios systems to check various things. I recently needed to check the available bandwith between two servers, so I decided to use &lt;/span&gt;&lt;a style="font-family: arial;" href="https://trac.id.ethz.ch/projects/nagios_plugins/wiki/check_bandwidth"&gt;check_bandwidth&lt;/a&gt;&lt;span style="font-family:arial;"&gt; which is based on &lt;/span&gt;&lt;a style="font-family: arial;" href="http://sourceforge.net/projects/iperf/"&gt;iperf&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. So far so good.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Because I need to rely on iperf to be running on both ends, I ended up using &lt;/span&gt;&lt;a style="font-family: arial;" href="http://mmonit.com/monit/"&gt;monit&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: arial;"&gt;"Monit can start a process if it does not run,                             restart a process if it does not respond and stop                             a process if it uses too much resources."&lt;/blockquote&gt;&lt;span style="font-family:arial;"&gt;Greg from &lt;/span&gt;&lt;a style="font-family: arial;" href="http://thebraindive.blogspot.com/"&gt;the brain dive&lt;/a&gt;&lt;span style="font-family:arial;"&gt; was kind enough to post the steps to set up iperf and monit on CentOS &lt;/span&gt;&lt;a style="font-family: arial;" href="http://thebraindive.blogspot.com/2010/06/setting-up-iperf-as-daemon-on-centos.html"&gt;here&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. These steps almost led me to success, I had to do a few extra steps to make it work:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;chmod +x /etc/init.d/iperfd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;add "set daemon 60" to /etc/monit.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I found monit a bit weird to debug, because it doesn't write anything to it's logfile. So to find out why it's dying, I ran it in foreground with "monit -vI" which gives nice diagnostic output.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-2099296185713321235?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/2099296185713321235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=2099296185713321235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/2099296185713321235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/2099296185713321235'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/12/centos-iperf-and-monit.html' title='CentOS, iperf and monit'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-8694651223035489087</id><published>2010-11-22T13:53:00.005+01:00</published><updated>2010-11-22T14:03:42.986+01:00</updated><title type='text'>XenServer and Dell OMSA</title><content type='html'>&lt;span style="font-family:arial;"&gt;As I have &lt;/span&gt;&lt;a style="font-family: arial;" href="http://ingenious-excerpts.blogspot.com/2010/06/xenserver-and-dell-omsa.html"&gt;written&lt;/a&gt; &lt;a style="font-family: arial;" href="http://ingenious-excerpts.blogspot.com/2010/07/xenserver-and-dell-omsa-addendum.html"&gt;before&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, there is a way to install ans use Dell OpenManage Server Administrator on vanilla Citrix XenServer. I have got it running on three production servers for five months now without issues. One is a R710, the others are PowerEdge 2950.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I've had to update the firmware of one RAID controller in order for it to work with OMSA. This was tricky, as there is no support for doing this in Linux. So I've had to use a Windows live CD, and upgrade the firmware from there. Worked like a charm.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-8694651223035489087?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/8694651223035489087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=8694651223035489087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/8694651223035489087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/8694651223035489087'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/11/xenserver-and-dell-omsa.html' title='XenServer and Dell OMSA'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-3133347107195118734</id><published>2010-07-06T14:26:00.002+02:00</published><updated>2010-07-06T14:34:10.468+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='omsa'/><category scheme='http://www.blogger.com/atom/ns#' term='dell'/><category scheme='http://www.blogger.com/atom/ns#' term='ipmi'/><category scheme='http://www.blogger.com/atom/ns#' term='xenserver'/><title type='text'>XenServer and Dell OMSA - addendum</title><content type='html'>&lt;span style="font-family: arial;"&gt;As I've written &lt;/span&gt;&lt;a style="font-family: arial;" href="http://ingenious-excerpts.blogspot.com/2010/06/xenserver-and-dell-omsa.html"&gt;here &lt;/a&gt;&lt;span style="font-family: arial;"&gt;it is indeed possible to install Dell OMSA on a XenServer 5.6 host without DDK. I've taken a brand new Dell R710 machine and decided to give it a go.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;After I followed the instrcutions I encountered some weird issues though. The OMSA Webinterface was buggy, and only a few sensors were available.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;For instance&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: arial;"&gt;# omreport chassis temps&lt;br /&gt;Error! No temperature probes found on this system.&lt;/blockquote&gt;&lt;span style="font-family: arial;"&gt;certainly didn't seem right. After some googling I thought I found the cuplrit in missing modules, namely dcdbas and dcdipm. I found only dcdbas was present, but not loaded:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: arial;"&gt;# modprobe -l -v|grep dcd&lt;br /&gt;/lib/modules/2.6.27.42-0.1.1.xs5.6.0.44.111158xen/kernel/drivers/firmware/dcdbas.ko&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial;"&gt;Loading it didn't help though. After more googling I found that openipmi is required, but isn't being installed during the OMSA install. So I installed it, restarted all omsa services and everything works fine:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: arial;"&gt;# omreport chassis temps&lt;br /&gt;Temperature Probes Information&lt;br /&gt;&lt;br /&gt;------------------------------------&lt;br /&gt;Main System Chassis Temperatures: Ok&lt;br /&gt;------------------------------------&lt;br /&gt;&lt;br /&gt;Index                     : 0&lt;br /&gt;Status                    : Ok&lt;br /&gt;Probe Name                : System Board Ambient Temp&lt;br /&gt;Reading                   : 28.0 C&lt;br /&gt;Minimum Warning Threshold : 8.0 C&lt;br /&gt;Maximum Warning Threshold : 42.0 C&lt;br /&gt;Minimum Failure Threshold : 3.0 C&lt;br /&gt;Maximum Failure Threshold : 47.0 C&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-3133347107195118734?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/3133347107195118734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=3133347107195118734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/3133347107195118734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/3133347107195118734'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/07/xenserver-and-dell-omsa-addendum.html' title='XenServer and Dell OMSA - addendum'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-5957729950834084888</id><published>2010-06-25T15:25:00.004+02:00</published><updated>2010-06-25T15:30:45.995+02:00</updated><title type='text'>XenServer and Dell OMSA</title><content type='html'>&lt;span style="font-family: arial;"&gt;So Citrix has finally seen the light and is no longer supporting OEM'd versions of XenServer. If you have Dell servers however, you might want to monitor them using OpenManage. While Dell &lt;/span&gt;&lt;a style="font-family: arial;" href="http://linux.dell.com/wiki/index.php/Repository/hardware#Supported_Operating_Systems"&gt;supports a host of Linux distributions&lt;/a&gt;&lt;span style="font-family: arial;"&gt;, XenServer per se (which is a stripped-down CentOS) isn't directly supported. There were a few hackish guides floating around the interpipes, but I didn't want to risk them on a production system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Now &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.ruslansivak.com/"&gt;this guy&lt;/a&gt;&lt;span style="font-family: arial;"&gt; has found out how to &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.ruslansivak.com/2010/6/23/XenServer-56-"&gt;install OMSA on XenServer 5.6&lt;/a&gt;&lt;span style="font-family: arial;"&gt; and lo and behold, there is no black magic involved. I can't wait to verify his claims. Now I'm off backing up my XenServers though ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-5957729950834084888?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/5957729950834084888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=5957729950834084888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/5957729950834084888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/5957729950834084888'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/06/xenserver-and-dell-omsa.html' title='XenServer and Dell OMSA'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-6969840753810914174</id><published>2010-05-28T10:26:00.003+02:00</published><updated>2010-05-28T10:29:34.319+02:00</updated><title type='text'>Xen 4.0 on Debian Squeeze</title><content type='html'>&lt;span style="font-family: arial;"&gt;After having used Citrix XenServer for a while, I wanted to set up and test vanilla Xen for some time now. Finally an opportunity arose, so here are my findings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Installing Xen 4.0 is easy&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The debian-xen kernel is no good&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: arial;"&gt;Turns out that it's missing the netbk module, without which networking and xen virtual machines don't work. And virtual machines without network - let's face it - are about as interesting as washing your feet whilst wearing boots.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-6969840753810914174?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/6969840753810914174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=6969840753810914174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6969840753810914174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6969840753810914174'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/05/xen-40-on-debian-squeeze.html' title='Xen 4.0 on Debian Squeeze'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-8731192166523865694</id><published>2010-04-30T15:02:00.002+02:00</published><updated>2010-04-30T15:43:10.458+02:00</updated><title type='text'>Oracle Forms 6i vs. Oracle 11gR2</title><content type='html'>&lt;span style="font-family: arial;"&gt;Oracle Forms 6i is a well known application, and despite it no longer being supported, it shares a huge user base. Most applications are so vast that it's simply not feasible to ever upgrade them. Instead some are being gradually replaced while others just drag on. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;While Oracle Forms 6i client is of course supported even on Windows 7 and Server 2008, it is unclear whether it will be play nice with future Oracle database releases.&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;br /&gt;As &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.oracle.com/technology/software/products/database/index.html"&gt;Oracle datase 11gR2 has been released on Windows platforms&lt;/a&gt;&lt;span style="font-family: arial;"&gt; too, I considered upgrading our old RDBMS to 11gR2. Of course we use Oracle Forms 6i client/server, which is only certified for Oracle 10gR1.&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;br /&gt;To my surprise, Oracle Forms 6i is able to connect to 11gR2 using username/password. When using &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.stanford.edu/dept/itss/docs/oracle/10g/win.101/b10113/authen.htm"&gt;Native Windows Authentication&lt;/a&gt;&lt;span style="font-family: arial;"&gt; however, the client just freezes for a few seconds, then quits. I tried all patches, and even patched Oracle RSF to 8.0.6.3 - but the problem remained. It seems to be a fundemalten problem as the client is unable to connect to a 11gR2 database as soon as the parameter sqlnet.authentication_services includes NTS.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;With 11gR1 however, everything's fine in this regard.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-8731192166523865694?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/8731192166523865694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=8731192166523865694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/8731192166523865694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/8731192166523865694'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2010/04/oracle-forms-6i-vs-oracle-11gr2.html' title='Oracle Forms 6i vs. Oracle 11gR2'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-982242389992768526</id><published>2009-12-29T14:47:00.005+01:00</published><updated>2009-12-29T15:03:42.157+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sqldeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='x64'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='jdk'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle SQLDeveloper on Windows x64</title><content type='html'>&lt;span style="font-family: arial;"&gt;There is a new version of Oracle SQLDeveloper available. The release notes are &lt;a href="http://www.oracle.com/technology/products/database/sql_developer/files/relnotes_v2.1.html"&gt;here&lt;/a&gt;. This time there is even a build for 64bit Windows platforms available.&lt;/span&gt; &lt;span style="font-family: arial;"&gt;All that needs to be done after unpacking is to point it to the JDK x64 java.exe. It doesn't work with a 32bit JDK!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;There were &lt;/span&gt;&lt;a style="font-family: arial;" href="http://tiredblogger.wordpress.com/2009/05/29/configuring-oracle-sql-developer-for-windows-7/"&gt;quite &lt;/a&gt;&lt;span style="font-family: arial;"&gt;some &lt;/span&gt;&lt;a style="font-family: arial;" href="http://blogs.imeta.co.uk/jallderidge/archive/2009/09/30/770.aspx"&gt;workarounds &lt;/a&gt;&lt;span style="font-family: arial;"&gt;floating around to make it work. Having to install a 32bit JDK on a 64bit OS for a 32bit Java application always seemed weird to me. So I'm glad Oracle finally got around the bend and provide a fully functional SQL Developer for Windows x64.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Of course the language / regional fix still applies to this version, as they didn't bother to include a GUI option to specify them. In case you are wondering why your SQL Developer shows up in some weird language other than English, add these lines to your sqldeveloper/bin/sqldeveloper.conf:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: arial;"&gt;AddVMOption -Duser.language=en&lt;br /&gt;AddVMOption -Duser.country=US&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-982242389992768526?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/982242389992768526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=982242389992768526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/982242389992768526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/982242389992768526'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/12/oracle-sqldeveloper-on-windows-x64.html' title='Oracle SQLDeveloper on Windows x64'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-7347990480572400928</id><published>2009-12-27T13:57:00.003+01:00</published><updated>2009-12-27T15:22:19.620+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BD390'/><category scheme='http://www.blogger.com/atom/ns#' term='uclinux'/><title type='text'>improving the LG BD390?</title><content type='html'>I recently got a LG BD390, which is of course a bluray player that features UPnP/DLNA support, as you all already know.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://demmer.ipax.at/blog/lg-bd390/"&gt;Someone&lt;/a&gt; has &lt;a href="http://ubuntuforums.org/showthread.php?t=1227062&amp;amp;page=2"&gt;gotten &lt;/a&gt;the alleged firmware from LG, but turns out just to be the cross-compile toolchain and ucLinux. Well, anyway we know know that the BD370 and BD390 are based on that.&lt;br /&gt;&lt;br /&gt;I don't think that there isn't a way to get console access to this device. A detailed network scan revealed this:&lt;br /&gt;&lt;blockquote&gt;PORT      STATE SERVICE VERSION&lt;br /&gt;111/tcp   open  rpcbind&lt;br /&gt;9736/tcp  open  unknown&lt;br /&gt;44394/tcp open  unknown&lt;/blockquote&gt;&lt;br /&gt;Port 44394 TCP returns a "500 internal server error", but probably just due to an incorrect URL. At least this means a webserver is running, so there is hope. ;-)&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-7347990480572400928?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/7347990480572400928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=7347990480572400928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7347990480572400928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7347990480572400928'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/12/improving-lg-bd390.html' title='improving the LG BD390?'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-3138101643979534747</id><published>2009-03-31T18:30:00.005+02:00</published><updated>2009-03-31T18:38:50.182+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ss4200'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><title type='text'>SS4200 woes</title><content type='html'>&lt;span style="font-family: arial;"&gt;Well, ever since I had the SS4200 it just froze from time to time. I never had a chance to find out the details, because it mostly froze during the day when I was at work, or at night when I was out drin^H^H^H^H studying.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I always thought it was related to my custom kernel. Now it finally froze in my presence, so I could check it out. I opened the case and found the fans spinning rather slowly, and the CPU and northbridge were very hot. I figured the poor thing overheated.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;So in fact I was right, because I enabled thermal management and CPU throtteling in my kernel, and loaded all those modules of course.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Add the fact that the Celeron 420 actually doesn't support SpeedStep, and you've got a few kernel moduels going crazy.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I'll remove the thermal and cpu throtteling modules for the time being and see whether that improves stability.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;In the long run I want a NAS that doesn't consume more power than really necessary, so I'll probably switch the CPU to a Celeron E1400 or similiar. Those already got a 2nd core and support SpeedStep. While that's got a higher TDP, I think the power consumption is going to be lower, over all.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Guess we'll have to wait and see.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-3138101643979534747?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/3138101643979534747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=3138101643979534747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/3138101643979534747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/3138101643979534747'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/03/ss4200-woes.html' title='SS4200 woes'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-2747743983941342119</id><published>2009-03-05T09:05:00.002+01:00</published><updated>2009-03-05T09:12:10.773+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>C# debugging</title><content type='html'>&lt;span style="font-family: arial;"&gt;If you are a C# developer using Visual Studio 2008 and you need to debug your solution using arguments? Then read on.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;There is a nice security feature in VS2008 that prevents arguments from being passed on to your executable. There even is a nice warning message, that tells you something about some bogus debug security settings. I haven't found any of these settings anywhere in the project, solution or even VS2008 settings. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I've still found a workaround, however:&lt;/span&gt;&lt;br /&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;In your C# project settings under Debug activate SQL-Server debugging&lt;/li&gt;&lt;li&gt;Make sure you've entered some arguments in the run options&lt;/li&gt;&lt;li&gt;Debug your solution&lt;/li&gt;&lt;li&gt;Profit!&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: arial;"&gt;You'll see the familiar messagebox telling you that the security settings permit the arguments from being passed on to the executable. Continue anyway. Then you'll see a second messagebox, yapping on about some debug security settings that were disabled. Well guess what - from now on you can use arguments to debug! Oh and of course you can disable SQL server debugging, it's only needed to trigger that metaphysical process in VS2008. ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-2747743983941342119?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/2747743983941342119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=2747743983941342119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/2747743983941342119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/2747743983941342119'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/03/c-debugging.html' title='C# debugging'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-1866741983961871153</id><published>2009-02-27T15:16:00.005+01:00</published><updated>2009-02-27T16:02:22.928+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='sspi'/><title type='text'>VisualSVN + Trac = Love</title><content type='html'>&lt;a style="font-family: arial;" href="http://visualsvn.com/"&gt;VisualSVN&lt;/a&gt;&lt;span style="font-family: arial;"&gt; is pretty well known for providing a decent subversion server on windows-platforms thats also easy to administer. Even for those of us who want to use integrated windows authentication. However, the built-in support is lacking seamless single-sign-on from those applications that support it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;There exists a &lt;/span&gt;&lt;a style="font-family: arial;" href="http://visualsvn.com/server/trac/"&gt;special version&lt;/a&gt;&lt;span style="font-family: arial;"&gt; of VisualSVN thats packed with &lt;/span&gt;&lt;a style="font-family: arial;" href="http://trac.edgewall.org/"&gt;trac&lt;/a&gt;&lt;span style="font-family: arial;"&gt;. While this install isn't quite as straight-forward as the standard package - whoever has installed python on a production server knows what I'm talking about - once setup it works remarkably well. Except for true single-sign-on.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;To address this issue I figured that VisualSVN is just comprised of apache plus some svn modules. So it should be easy to hack in support to auth against an Active Directory. There &lt;/span&gt;&lt;a style="font-family: arial;" href="http://httpd.apache.org/docs/2.0/mod/mod_ldap.html"&gt;are &lt;/a&gt;&lt;a style="font-family: arial;" href="http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html"&gt;quite &lt;/a&gt;&lt;span style="font-family: arial;"&gt;a few &lt;/span&gt;&lt;a style="font-family: arial;" href="http://mod-auth-sspi.sourceforge.net/docu/mod_auth_sspi/"&gt;options &lt;/a&gt;&lt;span style="font-family: arial;"&gt;when it comes to this. I found only one working stable: &lt;/span&gt;&lt;a style="font-family: arial;" href="http://mod-auth-sspi.sourceforge.net/"&gt;mod_auth_sspi&lt;/a&gt;&lt;span style="font-family: arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;To get the correct modules and dependancies I installed a stand-alone apache (the exact version that ships with VisualSVN + Trac), and went from there. I blatantly copied any missing deps into the visualsvn/bin folder.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Here's my httpd.conf:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# This is configuration file for Apache HTTP server which is&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# part of VisualSVN Server.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# DO NOT EDIT THIS FILE IT WILL BE REGENERATED AUTOMATICALLY BY VISUALSVN SERVER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# Contact with VisualSVN Ltd. (support@visualsvn.com) if you have suggestions and&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# improvements.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ThreadsPerChild 64&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;MaxMemFree 100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;MaxRequestsPerChild  0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ServerRoot "C:/Program Files/VisualSVN Server"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ServerName "hostname.mydomain:443"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ServerSignature Off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ServerTokens Prod&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DocumentRoot "htdocs"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;PidFile "C:/Repositories//server.pid"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Listen "443"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule auth_basic_module bin/mod_auth_basic.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule auth_digest_module bin/mod_auth_digest.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule authn_file_module bin/mod_authn_file.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule authn_visualsvn_module bin/mod_authnz_visualsvn.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule authz_visualsvn_module bin/mod_authnz_visualsvn.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule authz_svn_module bin/mod_authz_svn.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule dir_module bin/mod_dir.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule deflate_module bin/mod_deflate.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule mime_module bin/mod_mime.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule setenvif_module bin/mod_setenvif.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule dav_module bin/mod_dav.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule dav_svn_module bin/mod_dav_svn.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule ssl_module bin/mod_ssl.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LoadModule sspi_auth_module bin/mod_auth_sspi.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;directory&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  Options FollowSymLinks&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  AllowOverride None&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/directory&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;location&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  DAV svn&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SVNListParentPath on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SVNParentPath "C:/Repositories/"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SVNIndexXSLT "/svnindex.xsl"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SVNPathAuthz on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  AuthName "Subversion Repositories"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  AuthType Basic&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  AuthType SSPI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SSPIAuth On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SSPIAuthoritative On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SSPIDomain jerich&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SSPIOfferBasic On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  SSPIOmitDomain On&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  require group MYDOMAIN\Subversion&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/location&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;ifmodule&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    DirectoryIndex index.html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/ifmodule&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ErrorLog "C:/Repositories//server.log"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LogLevel error&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;DefaultType text/plain&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;ifmodule&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    TypesConfig conf/mime.types&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    AddType application/x-compress .Z&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    AddType application/x-gzip .gz .tgz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    AddType application/x-x509-ca-cert .crt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    AddType application/x-pkcs7-crl    .crl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/ifmodule&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;ifmodule&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLEngine on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLRandomSeed startup   builtin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLRandomSeed connect   builtin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLPassPhraseDialog     builtin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLSessionCache         "shm:C:/Repositories//ssl_scache"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLSessionCacheTimeout  300&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLMutex                default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLCertificateFile      conf/hostname.cer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLCertificateKeyFile   conf/hostname.key.insecure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/ifmodule&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Include conf/httpd-custom.conf&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;And the httpd-custom.conf which includes the trac configuration:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;LoadModule python_module "trac/python/mod_python_so.pyd"&lt;br /&gt;LoadModule authz_user_module bin/mod_authz_user.so&lt;br /&gt;&lt;location&gt;&lt;br /&gt; SetHandler mod_python&lt;br /&gt; PythonInterpreter main_interpreter&lt;br /&gt; PythonHandler trac.web.modpython_frontend&lt;br /&gt; PythonOption TracEnvParentDir C:\Trac&lt;br /&gt; PythonOption TracUriRoot /trac&lt;br /&gt;&lt;br /&gt; AuthName "Trac"&lt;br /&gt; AuthType Basic&lt;br /&gt;&lt;br /&gt;  AuthType SSPI&lt;br /&gt;  SSPIAuth On&lt;br /&gt;  SSPIAuthoritative On&lt;br /&gt;  SSPIDomain mydomain&lt;br /&gt;  SSPIOfferBasic On&lt;br /&gt;  SSPIOmitDomain On&lt;br /&gt;&lt;br /&gt;  require group MYDOMAIN\Subversion&lt;br /&gt;&lt;/location&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial;"&gt;Everyone in the AD-group "Subversion" is granted access to SVN and trac also. This could be changed of course to allow different groups access. The access levels in trac can be configured from within the admin interface. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I decided to run a https server. To avoid nasty Internet Explorer warnings about certificates and whatnot, you can either disable the checks for certificates, or create a proper certificate if you are lucky and you've got a CA server in your domain. &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.timay.net/mt/archives/2004/07/create_apache_s.html"&gt;Here's&lt;/a&gt;&lt;span style="font-family: arial;"&gt; how to create a proper cert using openSSL and a windows CA. Copy them onto your svn server and that's it.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-1866741983961871153?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/1866741983961871153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=1866741983961871153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/1866741983961871153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/1866741983961871153'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/02/visualsvn-trac-love.html' title='VisualSVN + Trac = Love'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-6585634130970662164</id><published>2009-02-19T10:35:00.001+01:00</published><updated>2009-02-19T10:57:32.005+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CE'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='cab'/><title type='text'>Windows CE cab madness</title><content type='html'>&lt;span style="font-family: arial;"&gt;When you're creating applications for Windows CE 5.0 devices, and you want to package them using a cab file, here's two pieces of advice.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="font-family: arial;"&gt;Don't compress the cabinet file&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Don't use authenticode&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: arial;"&gt;kthxbye&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-6585634130970662164?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/6585634130970662164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=6585634130970662164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6585634130970662164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6585634130970662164'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/02/windows-ce-cab-madness.html' title='Windows CE cab madness'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-3773315896637042114</id><published>2009-02-05T10:56:00.002+01:00</published><updated>2009-02-05T11:01:07.290+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><title type='text'>Linux 2.4 hacking?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: arial;"&gt;I need to hack on a Linux 2.4 kernel for an embedded system. I thought of using one of my Linux boxes to do the work. But not only did the trusted "make menuconfig" bail on me, there were countless compile errors, even on the vanilla kernel! I gathered this is due to a version conflict with ncurses.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I had to resort to an old Debian, that's based on 2.4 and still comes with the old gcc and whatnot. Works like a charm!&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I'm sure I am not the only 2.4 hacker using a modern Linux distro. Any hints on how to make it work?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-3773315896637042114?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/3773315896637042114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=3773315896637042114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/3773315896637042114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/3773315896637042114'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2009/02/linux-24-hacking.html' title='Linux 2.4 hacking?'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-1241854084567283916</id><published>2008-12-27T09:20:00.003+01:00</published><updated>2008-12-27T09:26:07.712+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ss4200'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><category scheme='http://www.blogger.com/atom/ns#' term='hot-plug'/><title type='text'>NAS galore...again</title><content type='html'>&lt;span style="font-family:arial;"&gt;Well my replacement SS4200 has arrived surprisingly swift. That left me a lot of time to tinker with the serial console part again, but I couldn't get it to work. I noticed that the BIOS on this unit was a different version than the old one, maybe that's why.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The trouble is that you need to access the BIOS to change the boot order. But as soon as a new disk device is recognized, the boot order is changed. Bummer. The nice workaround that I used was to utilize SATA hot-plugging. Although it's specifically not supported with the EMC firmware and also it's stated to be unsupported in Intel's docs, it works surprisingly well. ;-)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In case anyone needs to know: First plug in the power cable on the drive, then attach the SATA cable.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-1241854084567283916?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/1241854084567283916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=1241854084567283916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/1241854084567283916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/1241854084567283916'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2008/12/nas-galoreagain.html' title='NAS galore...again'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-4840205793753012971</id><published>2008-12-19T20:17:00.001+01:00</published><updated>2008-12-19T20:18:16.508+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ss4200'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><title type='text'>ss4200 RIP</title><content type='html'>&lt;span style="font-family: arial;"&gt;Sweet, now just after I thought the new NAS is really coming along nicely, the PSU dies on me.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;grrr&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-4840205793753012971?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/4840205793753012971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=4840205793753012971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/4840205793753012971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/4840205793753012971'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2008/12/ss4200-rip.html' title='ss4200 RIP'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-6302958689804471578</id><published>2008-12-16T20:29:00.005+01:00</published><updated>2008-12-17T13:36:49.966+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ss4200'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><title type='text'>Debian on the SS4200</title><content type='html'>&lt;span style="font-family:arial;"&gt;And debian it is!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I've blatantly plugged the DOM into the IDE socket of a standard PC and fired up the ubuntu server installer. You have to compile a custom kernel however, since the stock ubuntu kernel lacks the IDE drivers for the SS4200.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A custom kernel needs to have IDE_GENERIC, IDE_PIIX and BLK_DEV_IDEDISK for the ide controller to be detected.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The E1000 module has the network driver, and the BLK_DEV_DS is quite nice to have USB storage support.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To compile and install I've stuck to &lt;a href="https://help.ubuntu.com/community/Kernel/Compile#Alternate%20Build%20Method:%20The%20Old-Fashioned%20Debian%20Way"&gt;this guide&lt;/a&gt;, I've used a vanilla linux kernel (2.6.27.9) though.&lt;br /&gt;&lt;br /&gt;The tough part wasn't compiling the kernel though. Its getting the BIOS to always boot from the DOM. The RS232 header didn't work for me as described &lt;a href="http://ss4200.pbwiki.com/Console-Access-via-RS232"&gt;here&lt;/a&gt;. I had to resort to a PCIe x1 graphics adapter and do it the old-fashioned way. I've tried to use a straight through cable without success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-6302958689804471578?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/6302958689804471578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=6302958689804471578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6302958689804471578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/6302958689804471578'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2008/12/debian-on-ss4200.html' title='Debian on the SS4200'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-7398050202227642471</id><published>2008-12-11T20:35:00.003+01:00</published><updated>2008-12-11T21:04:47.249+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefly'/><category scheme='http://www.blogger.com/atom/ns#' term='ss4200'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><category scheme='http://www.blogger.com/atom/ns#' term='gregarius'/><category scheme='http://www.blogger.com/atom/ns#' term='nslu2'/><category scheme='http://www.blogger.com/atom/ns#' term='wizd'/><title type='text'>NAS galore</title><content type='html'>&lt;span style="font-family: arial;"&gt;After using the brave &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/NSLU2"&gt;Linksys NSLU2&lt;/a&gt;&lt;span style="font-family: arial;"&gt; for more than 3 years, I've finally found a successor. :-) Before I spoil the news I'd like to elaborate on what this amazing little device was used for.&lt;p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Running &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.nslu2-linux.org/wiki/Unslung/HomePage"&gt;unslung &lt;/a&gt;&lt;span style="font-family: arial;"&gt;the little slug has fought bravely and I've used it to automagically &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.gregarius.net"&gt;fetch podcasts&lt;/a&gt;&lt;span style="font-family: arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://streamripper.sourceforge.net/"&gt;record streams&lt;/a&gt;&lt;span style="font-family: arial;"&gt;, serve &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.fireflymediaserver.org/"&gt;audio &lt;/a&gt;&lt;span style="font-family: arial;"&gt;and &lt;/span&gt;&lt;a style="font-family: arial;" href="http://wizd.sourceforge.net/"&gt;video&lt;/a&gt;&lt;span style="font-family: arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;It's amazing what can be achieved with a 266Mhz CPU and staggering 32MB of memory. Although there wasn't a day when I didn't make use of any of those services, the slug easily had uptimes &gt;100 days. Due to the lack of moving parts it was inaudible, too.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;My device of choice is the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.intel.com/Products/Server/Storage-Systems/SS4200-EHW/SS4200-EHW-overview.htm"&gt;Intel SS4200&lt;/a&gt;&lt;span style="font-family: arial;"&gt;, which looks ridiculously powerful in comparison. It features a 1.6Ghz Celeron CPU (dual core) and sports 512MB of memory. The beauty is that all those components aren't soldered on, but socketed. So changing components is a piece of cake. When dealing with such numbers there are bound to be moving parts, and I've yet to see how to tune those fans for least possible noise. I'm certainly going to run the OS off an SSD so that the HDs can spin down when idle - something that was tricky on the slug to say the least ;-).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I still haven't made up my mind about which OS to use. I have considered &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.freenas.org/"&gt;freenas&lt;/a&gt;&lt;span style="font-family: arial;"&gt;, some &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.rpath.org/"&gt;rpath appliances&lt;/a&gt;&lt;span style="font-family: arial;"&gt; and of course &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.debian.org/"&gt;debian&lt;/a&gt;&lt;span style="font-family: arial;"&gt;/&lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.ubuntu.com/products/WhatIsUbuntu/serveredition"&gt;ubuntu&lt;/a&gt;&lt;span style="font-family: arial;"&gt;. The huge debian userbase would certainly coem in nice....&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Although the SS4200 seems to be a nice device, there seems to be little information on hacking it. The only useful information I've found so far was in &lt;a href="http://ss4200.pbwiki.com/"&gt;this blog&lt;/a&gt;. For what it's worth I'll blog about my experiences putting *IX on this thing soon ;-)&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/36491389829011608-7398050202227642471?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/7398050202227642471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=7398050202227642471' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7398050202227642471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7398050202227642471'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2008/12/nas-galore.html' title='NAS galore'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36491389829011608.post-7013842355681249195</id><published>2008-11-13T19:42:00.002+01:00</published><updated>2008-11-13T21:41:26.103+01:00</updated><title type='text'>Meme</title><content type='html'>&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Grab the nearest book.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Open it to page 56.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Find the fifth sentence.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Post the text of the sentence in your journal along with these instructions.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;That's in German:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Wenn diese beiden Kongruenzen nicht erfüllt sind, ist&lt;/span&gt;&lt;span style="font-style: italic;font-family:georgia;" &gt; g&lt;/span&gt;&lt;span style="font-family:georgia;"&gt; eine Primitivwurzel mod &lt;/span&gt;&lt;span style="font-style: italic;font-family:georgia;" &gt;p&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;and in English:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;If those two congruencies are not valid, &lt;span style="font-style: italic;"&gt;g&lt;/span&gt; is a primitive root mod &lt;span style="font-style: italic;"&gt;p&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;&lt;br /&gt;This is about prime residue groups, in number's theory.&lt;br /&gt;The book is '&lt;a href="http://books.google.com/books?hl=en&amp;amp;id=P-tWZ_Ihq_sC&amp;amp;dq=einfuehrung+kryptographie&amp;amp;printsec=frontcover&amp;amp;source=web&amp;amp;ots=4PO709jIuS&amp;amp;sig=vaWV9r6Xt-vL-vbbenmAhAWm9D4&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=2&amp;amp;ct=result#PPP1,M1"&gt;Einführung in die Kryptograhpie&lt;/a&gt;' by Buchmann.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36491389829011608-7013842355681249195?l=ingenious-excerpts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ingenious-excerpts.blogspot.com/feeds/7013842355681249195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36491389829011608&amp;postID=7013842355681249195' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7013842355681249195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36491389829011608/posts/default/7013842355681249195'/><link rel='alternate' type='text/html' href='http://ingenious-excerpts.blogspot.com/2008/11/meme.html' title='Meme'/><author><name>fizze</name><uri>http://www.blogger.com/profile/01463622108703269455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
