patch2mail for SLES10
Posted on April 21st, 2008 by Christian in Life
Well, there is this “nifty” tool called patch2mail, which basically converts the XML for the updates to a more readable format. But you’re screwed if you want to do the same on SLES10. Since it ain’t shipping with the zypper xml wrapper thing, you need to do it a bit different.
So I ended up writing a small (and yet, ugly) shell script to generate me a mail of my liking ..
#!/bin/bash # Checks the output of `zypper pch` for security/recommended/optional # updates and prepares a detailed report to be mailed to the # administrators TO="admin-addr@localhost" CLASSES="security recommended optional" # Temporary files ZYPP_LIST="$( mktemp /tmp/zypper-list.XXXXXX )" ZYPP_DETAILS="$( mktemp /tmp/zypper-details.XXXXXX )" TMP="$( mktemp /tmp/zypper-report.XXXXXX )" zypper pch 2>/dev/null > $ZYPP_LIST # Figure out how much updates are still pending PENDING="$( cat $ZYPP_LIST | grep "| Needed" | wc -l )" if [ $PENDING -eq 0 ] ; then exit 0 fi echo > $TMP echo " Pending updates for $( domainname -f ) on $( date )" >> $TMP for severity in $CLASSES; do PACKAGES="$( cat $ZYPP_LIST | egrep "${severity}(.*)\| Needed" | \ cut -d\| -f2 | sed "s,^ ,," )" echo echo " Category: $severity" for package in $PACKAGES; do zypper patch-info $package 2>/dev/null > $ZYPP_DETAILS echo " * $package ($( cat $ZYPP_DETAILS | grep "Version: " | \ sed "s,Version,version," ))" echo " $( cat $ZYPP_DETAILS | grep "Summary: ")" echo " $( cat $ZYPP_DETAILS | grep "Reboot Required:" )" echo done echo done >> $TMP cat $TMP | \ mail -s "[$( date +%F )] Update report for $( domainname -f )" $TO trap 'rm -f "$TMP" "$ZYPP_LIST" "$ZYPP_DETAILS" >/dev/null 2>&1' 0 trap "exit 2" 1 2 3 15 # vim: set tw=80
April 19th
Posted on April 20th, 2008 by Christian in Life
Well, as some people already figured out; yesterday was my birthday. Chrissy noted it on my blog, as well as about every channel we’re together in (so did Chris); so thanks a lot for that
Anyway, Saturday morning as I was forced to head downstairs due to my aunt calling (that was at 9am), my brother managed to take a shot at the presents as well as something else:
Well, ain’t he cute ? He’s always been particularly fond of lying around on paper. Well, anyway I had a lil’ birthday party planned in combination of myself and a friend of mine, so I invited some of my friends from work over to our place. Turns out, it was quite a nice gathering. I had lots of fun that evening (well, my birthday is the only day in the year I allow myself to get drunk!) apparently, so did all the others.That’s why …
Posted on April 17th, 2008 by Christian in Life
… I’d break a butterfly on a wheel … I was coming out of the office, and found my car this way:
Well happy me, I had some sort of cleanup detail for 20:00 local time (as in get all that birdie poooo of my damn roof!), and surprisingly once I was finished cleaning all the shit up, it started raining. Now, I’m never, *ever* gonna park below that dove/whateverdamndevilbirdyouare housing tree no more!Software support and “key account” managers
Posted on April 14th, 2008 by Christian in Life
As Mike wrote about his experiences with hardware vendors, I’m gonna devote this here post to my favorite software company in the world. We recently bought two copies of a software called “2X Application Server Enterprise Edition“. As one would think from reading the specs of the software, it’s near a Citrix solution (which it is, at least for a small part); but in return it’s faaaar away concerning the price. Just so you get an idea, about what I’m meaning with “faaar“:
Windows Server 2003:
Standard Edition: 2 * 91,00
CAL: 50 * 6,00
Terminal Server CAL: 50 * 17,00
___________
1.332,00The above are fixed costs, you need them anyway as both Citrix as well as the 2X solution is only working *on top* of Windows Server 2003 Terminal Services.
Now, here’s the real comparison between 2X Application Server & Loadbalancer and Citrix XenApp Platinum Edition:
2X 2 * 1510,00 = 3.020,00 Citrix 50 * 393,00 = 19.650,00
While 2X is licensed per terminal server, XenApp is licensed per user. As you can see from the above prices, the 2X solution is roughly 1/6 of the Citrix XenApp solution.
April weather
Posted on April 8th, 2008 by Christian in Life
Well, it’s April. And usually when it’s April, there’s April’s weather. In the morning I was rather surprised by the weather.
And after I picked up Michel, we some when arrived at work (that is one hour later), we had our own adventure park in front of the work place:
Apparently, the trees in at the entrance collapsed (thanks to Michel for the pictures), so we had to make our way through somehow … was rather funny way to start the day … *shrug*TYPO3 hogging
Posted on April 7th, 2008 by Christian in Life
Well, we do appear to be having some strange load problems with our main TYPO3 box hosting several home pages of the local universities, as you can see below.
We repeatedly tried to figure out which of them was the one responsible, but neither I nor the other Unix sysadmin knew a better way to figure out the load each TYPO3 installation was causing (since there ain’t no phptop or something similar). But since today the new semester started, we figured it might be good to finally figure which one it was. And a few minutes (as in one or two) wouldn’t be much of a problem compared to the advantage we’re getting out of it.As a comparison, here’s the “normal” load for the last week:
So as a last resort (because of said load problems), we simply deactivated one vHost after another, until the load started to relax. Unsurprisingly it was one of the installations that had problems before. Let’s see whether or not the people over at said university are insightful or not …Creating multi-distribution RPM/XML repositories
Posted on April 2nd, 2008 by Christian in Life
Well, as we do have quite a few custom built RPM’s, I was searching for a new solution to manage the repo(s). Currently I do have a single repository per distribution.
One thing one needs to know about createrepo (from createrepo), it doesn’t support this type of thing in the first place. So I had to come up with another way of doing it. First, I created a proper layout (much like the Debian Official Repository layout):
- dists/
- sle9/ (contains the repodata for SLES 9)
- sle10/ (contains the repodata for SLES 10)
- esx35/ (contains the repodata for VMware ESX 3.5)
- i586/
- noarch/
- ppc64/
- src/
- x86_64/
As you can see, this is gonna get tricky in regards to managing the RPMS in a single place, while keeping the distributions apart.
So I went ahead, rewrote the script that perviously managed our two repositories for SLES 9/10. The limitation I pointed out above (keeping the RPMS in a single place), is easily overcome by using bind-mounts (sure it looks messy).
Now the only problem I’m still facing is that createrepo isn’t even looking at the excludes when it’s called by the script. But if I pass the raw command line the script is calling on a simple shell, it works like a charm .. So I don’t have the slightest clue right now, why in gods name it ain’t working … ![]()