Skip to main content

Posts

Showing posts from 2010

Updating Dell firmware when update_firmware fails

We sometimes see problems updating our Dell machines to the latest firmware, ie. update_firmware -y fails: Running updates...- Installing dell_dup_componentid_00159 - 1.4.7Installation failed forpackage: dell_dup_componentid_00159 - 1.4.7aborting update...The error message from the low-level command was:Could not parse output, bad xml for package: dell_dup_componentid_0015 9 Dell have been unable to tell me why this is, or provide a fix or workaround. Here's what I did to get the firmware installed:

NexentaStor (OpenSolaris) - changing a user's uid and getting CIFS to work

I have a NexentaStor-based NAS device on my home network. It has 10 x 500GB SATA Drives in a raidz2 configuration giving me approx 4TB of usable storage. I don't have many users at home (basically, just me!) so I don't bother with any central authentication mechanism – I simply make sure that use I the same login ( robin ) across all servers, and on unix/linux servers I make sure the UID is the same ( 10000 ). When a user is added to NexentaStor, it is allocated the next available UID beginning at 1001 ( 1000 is allocated to the admin user). For the robin  login, I need this to be 10000 . Not a problem – simply drop to a bash shell on the NAS and use vipw to change the UID of the login. The bit I *always* forget is that the CIFS server uses a different passwd file ( /var/smb/smbpasswd ) and it is necessary to change the UID in that file too.

Deploying to many servers

We currently deploy our app code to around 50 nodes using capistrano. We use the "copy" deployment method, ie. the code is checked out of svn onto the local deployment node, rolled into a tarball, then copied out to each target node where it is unrolled into a release dir before the final symlink is put in place. As you might imagine, copying to 50 nodes generates quite a bit of traffic, and it takes ~5 mins to do a full deploy. I was reading  this interesting link  today; one bullet in particular jumped out at me: "… the few hundred MB binary gets rapidly pushed bia [sic] bit torrent." Now that's an interesting idea – I wonder if I can knock up something in capistrano that deploys using bittorrent?

Updating Dell OMSA on CentOS

Dell distributes its OMSA software in RPM packages and even has a yum repo available so you'd think that updating to the next version would be as simple as yum update , right? Wrong! You have to remove the old version first, and then install the new version. Oh, and you also need to stop the Dell services, restart ipmi, then restart the Dell services. Something like this: yum -y remove srvadmin-* \ && rm -Rf /opt/dell \ && yum -y install srvadmin-all dell_ft_install \ && srvadmin-services.sh stop \ && service ipmi restart \ && srvadmin-services.sh start

Bash pitfalls

Some kind soul on #bash on Freenode recently pointed me at this excellent document: http://mywiki.wooledge.org/BashPitfalls (I ran into #20 , in case you're wondering)

Dell DRAC BBU auto-learn tests kill disk performance

We’ve had a bunch of new servers in place for around 3 months now. They seem to be working well and are performing just fine. Then, out of the blue, our monitoring started throwing alerts on seemingly random servers. Our queues were building up – basically, database performance had dropped dramatically and our processing scripts couldn’t stuff data into the DBs fast enough. What could be causing it?

MAC Addresses of embedded NICs on Dell servers through DRAC

I use cobbler to provision our new Dell servers, which is great but it needs the MAC addresses of the servers to identify each machine. Previously, I have been doing this manually: log in to the DRAC web interface launch the java console rebooting the server go into the BIOS navigate to Embedded Devices manually record the MAC addresses This takes quite a while, and is prone to error. I recently had another 42 servers to deploy to I looked for a way to automate this process. I found one!

RPM packages for Toggl Desktop client

I use the toggl time-tracking service to keep track of the hours I work for my various clients. toggl make available desktop clients for Windows, Mac, & Linux, but the Linux packages are in .deb format for Ubuntu and, until recently, they did not provide x86_64 packages. toggl recently released the desktop client as open source so I grabbed it and have built an RPM. SRPM: TogglDesktop-2.5.1-1.fc12.src.rpm RPM (Fedora 12, x86_64): TogglDesktop-2.5.1-1.fc12.x86_64.rpm

Dell OMSA on CentOS 5.4 x86_64 - No Controllers found error

It seems that several people have been having problems getting Dell OMSA 6.2 to work correctly on CentOS 5.4 x86_64. Specifically, the software does not detect any storage controllers, and therefore also doesn't find any disks. eg. [root@b034 ~]# omreport storage pdisk controller=0Invalid controller value. Read, controller=0No controllers found. After a little investigation, I found the source of the problem.

Building RPMs from Ruby gems

Update: see my recent post describing a better way to do this. I often need to deploy Ruby gems across many CentOS servers. I prefer to use the native OS package management tools (rpm + yum) rather than using Ruby gems. Here’s how to build RPMs from Ruby gems using gem2rpm.

Useful date command format string

When creating backups or log files, I like to name the files with a timestamp, ie. the date plus the time. I use the date command to produce timestamps in the appropriate format, but I find the format specifier a bit long-winded and difficult to remember – is %m minutes or month? There is a better way… date -I

Count of denied connections with iptables

In my iptables configurations, I generally allow all traffic I am interested in and deny the rest, logging anything that is denied. I found that this can get a bit noisy with loads of connections to udp:137 and udp:500, etc. so I decided to deny the more common ports without logging. But which are the most common ports?

Seeing available updates in svn repository

I've used subversion for quite a while now – I vaguely remember using CVS when working with some Sourceforge projects, but most of my experience is with subversion. I've used the command svn status (or svn st , for short) to show me what changes there are in my working copy. However, I've occasionally thought it would be nice to see what updates are available in the repository but I've never bothered to find out how to do it. Until now…