Command Line Editor Withdrawal

Tuesday, May 20th, 2008

It’s a serious problem that’s been troubling admin’s for over a decade now.  You sit, sweating in your cubicle waiting for the demand that you know is coming.  Suddenly you will need to replace 17 patterns in a 20k line document or else your boss will be up your behind.  Sure, you could SSH to some development box that someone barely knows exists.  Or you may be lucky/demanding and have a jump box just waiting for your every command.

But what about that screaming fast, multi-core laptop that your company issued to you?  Sure, it’s running winbloze, but that doesn’t make it useless.  You know what you need?  Some freeware loving, buddy.  And here it comes in the guise of Gnu VIM client for Win32.  You know it’s good for you, come on, it’s Gnu!vim

Deleting channel from Redhat Satellite Server

Monday, May 19th, 2008

Preface

Redhat licenses a product called a Satellite Server. It’s useful for maintaining your patch levels on your systems and keeping a uniform image of your systems by keeping your kickstart images in one place. It’s quite similar to HP’s Ignite product line and Sun’s Jumpstart product line.

Main

There are times when you no longer need to have a channel in your Redhat Satellite Server. Perhaps you added one by mistake or perhaps you have now upgraded all of your servers off of an old version of Red Hat. You can now remove that channel in order to save some space, decrease backup times, increase the simplicity of your configuration and just generally justify yourself as a good admin to your boss and peers.

The following procedure is not supported by RedHat in so much as they won’t help you if you call them up and ask for help on the issue. But it relies upon a script that is actually included with the Satellite Server when you install it. So while it’s a hack, I consider it’s risk to be fairly low. YMMV, so be sure to perform good backups before attempting this.

Check to make sure that the unwanted channel is still there.

This may sound a little silly, but this command will give you two things. A) a way to check your work after you’ve removed the channel and B) ensures that another admin on your team hasn’t actually already removed the channel before you got around to it.
[root@satellite-1 rhn]# satellite-sync –list-channels
16:51:13 Red Hat Network Satellite - live synchronization
16:51:13    url: https://satellite.rhn.redhat.com
16:51:13    debug/output level: 1
16:51:14    db:  rhnsat/<password>@rhnsat
16:51:14
16:51:14 Retrieving / parsing channel-families data
16:51:14 channel-families data complete
Pushing scout configs to all monitoring scouts
16:51:22
16:51:22 Retrieving / parsing channel data
16:51:38    p = previously imported/synced channel
16:51:38    . = channel not yet imported/synced
16:51:38    base-channels:
16:51:38       p redhat-advanced-server-i386              3707
16:51:38       . redhat-ent-linux-i386-es-2.1             3198
16:51:38       . redhat-linux-alpha-6.2                   1184
16:51:38       . redhat-linux-alpha-7.0                   1412
16:51:38       . redhat-linux-alpha-7.1                   1487
16:51:38       . redhat-linux-as-2.1-IPF                  3157
16:51:38       . redhat-linux-ee-i386-6.2                   13
16:51:38       . redhat-linux-i386-6.2                    1357
16:51:38       . redhat-linux-i386-7.0                    1615
16:51:38       . redhat-linux-i386-7.1                    2046
16:51:38       . redhat-linux-i386-7.2                    2338
16:51:38       . redhat-linux-i386-7.3                    2481
16:51:38       . redhat-linux-i386-8.0                    2316
16:51:38       . redhat-linux-i386-9                      1864
16:51:38       . redhat-linux-iSeries-7.1                 1135
16:51:38       . redhat-linux-ia64-7.1                    1392
16:51:38       . redhat-linux-ia64-7.2                    1886
16:51:38       . redhat-linux-pSeries-7.1                 1135
16:51:38       . redhat-linux-s390-7.2                    1447
16:51:38       . redhat-linux-s390x-7.1                    977
16:51:38       . redhat-linux-severn-i386-9.0.93          1455
16:51:38       . redhat-linux-sparc-6.2                   1201
16:51:38       . rhel-i386-as-3                           4910
16:51:39       . rhel-i386-as-4                           5235
16:51:39       . rhel-i386-es-3                           4929
16:51:39       . rhel-i386-es-4                           5235
16:51:39       p rhel-i386-server-5                       3299
16:51:39       . rhel-ia64-as-3                           5147
16:51:39       . rhel-ia64-as-4                           5553
16:51:39       . rhel-ia64-es-3                           4683
16:51:39       . rhel-ia64-es-4                           5552
16:51:39       . rhel-ia64-server-5                       3389
16:51:39       . rhel-ppc-as-3                            5251
16:51:39       . rhel-ppc-as-4                            5884
16:51:39       . rhel-ppc-server-5                        4265
16:51:39       . rhel-x86_64-as-3                         5403
16:51:39       . rhel-x86_64-as-4                         5993
16:51:39       . rhel-x86_64-es-3                         4907
16:51:39       . rhel-x86_64-es-4                         5993
16:51:39       p rhel-x86_64-server-5                     4324
16:51:39       . severn-beta2-i386                        1466
16:51:39    redhat-advanced-server-i386:
16:51:39       . rhn-tools-rhel-2.1-as-i386               1524
16:51:39    redhat-ent-linux-i386-es-2.1:
16:51:39       . rhn-tools-rhel-2.1-es-i386               1524
16:51:39    redhat-linux-alpha-6.2:
16:51:39       . redhat-powertools-alpha-6.2               532
16:51:39    redhat-linux-alpha-7.0:
16:51:39       . redhat-powertools-alpha-7.0               461
16:51:39    redhat-linux-alpha-7.1:
16:51:39       . redhat-powertools-alpha-7.1               459
16:51:39    redhat-linux-as-2.1-IPF:
16:51:39       . rhn-tools-rhel-2.1-as-ia64               1192
16:51:39    redhat-linux-i386-6.2:
16:51:40       . redhat-powertools-i386-6.2                584
16:51:40    redhat-linux-i386-7.0:
16:51:40       . redhat-powertools-i386-7.0                520
16:51:40    redhat-linux-i386-7.1:
16:51:40       . redhat-powertools-i386-7.1                541
16:51:40    redhat-linux-i386-7.2:
16:51:40       . k12ltsp-i386-7.2                           63
16:51:40    redhat-linux-i386-7.3:
16:51:40       . redhat-gcc3.1-i386-7.3                     12
16:51:40       . education-k12ltsp-i386-7.3                 82
16:51:40       . education-general-i386-7.3                  7
16:51:40    redhat-linux-i386-8.0:
16:51:40       . education-k12ltsp-i386-8.0                122
16:51:40    redhat-linux-i386-9:
16:51:40       . rhn-tools-redhat-linux-i386-9            1514
16:51:40       . education-k12ltsp-i386-9                  123
16:51:40    redhat-linux-severn-i386-9.0.93:
16:51:40       . redhat-linux-severn-i386-9.0.93-updates  2388
16:51:40    redhat-linux-sparc-6.2:
16:51:40       . redhat-powertools-sparc-6.2               480
16:51:40    rhel-i386-as-3:
16:51:40       . rhel-i386-as-3-fastrack                    56
16:51:40       . rhel-3-as-i386-rhds-2                      27
16:51:40       . rhel-i386-as-3-cluster                     33
16:51:40       . rhel-i386-as-3-hwcert                       9
16:51:40       . rhn-tools-rhel-3-as-i386                 1545
16:51:40       . rhel-i386-as-3-devsuite                     6
16:51:40       . rhel-i386-as-3-extras                     150
16:51:40    rhel-i386-as-4:
16:51:40       . rhel-i386-as-4-fastrack                   208
16:51:40       . rhel-4-as-i386-rhds-2.1                    15
16:51:40       . rhel-i386-as-4-hwcert                      18
16:51:40       . rhel-i386-as-4-sdk                          1
16:51:40       . rhel-4-as-i386-rhds-3                     145
16:51:40       . rhel-i386-as-4-extras                     218
16:51:40       . rhel-i386-as-4-cluster                    345
16:51:40       . rhn-tools-rhel-4-as-i386                 1274
16:51:40    rhel-i386-es-3:
16:51:40       . rhel-i386-es-3-extras                     150
16:51:40       . rhel-3-es-i386-rhds-2                      27
16:51:40       . rhn-tools-rhel-3-es-i386                 1545
16:51:40       . rhel-i386-es-3-fastrack                    56
16:51:40       . rhel-i386-es-3-devsuite                     6
16:51:40       . rhel-i386-es-3-cluster                     33
16:51:40    rhel-i386-es-4:
16:51:40       . rhel-4-es-i386-rhds-3                     145
16:51:40       . rhel-i386-es-4-sdk                          1
16:51:40       . rhn-tools-rhel-4-es-i386                 1274
16:51:40       . rhel-i386-es-4-extras                     218
16:51:40       . rhel-i386-es-4-fastrack                   208
16:51:40       . rhel-4-es-i386-rhds-2.1                    15
16:51:40       . rhel-i386-es-4-cluster                    345
16:51:40    rhel-i386-server-5:
16:51:40       . rhel-i386-server-supplementary-5          183
16:51:40       . rhel-i386-server-cluster-storage-5        116
16:51:40       . rhel-i386-server-productivity-5           460
16:51:40       . rhel-i386-server-vt-5                      71
16:51:40       . rhn-tools-rhel-i386-server-5              371
16:51:40       . rhel-i386-server-hts-5                      7
16:51:40       . rhel-i386-server-cluster-5                 73
16:51:40       . rhel-i386-server-fastrack-5               170
16:51:40    rhel-ia64-as-3:
16:51:40       . rhel-ia64-as-3-extras                      92
16:51:40       . rhel-ia64-as-3-cluster                     28
16:51:40       . rhel-ia64-as-3-devsuite                     3
16:51:40       . rhel-3-as-ia64-rhds-2                      27
16:51:40       . rhel-ia64-as-3-hwcert                       9
16:51:40       . rhn-tools-rhel-3-as-ia64                 1213
16:51:40       . rhel-ia64-as-3-fastrack                    61
16:51:40    rhel-ia64-as-4:
16:51:40       . rhel-4-as-ia64-rhds-3                     145
16:51:40       . rhel-4-as-ia64-rhds-2.1                    15
16:51:40       . rhn-tools-rhel-4-as-ia64                 1214
16:51:40       . rhel-ia64-as-4-hwcert                      18
16:51:40       . rhel-ia64-as-4-extras                      90
16:51:40       . rhel-ia64-as-4-fastrack                   228
16:51:40       . rhel-ia64-as-4-cluster                    229
16:51:40    rhel-ia64-es-3:
16:51:40       . rhel-ia64-es-3-extras                      92
16:51:40       . rhel-ia64-es-3-devsuite                     4
16:51:40       . rhel-3-es-ia64-rhds-2                      27
16:51:40       . rhel-ia64-es-3-cluster                     28
16:51:40       . rhn-tools-rhel-3-es-ia64                 1213
16:51:40       . rhel-ia64-es-3-fastrack                    61
16:51:40    rhel-ia64-es-4:
16:51:40       . rhel-4-es-ia64-rhds-2.1                    15
16:51:40       . rhel-ia64-es-4-extras                      90
16:51:40       . rhel-ia64-es-4-cluster                    229
16:51:40       . rhel-ia64-es-4-fastrack                   228
16:51:40       . rhn-tools-rhel-4-es-ia64                 1214
16:51:40       . rhel-4-es-ia64-rhds-3                     145
16:51:40    rhel-ia64-server-5:
16:51:40       . rhel-ia64-server-cluster-storage-5         95
16:51:40       . rhel-ia64-server-cluster-5                 73
16:51:40       . rhel-ia64-server-vt-5                      70
16:51:40       . rhel-ia64-server-supplementary-5           57
16:51:40       . rhel-ia64-server-fastrack-5               170
16:51:40       . rhn-tools-rhel-ia64-server-5              371
16:51:40       . rhel-ia64-server-hts-5                      7
16:51:40    rhel-ppc-as-3:
16:51:40       . rhel-ppc-as-3-fastrack                     61
16:51:40       . rhel-ppc-as-3-hwcert                       16
16:51:40       . rhel-3-as-ppc-rhds-2                       25
16:51:40       . rhel-ppc-as-3-extras                       75
16:51:40    rhel-ppc-as-4:
16:51:40       . rhel-ppc-as-4-cluster                      82
16:51:40       . rhn-tools-rhel-4-as-ppc                     0
16:51:40       . rhel-ppc-as-4-extras                       95
16:51:40       . rhel-ppc-as-4-hwcert                       26
16:51:40       . rhel-4-as-ppc-rhds-2.1                     15
16:51:40       . rhel-ppc-as-4-fastrack                    228
16:51:40       . rhel-4-as-ppc-rhds-3                      151
16:51:40    rhel-ppc-server-5:
16:51:40       . rhel-ppc-server-hts-5                       7
16:51:40       . rhel-ppc-server-supplementary-5            93
16:51:40       . rhel-ppc-server-fastrack-5                197
16:51:40       . rhn-tools-rhel-ppc-server-5                13
16:51:40    rhel-x86_64-as-3:
16:51:40       . rhel-x86_64-as-3-fastrack                  60
16:51:40       . rhel-x86_64-as-3-hwcert                     9
16:51:40       . rhn-tools-rhel-3-as-x86_64               1424
16:51:40       . rhel-x86_64-as-3-devsuite                   2
16:51:40       . rhel-x86_64-as-3-cluster                   28
16:51:40       . rhel-x86_64-as-3-extras                    85
16:51:40    rhel-x86_64-as-4:
16:51:40       . rhel-x86_64-as-4-fastrack                 231
16:51:40       . rhel-x86_64-as-4-extras                   160
16:51:40       . rhel-x86_64-as-4-sdk                        1
16:51:40       . rhn-tools-rhel-4-as-x86_64               1274
16:51:40       . rhel-x86_64-as-4-cluster                  329
16:51:40       . rhel-4-as-x86_64-rhds-3                   145
16:51:40       . rhel-4-as-x86_64-rhds-2.1                  15
16:51:40       . rhel-x86_64-as-4-hwcert                    18
16:51:40    rhel-x86_64-es-3:
16:51:40       . rhel-x86_64-es-3-fastrack                  60
16:51:40       . rhel-x86_64-es-3-cluster                   28
16:51:40       . rhn-tools-rhel-3-es-x86_64               1424
16:51:40       . rhel-x86_64-es-3-extras                    85
16:51:40       . rhel-x86_64-es-3-devsuite                   4
16:51:40    rhel-x86_64-es-4:
16:51:40       . rhel-4-es-x86_64-rhds-2.1                  15
16:51:40       . rhel-x86_64-es-4-extras                   160
16:51:40       . rhel-x86_64-es-4-fastrack                 231
16:51:40       . rhel-x86_64-es-4-cluster                  329
16:51:40       . rhel-4-es-x86_64-rhds-3                   145
16:51:40       . rhn-tools-rhel-4-es-x86_64               1274
16:51:40       . rhel-x86_64-es-4-sdk                        1
16:51:40    rhel-x86_64-server-5:
16:51:40       . rhel-x86_64-server-fastrack-5             201
16:51:40       . rhel-x86_64-server-hts-5                    7
16:51:40       . rhel-x86_64-server-vt-5                    81
16:51:40       . rhel-x86_64-server-cluster-5               73
16:51:40       . rhn-tools-rhel-x86_64-server-5            371
16:51:40       . rhel-x86_64-server-productivity-5         504
16:51:40       . rhel-x86_64-server-supplementary-5        232
16:51:40       . rhel-x86_64-server-cluster-storage-5       95
16:51:40    severn-beta2-i386:
16:51:40       . severn-beta2-i386-updates                1878
16:51:40
Import complete:
Begin time: Mon Apr 14 16:51:13 2008
End time:   Mon Apr 14 16:51:40 2008
Elapsed:    0 hours, 0 minutes, 26 seconds

Note the three channels that I’m already syncing are listed with p’s next to them instead of .’s next to them.  The channel in particular that we’re looking to drop is redhat-advanced-server-i386.

Now you should only remove a channel if it is not being used anymore.  Red Hat defines the unused state, in this knowledgebase article, as:
* There are no systems registered to the channel that is going to be deleted from the Satellite.
* There are no kickstart profiles using the channel.
* There are no activation keys defined that refer to the channel.
* There are no custom channels or packages depending on the channel.

My channel was added by mistake, but if you’re retiring an old channel, you should perform those checks now.

Database Backup

Now it’s time to get a cold backup of your Oracle database.  That’s RedHat’s recommendation.  Since I’m using the Oracle DB that is incorporated with Satellite Server, I didn’t mind performing this step.  If you’re riding on a full Oracle instance that rides on another machine, then getting a cold snapshot will be something you’ll have to work out with your DBA.  Since a DB has to be completely down and quiesced, it’s pretty rare to be able to convince a DBA that you need one unless it’s a huge change to your infrastructure.  You should be able to get away with a warm backup for recovery, but that is not what Red Hat recommends.

Before you get the cold snapshot, you need to stop the Satellite Server.

[root@satellite-1 redhat]# service rhn-satellite stop
Shutting down rhn-satellite…
2008-04-14 16:33:25 Monitoring: Debug level = 0
2008-04-14 16:33:25 Monitoring: Switches: stop
2008-04-14 16:33:25 Monitoring: STOPPING
2008-04-14 16:33:25 TSDBLocalQueue: STOPPING
2008-04-14 16:33:27 TSDBLocalQueue: STOPPED OK
2008-04-14 16:33:27 TSDBLocalQueue: ============ STATUS ===============
2008-04-14 16:33:27 TSDBLocalQueue: Last action: stop
2008-04-14 16:33:27 TSDBLocalQueue: ** Can be installed for SysV startup **
2008-04-14 16:33:27 TSDBLocalQueue: Run levels: 3
2008-04-14 16:33:27 TSDBLocalQueue: Start sequence: 81
2008-04-14 16:33:27 TSDBLocalQueue: Stop sequence: 30
2008-04-14 16:33:27 TSDBLocalQueue: STOPPED
2008-04-14 16:33:27 TSDBLocalQueue: GoGo options:
2008-04-14 16:33:27 TSDBLocalQueue: –fname=TSDBLocalQueue
2008-04-14 16:33:27 TSDBLocalQueue: –command=/home/nocpulse/bin/TSDBLocalQueue.pl
2008-04-14 16:33:27 TSDBLocalQueue: –user=apache
2008-04-14 16:33:27 TSDBLocalQueue: ===================================
2008-04-14 16:33:27 AckProcessor: STOPPING
2008-04-14 16:33:29 AckProcessor: STOPPED OK
2008-04-14 16:33:29 AckProcessor: ============ STATUS ===============
2008-04-14 16:33:29 AckProcessor: Last action: stop
2008-04-14 16:33:29 AckProcessor: ** Can be installed for SysV startup **
2008-04-14 16:33:29 AckProcessor: Run levels: 3
2008-04-14 16:33:29 AckProcessor: Start sequence: 71
2008-04-14 16:33:29 AckProcessor: Stop sequence: 41
2008-04-14 16:33:29 AckProcessor: STOPPED
2008-04-14 16:33:29 AckProcessor: GoGo options:
2008-04-14 16:33:29 AckProcessor: –fname=AckProcessor
2008-04-14 16:33:29 AckProcessor: –command=/opt/notification/scripts/ack-processor
2008-04-14 16:33:29 AckProcessor: –user=nocpulse
2008-04-14 16:33:29 AckProcessor: –hbfile=/var/tmp/ack_handler.log
2008-04-14 16:33:29 AckProcessor: –hbfreq=300
2008-04-14 16:33:29 AckProcessor: –hbcheck=600
2008-04-14 16:33:29 AckProcessor: ===================================
2008-04-14 16:33:29 Notifier: STOPPING
2008-04-14 16:33:31 Notifier: STOPPED OK
2008-04-14 16:33:31 Notifier: ============ STATUS ===============
2008-04-14 16:33:31 Notifier: Last action: stop
2008-04-14 16:33:31 Notifier: ** Can be installed for SysV startup **
2008-04-14 16:33:31 Notifier: Run levels: 3
2008-04-14 16:33:31 Notifier: Start sequence: 71
2008-04-14 16:33:31 Notifier: Stop sequence: 41
2008-04-14 16:33:31 Notifier: STOPPED
2008-04-14 16:33:31 Notifier: GoGo options:
2008-04-14 16:33:31 Notifier: –fname=Notifier
2008-04-14 16:33:31 Notifier: –command=/opt/notification/scripts/notifier
2008-04-14 16:33:31 Notifier: –user=nocpulse
2008-04-14 16:33:31 Notifier: –hbfile=/opt/notification/var/notifier.log
2008-04-14 16:33:31 Notifier: –hbfreq=300
2008-04-14 16:33:31 Notifier: –hbcheck=600
2008-04-14 16:33:31 Notifier: ===================================
2008-04-14 16:33:31 NotifLauncher: STOPPING
2008-04-14 16:33:33 NotifLauncher: STOPPED OK
2008-04-14 16:33:33 NotifLauncher: ============ STATUS ===============
2008-04-14 16:33:33 NotifLauncher: Last action: stop
2008-04-14 16:33:33 NotifLauncher: ** Can be installed for SysV startup **
2008-04-14 16:33:33 NotifLauncher: Run levels: 3
2008-04-14 16:33:33 NotifLauncher: Start sequence: 71
2008-04-14 16:33:33 NotifLauncher: Stop sequence: 41
2008-04-14 16:33:33 NotifLauncher: STOPPED
2008-04-14 16:33:33 NotifLauncher: GoGo options:
2008-04-14 16:33:33 NotifLauncher: –fname=NotifLauncher
2008-04-14 16:33:33 NotifLauncher: –command=/opt/notification/scripts/notif-launcher
2008-04-14 16:33:33 NotifLauncher: –user=nocpulse
2008-04-14 16:33:33 NotifLauncher: –hbfile=/opt/notification/var/notif-launcher.log
2008-04-14 16:33:33 NotifLauncher: –hbfreq=300
2008-04-14 16:33:33 NotifLauncher: –hbcheck=600
2008-04-14 16:33:33 NotifLauncher: ===================================
2008-04-14 16:33:33 NotifEscalator: STOPPING
2008-04-14 16:33:35 NotifEscalator: STOPPED OK
2008-04-14 16:33:35 NotifEscalator: ============ STATUS ===============
2008-04-14 16:33:35 NotifEscalator: Last action: stop
2008-04-14 16:33:35 NotifEscalator: ** Can be installed for SysV startup **
2008-04-14 16:33:35 NotifEscalator: Run levels: 3
2008-04-14 16:33:35 NotifEscalator: Start sequence: 70
2008-04-14 16:33:35 NotifEscalator: Stop sequence: 40
2008-04-14 16:33:35 NotifEscalator: STOPPED
2008-04-14 16:33:35 NotifEscalator: GoGo options:
2008-04-14 16:33:35 NotifEscalator: –fname=NotifEscalator
2008-04-14 16:33:35 NotifEscalator: –command=/opt/notification/scripts/notif-escalator
2008-04-14 16:33:35 NotifEscalator: –user=nocpulse
2008-04-14 16:33:35 NotifEscalator: –hbfile=/opt/notification/var/notif-escalator.log
2008-04-14 16:33:35 NotifEscalator: –hbfreq=300
2008-04-14 16:33:35 NotifEscalator: –hbcheck=600
2008-04-14 16:33:35 NotifEscalator: ===================================
2008-04-14 16:33:35 GenerateNotifConfig: STOPPING
2008-04-14 16:33:37 GenerateNotifConfig: STOPPED OK
2008-04-14 16:33:37 GenerateNotifConfig: ============ STATUS ===============
2008-04-14 16:33:37 GenerateNotifConfig: Last action: stop
2008-04-14 16:33:37 GenerateNotifConfig: ** Can be installed for SysV startup **
2008-04-14 16:33:37 GenerateNotifConfig: Run levels: 3
2008-04-14 16:33:37 GenerateNotifConfig: Start sequence: 70
2008-04-14 16:33:37 GenerateNotifConfig: Stop sequence: 40
2008-04-14 16:33:37 GenerateNotifConfig: STOPPED
2008-04-14 16:33:37 GenerateNotifConfig: GoGo options:
2008-04-14 16:33:37 GenerateNotifConfig: –fname=GenerateNotifConfig
2008-04-14 16:33:37 GenerateNotifConfig: –command=/opt/notification/scripts/generate-config
2008-04-14 16:33:37 GenerateNotifConfig: –user=nocpulse
2008-04-14 16:33:37 GenerateNotifConfig: –hbfile=/opt/notification/var/generate_config.log
2008-04-14 16:33:37 GenerateNotifConfig: –hbfreq=300
2008-04-14 16:33:37 GenerateNotifConfig: –hbcheck=600
2008-04-14 16:33:37 GenerateNotifConfig: ===================================
2008-04-14 16:33:37 InstallSoftwareConfig: STOPPING
2008-04-14 16:33:37 InstallSoftwareConfig: STOPPED OK
2008-04-14 16:33:37 InstallSoftwareConfig: ============ STATUS ===============
2008-04-14 16:33:37 InstallSoftwareConfig: Last action: stop
2008-04-14 16:33:37 InstallSoftwareConfig: STOPPED
2008-04-14 16:33:37 InstallSoftwareConfig: ===================================
2008-04-14 16:33:37 Monitoring: STOPPED OK
2008-04-14 16:33:37 Monitoring: ============ STATUS ===============
2008-04-14 16:33:37 Monitoring:    ++++ Monitoring backend functionality is enabled
2008-04-14 16:33:37 Monitoring:    —- Monitoring scout functionality is disabled
2008-04-14 16:33:37 Monitoring: Last action: stop
2008-04-14 16:33:37 Monitoring: ** Installed for SysV startup **
2008-04-14 16:33:37 Monitoring: STOPPED
2008-04-14 16:33:37 Monitoring: ===================================
Stopping httpd:                                            [  OK  ]
waiting for processes to exit                              [  OK  ]
waiting for processes to exit
Stopping RHN Taskomatic…
Stopped RHN Taskomatic.
Shutting down osa-dispatcher:                              [  OK  ]
Shutting down rhn-database:                                [  OK  ]
Shutting down Jabber router:                               [  OK  ]
Done.

Now I wasn’t sure if this satellite server was using the Red Hat internal Oracle instance or if I had an actual Oracle instance.  So here’s how I determined that we were using the Red Hat Oracle instance.

[root@satellite-1 redhat]# service rhn-database status
The database is running and accepting connections.

Yup, we’re using the embedded Oracle database.

Ok, I’ve got an internal Oracle instance, so I’ll use Red Hat’s instructions on how to back it up.  That said, this may not work for you.  If you suspect you have an Oracle instanceon another computer, you could try netstat -an | grep 1521 and see the Satellite Server talking to the far end on port 1521.  There’s probably a way to definitively know

[root@satellite-1 redhat]# su - oracle

-bash-3.00$ mkdir /tmp/dbBackup
-bash-3.00$ db-control backup /tmp/dbBackup
Initiating cold backup of database rhnsat…
/opt/apps/oracle/config/9.2.0/lkRHNSAT -> /tmp/dbBackup/lkRHNSAT.gz … done.
/opt/apps/oracle/config/9.2.0/spfilerhnsat.ora -> /tmp/dbBackup/spfilerhnsat.ora.gz … done.
/rhnsat/data/rhnsat/undo_02.dbf -> /tmp/dbBackup/undo_02.dbf.gz … done.
/rhnsat/data/rhnsat/users_01.dbf -> /tmp/dbBackup/users_01.dbf.gz … done.
/rhnsat/data/rhnsat/data_01.dbf -> /tmp/dbBackup/data_01.dbf.gz … done.
/rhnsat/data/rhnsat/redo_1101.log -> /tmp/dbBackup/redo_1101.log.gz … done.
/rhnsat/data/rhnsat/redo_1102.log -> /tmp/dbBackup/redo_1102.log.gz … done.
/rhnsat/data/rhnsat/control_03.ctl -> /tmp/dbBackup/control_03.ctl.gz … done.
/rhnsat/data/rhnsat/control_01.ctl -> /tmp/dbBackup/control_01.ctl.gz … done.
/rhnsat/data/rhnsat/redo_1001.log -> /tmp/dbBackup/redo_1001.log.gz … done.
/rhnsat/data/rhnsat/data_07.dbf -> /tmp/dbBackup/data_07.dbf.gz … done.
/rhnsat/data/rhnsat/data_08.dbf -> /tmp/dbBackup/data_08.dbf.gz … done.
/rhnsat/data/rhnsat/tools_01.dbf -> /tmp/dbBackup/tools_01.dbf.gz … done.
/rhnsat/data/rhnsat/control_02.ctl -> /tmp/dbBackup/control_02.ctl.gz … done.
/rhnsat/data/rhnsat/data_05.dbf -> /tmp/dbBackup/data_05.dbf.gz … done.
/rhnsat/data/rhnsat/data_04.dbf -> /tmp/dbBackup/data_04.dbf.gz … done.
/rhnsat/data/rhnsat/undo_01.dbf -> /tmp/dbBackup/undo_01.dbf.gz … done.
/rhnsat/data/rhnsat/data_06.dbf -> /tmp/dbBackup/data_06.dbf.gz … done.
/rhnsat/data/rhnsat/data_03.dbf -> /tmp/dbBackup/data_03.dbf.gz … done.
/rhnsat/data/rhnsat/data_02.dbf -> /tmp/dbBackup/data_02.dbf.gz … done.
/rhnsat/data/rhnsat/system.dbf -> /tmp/dbBackup/system.dbf.gz … done.
/rhnsat/data/rhnsat/temp_01.dbf -> /tmp/dbBackup/temp_01.dbf.gz … done.
/rhnsat/data/rhnsat/redo_1002.log -> /tmp/dbBackup/redo_1002.log.gz … done.
/rhnsat/admin/rhnsat/archive/arch_1_1.arc -> /tmp/dbBackup/arch_1_1.arc.gz … done.
Full cold backup complete.
-bash-3.00$

It took my system about 10 minutes to perform the backup.

drop out of Oracle user:

-bash-3.00$ exit
logout

start the Satellite Server back up

[root@satellite-1 redhat]# service rhn-satellite start
Starting rhn-satellite…
Starting Jabber services                                   [  OK  ]
Starting rhn-database:                                     [  OK  ]
Starting osa-dispatcher:                                   [  OK  ]
Starting RHN Taskomatic…
Starting tomcat5:                                          [  OK  ]
Starting httpd: Processing config directory: /etc/httpd/conf/rhn/
Processing config file: /etc/httpd/conf/rhn/app.conf
Processing config file: /etc/httpd/conf/rhn/applet.conf
Processing config file: /etc/httpd/conf/rhn/config-management-tool.conf
Processing config file: /etc/httpd/conf/rhn/config-management.conf
Processing config file: /etc/httpd/conf/rhn/package-push.conf
Processing config file: /etc/httpd/conf/rhn/rhn_monitoring.conf
Processing config file: /etc/httpd/conf/rhn/xmlrpc.conf
Processing config file: /etc/httpd/conf/rhn/xp.conf
[  OK  ]
2008-04-14 16:46:39 Monitoring: Debug level = 0
2008-04-14 16:46:39 Monitoring: Switches: start
2008-04-14 16:46:39 Monitoring: STARTING…
2008-04-14 16:46:39 InstallSoftwareConfig: STARTING…
2008-04-14 16:46:39 InstallSoftwareConfig: Grabbing local config info
2008-04-14 16:46:39 InstallSoftwareConfig: STARTED OK
2008-04-14 16:46:39 InstallSoftwareConfig: ============ STATUS ===============
2008-04-14 16:46:39 InstallSoftwareConfig: Last action: start
2008-04-14 16:46:39 InstallSoftwareConfig: STARTED and RUNNING
2008-04-14 16:46:39 InstallSoftwareConfig: ===================================
2008-04-14 16:46:39 GenerateNotifConfig: STARTING…
2008-04-14 16:46:40 GenerateNotifConfig: STARTED OK
2008-04-14 16:46:40 GenerateNotifConfig: ============ STATUS ===============
2008-04-14 16:46:40 GenerateNotifConfig: Last action: start
2008-04-14 16:46:40 GenerateNotifConfig: ** Can be installed for SysV startup **
2008-04-14 16:46:40 GenerateNotifConfig: Run levels: 3
2008-04-14 16:46:40 GenerateNotifConfig: Start sequence: 70
2008-04-14 16:46:40 GenerateNotifConfig: Stop sequence: 40
2008-04-14 16:46:41 GenerateNotifConfig: STARTED and RUNNING
2008-04-14 16:46:41 GenerateNotifConfig: GoGo options:
2008-04-14 16:46:41 GenerateNotifConfig: –fname=GenerateNotifConfig
2008-04-14 16:46:41 GenerateNotifConfig: –command=/opt/notification/scripts/generate-config
2008-04-14 16:46:41 GenerateNotifConfig: –user=nocpulse
2008-04-14 16:46:41 GenerateNotifConfig: –hbfile=/opt/notification/var/generate_config.log
2008-04-14 16:46:41 GenerateNotifConfig: –hbfreq=300
2008-04-14 16:46:41 GenerateNotifConfig: –hbcheck=600
2008-04-14 16:46:41 GenerateNotifConfig: ===================================
2008-04-14 16:46:42 NotifEscalator: STARTING…
2008-04-14 16:46:43 NotifEscalator: STARTED OK
2008-04-14 16:46:43 NotifEscalator: ============ STATUS ===============
2008-04-14 16:46:43 NotifEscalator: Last action: start
2008-04-14 16:46:43 NotifEscalator: ** Can be installed for SysV startup **
2008-04-14 16:46:43 NotifEscalator: Run levels: 3
2008-04-14 16:46:43 NotifEscalator: Start sequence: 70
2008-04-14 16:46:43 NotifEscalator: Stop sequence: 40
2008-04-14 16:46:45 NotifEscalator: STARTED and RUNNING
2008-04-14 16:46:45 NotifEscalator: GoGo options:
2008-04-14 16:46:45 NotifEscalator: –fname=NotifEscalator
2008-04-14 16:46:45 NotifEscalator: –command=/opt/notification/scripts/notif-escalator
2008-04-14 16:46:45 NotifEscalator: –user=nocpulse
2008-04-14 16:46:45 NotifEscalator: –hbfile=/opt/notification/var/notif-escalator.log
2008-04-14 16:46:45 NotifEscalator: –hbfreq=300
2008-04-14 16:46:45 NotifEscalator: –hbcheck=600
2008-04-14 16:46:45 NotifEscalator: ===================================
2008-04-14 16:46:47 NotifLauncher: STARTING…
2008-04-14 16:46:48 NotifLauncher: STARTED OK
2008-04-14 16:46:48 NotifLauncher: ============ STATUS ===============
2008-04-14 16:46:48 NotifLauncher: Last action: start
2008-04-14 16:46:48 NotifLauncher: ** Can be installed for SysV startup **
2008-04-14 16:46:48 NotifLauncher: Run levels: 3
2008-04-14 16:46:48 NotifLauncher: Start sequence: 71
2008-04-14 16:46:48 NotifLauncher: Stop sequence: 41
2008-04-14 16:46:49 NotifLauncher: STARTED and RUNNING
2008-04-14 16:46:49 NotifLauncher: GoGo options:
2008-04-14 16:46:49 NotifLauncher: –fname=NotifLauncher
2008-04-14 16:46:49 NotifLauncher: –command=/opt/notification/scripts/notif-launcher
2008-04-14 16:46:49 NotifLauncher: –user=nocpulse
2008-04-14 16:46:49 NotifLauncher: –hbfile=/opt/notification/var/notif-launcher.log
2008-04-14 16:46:49 NotifLauncher: –hbfreq=300
2008-04-14 16:46:49 NotifLauncher: –hbcheck=600
2008-04-14 16:46:49 NotifLauncher: ===================================
2008-04-14 16:46:51 Notifier: STARTING…
2008-04-14 16:46:52 Notifier: STARTED OK
2008-04-14 16:46:52 Notifier: ============ STATUS ===============
2008-04-14 16:46:52 Notifier: Last action: start
2008-04-14 16:46:52 Notifier: ** Can be installed for SysV startup **
2008-04-14 16:46:52 Notifier: Run levels: 3
2008-04-14 16:46:52 Notifier: Start sequence: 71
2008-04-14 16:46:52 Notifier: Stop sequence: 41
2008-04-14 16:46:53 Notifier: STARTED and RUNNING
2008-04-14 16:46:53 Notifier: GoGo options:
2008-04-14 16:46:53 Notifier: –fname=Notifier
2008-04-14 16:46:53 Notifier: –command=/opt/notification/scripts/notifier
2008-04-14 16:46:53 Notifier: –user=nocpulse
2008-04-14 16:46:53 Notifier: –hbfile=/opt/notification/var/notifier.log
2008-04-14 16:46:53 Notifier: –hbfreq=300
2008-04-14 16:46:53 Notifier: –hbcheck=600
2008-04-14 16:46:53 Notifier: ===================================
2008-04-14 16:46:54 AckProcessor: STARTING…
2008-04-14 16:46:55 AckProcessor: STARTED OK
2008-04-14 16:46:55 AckProcessor: ============ STATUS ===============
2008-04-14 16:46:55 AckProcessor: Last action: start
2008-04-14 16:46:55 AckProcessor: ** Can be installed for SysV startup **
2008-04-14 16:46:55 AckProcessor: Run levels: 3
2008-04-14 16:46:55 AckProcessor: Start sequence: 71
2008-04-14 16:46:55 AckProcessor: Stop sequence: 41
2008-04-14 16:46:56 AckProcessor: STARTED and RUNNING
2008-04-14 16:46:56 AckProcessor: GoGo options:
2008-04-14 16:46:56 AckProcessor: –fname=AckProcessor
2008-04-14 16:46:56 AckProcessor: –command=/opt/notification/scripts/ack-processor
2008-04-14 16:46:56 AckProcessor: –user=nocpulse
2008-04-14 16:46:56 AckProcessor: –hbfile=/var/tmp/ack_handler.log
2008-04-14 16:46:56 AckProcessor: –hbfreq=300
2008-04-14 16:46:56 AckProcessor: –hbcheck=600
2008-04-14 16:46:56 AckProcessor: ===================================
2008-04-14 16:46:58 TSDBLocalQueue: STARTING…
2008-04-14 16:46:59 TSDBLocalQueue: STARTED OK
2008-04-14 16:46:59 TSDBLocalQueue: ============ STATUS ===============
2008-04-14 16:46:59 TSDBLocalQueue: Last action: start
2008-04-14 16:46:59 TSDBLocalQueue: ** Can be installed for SysV startup **
2008-04-14 16:46:59 TSDBLocalQueue: Run levels: 3
2008-04-14 16:46:59 TSDBLocalQueue: Start sequence: 81
2008-04-14 16:46:59 TSDBLocalQueue: Stop sequence: 30
2008-04-14 16:47:00 TSDBLocalQueue: STARTED and RUNNING
2008-04-14 16:47:00 TSDBLocalQueue: GoGo options:
2008-04-14 16:47:00 TSDBLocalQueue: –fname=TSDBLocalQueue
2008-04-14 16:47:00 TSDBLocalQueue: –command=/home/nocpulse/bin/TSDBLocalQueue.pl
2008-04-14 16:47:00 TSDBLocalQueue: –user=apache
2008-04-14 16:47:00 TSDBLocalQueue: ===================================
2008-04-14 16:47:01 Monitoring: STARTED OK
2008-04-14 16:47:01 Monitoring: ============ STATUS ===============
2008-04-14 16:47:01 Monitoring:    ++++ Monitoring backend functionality is enabled
2008-04-14 16:47:01 Monitoring:    —- Monitoring scout functionality is disabled
2008-04-14 16:47:01 Monitoring: Last action: start
2008-04-14 16:47:01 Monitoring: ** Installed for SysV startup **
2008-04-14 16:47:01 Monitoring: STARTED and RUNNING
2008-04-14 16:47:01 Monitoring: ===================================
Done.
[root@satellite-1 redhat]#

Red Hat recommends tar’ing, gzipping, and moving the file to another server, but in this case I’m not being that cautious.  If this change doesn’t work, I’ll immediately start rolling the changes back and I don’t expect it to kill the box.

Blow that channel away

Finally, it’s time to annihilate the channel.  First, run the satrm.py script to list the subscribed channels.

[root@satellite-1 redhat]# cd /usr/share/rhn
[root@satellite-1 rhn]# PYTHONPATH=/usr/share/rhn/ python satellite_tools/satrm.py -l
rhel-i386-server-5
rhel-x86_64-server-5
redhat-advanced-server-i386

Now, remove the channel.

[root@satellite-1 rhn]# PYTHONPATH=/usr/share/rhn/ python satellite_tools/satrm.py –channel=redhat-advanced-server-i386

Make sure everything worked and you’re still up and running.

Check your work.

[root@satellite-1 rhn]# PYTHONPATH=/usr/share/rhn/ python satellite_tools/satrm.py -l
rhel-i386-server-5
rhel-x86_64-server-5

and check your satellite-sync results.

[root@satellite-1 rhn]# satellite-sync –list-channels
16:51:13 Red Hat Network Satellite - live synchronization
16:51:13    url: https://satellite.rhn.redhat.com
16:51:13    debug/output level: 1
16:51:14    db:  rhnsat/<password>@rhnsat
16:51:14
16:51:14 Retrieving / parsing channel-families data
16:51:14 channel-families data complete
Pushing scout configs to all monitoring scouts
16:51:22
16:51:22 Retrieving / parsing channel data
16:51:38    p = previously imported/synced channel
16:51:38    . = channel not yet imported/synced
16:51:38    base-channels:
16:51:38       . redhat-advanced-server-i386              3707
16:51:38       . redhat-ent-linux-i386-es-2.1             3198
16:51:38       . redhat-linux-alpha-6.2                   1184
16:51:38       . redhat-linux-alpha-7.0                   1412
16:51:38       . redhat-linux-alpha-7.1                   1487
16:51:38       . redhat-linux-as-2.1-IPF                  3157
16:51:38       . redhat-linux-ee-i386-6.2                   13
16:51:38       . redhat-linux-i386-6.2                    1357
16:51:38       . redhat-linux-i386-7.0                    1615
16:51:38       . redhat-linux-i386-7.1                    2046
16:51:38       . redhat-linux-i386-7.2                    2338
16:51:38       . redhat-linux-i386-7.3                    2481
16:51:38       . redhat-linux-i386-8.0                    2316
16:51:38       . redhat-linux-i386-9                      1864
16:51:38       . redhat-linux-iSeries-7.1                 1135
16:51:38       . redhat-linux-ia64-7.1                    1392
16:51:38       . redhat-linux-ia64-7.2                    1886
16:51:38       . redhat-linux-pSeries-7.1                 1135
16:51:38       . redhat-linux-s390-7.2                    1447
16:51:38       . redhat-linux-s390x-7.1                    977
16:51:38       . redhat-linux-severn-i386-9.0.93          1455
16:51:38       . redhat-linux-sparc-6.2                   1201
16:51:38       . rhel-i386-as-3                           4910
16:51:39       . rhel-i386-as-4                           5235
16:51:39       . rhel-i386-es-3                           4929
16:51:39       . rhel-i386-es-4                           5235
16:51:39       p rhel-i386-server-5                       3299
16:51:39       . rhel-ia64-as-3                           5147
16:51:39       . rhel-ia64-as-4                           5553
16:51:39       . rhel-ia64-es-3                           4683
16:51:39       . rhel-ia64-es-4                           5552
16:51:39       . rhel-ia64-server-5                       3389
16:51:39       . rhel-ppc-as-3                            5251
16:51:39       . rhel-ppc-as-4                            5884
16:51:39       . rhel-ppc-server-5                        4265
16:51:39       . rhel-x86_64-as-3                         5403
16:51:39       . rhel-x86_64-as-4                         5993
16:51:39       . rhel-x86_64-es-3                         4907
16:51:39       . rhel-x86_64-es-4                         5993
16:51:39       p rhel-x86_64-server-5                     4324
16:51:39       . severn-beta2-i386                        1466
16:51:39    redhat-advanced-server-i386:
16:51:39       . rhn-tools-rhel-2.1-as-i386               1524
16:51:39    redhat-ent-linux-i386-es-2.1:
16:51:39       . rhn-tools-rhel-2.1-es-i386               1524
16:51:39    redhat-linux-alpha-6.2:
16:51:39       . redhat-powertools-alpha-6.2               532
16:51:39    redhat-linux-alpha-7.0:
16:51:39       . redhat-powertools-alpha-7.0               461
16:51:39    redhat-linux-alpha-7.1:
16:51:39       . redhat-powertools-alpha-7.1               459
16:51:39    redhat-linux-as-2.1-IPF:
16:51:39       . rhn-tools-rhel-2.1-as-ia64               1192
16:51:39    redhat-linux-i386-6.2:
16:51:40       . redhat-powertools-i386-6.2                584
16:51:40    redhat-linux-i386-7.0:
16:51:40       . redhat-powertools-i386-7.0                520
16:51:40    redhat-linux-i386-7.1:
16:51:40       . redhat-powertools-i386-7.1                541
16:51:40    redhat-linux-i386-7.2:
16:51:40       . k12ltsp-i386-7.2                           63
16:51:40    redhat-linux-i386-7.3:
16:51:40       . redhat-gcc3.1-i386-7.3                     12
16:51:40       . education-k12ltsp-i386-7.3                 82
16:51:40       . education-general-i386-7.3                  7
16:51:40    redhat-linux-i386-8.0:
16:51:40       . education-k12ltsp-i386-8.0                122
16:51:40    redhat-linux-i386-9:
16:51:40       . rhn-tools-redhat-linux-i386-9            1514
16:51:40       . education-k12ltsp-i386-9                  123
16:51:40    redhat-linux-severn-i386-9.0.93:
16:51:40       . redhat-linux-severn-i386-9.0.93-updates  2388
16:51:40    redhat-linux-sparc-6.2:
16:51:40       . redhat-powertools-sparc-6.2               480
16:51:40    rhel-i386-as-3:
16:51:40       . rhel-i386-as-3-fastrack                    56
16:51:40       . rhel-3-as-i386-rhds-2                      27
16:51:40       . rhel-i386-as-3-cluster                     33
16:51:40       . rhel-i386-as-3-hwcert                       9
16:51:40       . rhn-tools-rhel-3-as-i386                 1545
16:51:40       . rhel-i386-as-3-devsuite                     6
16:51:40       . rhel-i386-as-3-extras                     150
16:51:40    rhel-i386-as-4:
16:51:40       . rhel-i386-as-4-fastrack                   208
16:51:40       . rhel-4-as-i386-rhds-2.1                    15
16:51:40       . rhel-i386-as-4-hwcert                      18
16:51:40       . rhel-i386-as-4-sdk                          1
16:51:40       . rhel-4-as-i386-rhds-3                     145
16:51:40       . rhel-i386-as-4-extras                     218
16:51:40       . rhel-i386-as-4-cluster                    345
16:51:40       . rhn-tools-rhel-4-as-i386                 1274
16:51:40    rhel-i386-es-3:
16:51:40       . rhel-i386-es-3-extras                     150
16:51:40       . rhel-3-es-i386-rhds-2                      27
16:51:40       . rhn-tools-rhel-3-es-i386                 1545
16:51:40       . rhel-i386-es-3-fastrack                    56
16:51:40       . rhel-i386-es-3-devsuite                     6
16:51:40       . rhel-i386-es-3-cluster                     33
16:51:40    rhel-i386-es-4:
16:51:40       . rhel-4-es-i386-rhds-3                     145
16:51:40       . rhel-i386-es-4-sdk                          1
16:51:40       . rhn-tools-rhel-4-es-i386                 1274
16:51:40       . rhel-i386-es-4-extras                     218
16:51:40       . rhel-i386-es-4-fastrack                   208
16:51:40       . rhel-4-es-i386-rhds-2.1                    15
16:51:40       . rhel-i386-es-4-cluster                    345
16:51:40    rhel-i386-server-5:
16:51:40       . rhel-i386-server-supplementary-5          183
16:51:40       . rhel-i386-server-cluster-storage-5        116
16:51:40       . rhel-i386-server-productivity-5           460
16:51:40       . rhel-i386-server-vt-5                      71
16:51:40       . rhn-tools-rhel-i386-server-5              371
16:51:40       . rhel-i386-server-hts-5                      7
16:51:40       . rhel-i386-server-cluster-5                 73
16:51:40       . rhel-i386-server-fastrack-5               170
16:51:40    rhel-ia64-as-3:
16:51:40       . rhel-ia64-as-3-extras                      92
16:51:40       . rhel-ia64-as-3-cluster                     28
16:51:40       . rhel-ia64-as-3-devsuite                     3
16:51:40       . rhel-3-as-ia64-rhds-2                      27
16:51:40       . rhel-ia64-as-3-hwcert                       9
16:51:40       . rhn-tools-rhel-3-as-ia64                 1213
16:51:40       . rhel-ia64-as-3-fastrack                    61
16:51:40    rhel-ia64-as-4:
16:51:40       . rhel-4-as-ia64-rhds-3                     145
16:51:40       . rhel-4-as-ia64-rhds-2.1                    15
16:51:40       . rhn-tools-rhel-4-as-ia64                 1214
16:51:40       . rhel-ia64-as-4-hwcert                      18
16:51:40       . rhel-ia64-as-4-extras                      90
16:51:40       . rhel-ia64-as-4-fastrack                   228
16:51:40       . rhel-ia64-as-4-cluster                    229
16:51:40    rhel-ia64-es-3:
16:51:40       . rhel-ia64-es-3-extras                      92
16:51:40       . rhel-ia64-es-3-devsuite                     4
16:51:40       . rhel-3-es-ia64-rhds-2                      27
16:51:40       . rhel-ia64-es-3-cluster                     28
16:51:40       . rhn-tools-rhel-3-es-ia64                 1213
16:51:40       . rhel-ia64-es-3-fastrack                    61
16:51:40    rhel-ia64-es-4:
16:51:40       . rhel-4-es-ia64-rhds-2.1                    15
16:51:40       . rhel-ia64-es-4-extras                      90
16:51:40       . rhel-ia64-es-4-cluster                    229
16:51:40       . rhel-ia64-es-4-fastrack                   228
16:51:40       . rhn-tools-rhel-4-es-ia64                 1214
16:51:40       . rhel-4-es-ia64-rhds-3                     145
16:51:40    rhel-ia64-server-5:
16:51:40       . rhel-ia64-server-cluster-storage-5         95
16:51:40       . rhel-ia64-server-cluster-5                 73
16:51:40       . rhel-ia64-server-vt-5                      70
16:51:40       . rhel-ia64-server-supplementary-5           57
16:51:40       . rhel-ia64-server-fastrack-5               170
16:51:40       . rhn-tools-rhel-ia64-server-5              371
16:51:40       . rhel-ia64-server-hts-5                      7
16:51:40    rhel-ppc-as-3:
16:51:40       . rhel-ppc-as-3-fastrack                     61
16:51:40       . rhel-ppc-as-3-hwcert                       16
16:51:40       . rhel-3-as-ppc-rhds-2                       25
16:51:40       . rhel-ppc-as-3-extras                       75
16:51:40    rhel-ppc-as-4:
16:51:40       . rhel-ppc-as-4-cluster                      82
16:51:40       . rhn-tools-rhel-4-as-ppc                     0
16:51:40       . rhel-ppc-as-4-extras                       95
16:51:40       . rhel-ppc-as-4-hwcert                       26
16:51:40       . rhel-4-as-ppc-rhds-2.1                     15
16:51:40       . rhel-ppc-as-4-fastrack                    228
16:51:40       . rhel-4-as-ppc-rhds-3                      151
16:51:40    rhel-ppc-server-5:
16:51:40       . rhel-ppc-server-hts-5                       7
16:51:40       . rhel-ppc-server-supplementary-5            93
16:51:40       . rhel-ppc-server-fastrack-5                197
16:51:40       . rhn-tools-rhel-ppc-server-5                13
16:51:40    rhel-x86_64-as-3:
16:51:40       . rhel-x86_64-as-3-fastrack                  60
16:51:40       . rhel-x86_64-as-3-hwcert                     9
16:51:40       . rhn-tools-rhel-3-as-x86_64               1424
16:51:40       . rhel-x86_64-as-3-devsuite                   2
16:51:40       . rhel-x86_64-as-3-cluster                   28
16:51:40       . rhel-x86_64-as-3-extras                    85
16:51:40    rhel-x86_64-as-4:
16:51:40       . rhel-x86_64-as-4-fastrack                 231
16:51:40       . rhel-x86_64-as-4-extras                   160
16:51:40       . rhel-x86_64-as-4-sdk                        1
16:51:40       . rhn-tools-rhel-4-as-x86_64               1274
16:51:40       . rhel-x86_64-as-4-cluster                  329
16:51:40       . rhel-4-as-x86_64-rhds-3                   145
16:51:40       . rhel-4-as-x86_64-rhds-2.1                  15
16:51:40       . rhel-x86_64-as-4-hwcert                    18
16:51:40    rhel-x86_64-es-3:
16:51:40       . rhel-x86_64-es-3-fastrack                  60
16:51:40       . rhel-x86_64-es-3-cluster                   28
16:51:40       . rhn-tools-rhel-3-es-x86_64               1424
16:51:40       . rhel-x86_64-es-3-extras                    85
16:51:40       . rhel-x86_64-es-3-devsuite                   4
16:51:40    rhel-x86_64-es-4:
16:51:40       . rhel-4-es-x86_64-rhds-2.1                  15
16:51:40       . rhel-x86_64-es-4-extras                   160
16:51:40       . rhel-x86_64-es-4-fastrack                 231
16:51:40       . rhel-x86_64-es-4-cluster                  329
16:51:40       . rhel-4-es-x86_64-rhds-3                   145
16:51:40       . rhn-tools-rhel-4-es-x86_64               1274
16:51:40       . rhel-x86_64-es-4-sdk                        1
16:51:40    rhel-x86_64-server-5:
16:51:40       . rhel-x86_64-server-fastrack-5             201
16:51:40       . rhel-x86_64-server-hts-5                    7
16:51:40       . rhel-x86_64-server-vt-5                    81
16:51:40       . rhel-x86_64-server-cluster-5               73
16:51:40       . rhn-tools-rhel-x86_64-server-5            371
16:51:40       . rhel-x86_64-server-productivity-5         504
16:51:40       . rhel-x86_64-server-supplementary-5        232
16:51:40       . rhel-x86_64-server-cluster-storage-5       95
16:51:40    severn-beta2-i386:
16:51:40       . severn-beta2-i386-updates                1878
16:51:40
Import complete:
Begin time: Mon Apr 14 16:51:13 2008
End time:   Mon Apr 14 16:51:40 2008
Elapsed:    0 hours, 0 minutes, 26 seconds

[root@satellite-1 rhn]#

Finally, go into your web interface and poke around just to make sure you didn’t break anything.

Congratulations, you’ve just swept up some virtual dust.  Slap yourself on the back, tell the boss you’re awesome and go get a cup of joe.

Vista’s single redeeming feature

Tuesday, April 15th, 2008

Vista has a feature that bugs you every single time you ask for an escalated action to occur. It’s called User Access Control. Ars Technica revealed, in this article, that in fact Microsoft designed it specifically for two purposes a) to help prevent damage to the system and annoy the user and b) to urge developers to stop running all their code as a super-user.

If Vista wasn’t such a bloated disgusting piece of crap and XP wasn’t so damn stable, supportable, affordable, eminently usable and hackable then perhaps this would be a great thing. Because this could be the end of malware. It would take time, but developers will get tired of users complaining about all the stupid pop-ups, so they’d start developing in a more secure manner. Then the only things that would be popping up these UAC prompts would be serious geek tools and malware.

Gizmodo covered this feature here, but the commenter’s don’t seem very convinced.

Ars Technica launches a mid-range focused forum

Monday, April 14th, 2008

Dell is funding one of my my favorite websites, Ars Technica, so that they can launch a new forum that will focus on the server room.  I’ve always liked Ars but they were a bit more engineering and gaming focused than I ever was.  They had a linux forum, but it was mostly guys just playing around with small boxes for projects.

Hopefully this launch will help bring more people up to speed on what many businesses in America really need, good system administration, network design, open discussion, etc.  In fact, it may be one of the initiatives that address my concerns about the future of IT in America.  I just hope that Dell doesn’t overwhelm the environment that Ars has put together.

I’ve always liked forums that award titles for participation.  Ars did this in the past but it was just based off of your number of posts.  But it did also mention how long the users had been a member of the forums.  The number of posts thing used to really upset a roommate of mine as he thought seniority or GPA or IQ or some other metric should be how everyone is measured.  But then again, he only worked for about 5 months of the year and never seemed to get along with anyone.

I tend to prefer forums more like HPs ITRC where you are awarded points by other members based on how useful your participation was.  Slashdot, perlmonks and kuro5hin have the same sort of structure.  I prefer these arrangements because they allow you to gauge how likely a person is to have the right answer to your questions.

Expert-exchange had something similar, but now they’ve taken years of good natured people exchanging information and now force people to pay in order to look through the results.  Needless to say, I’m pretty disappointed with their decision.  It’s only abated by the fact that if you click on the “cached” web page in your google results, you can still view the information.

Anyhow, hopefully Ars and Dell will have a happy engagement/marriage/partnership/whatever.

Another strike against Microsoft, but no credit for the few things they do well

Saturday, April 12th, 2008

Gartner analysts recently spoke in Las Vegas at a conference and made some valid points.

But I think some of the advice/opinions are a bit contradictory. They assert that many users today are looking for a version of Windows that will run on “low priced and low power hardware” but then they predict that the next road Redmond should consider is virtualization. Specifically they recommend that a hypervisor be implemented.

Now I am a fan of virtualization in some markets, but on the home PC, hell no. I have a hard enough time trying to help people understand their computers now. People have been able to dual-boot for 7 years now and it’s still an unnecessary pain for most users. Now, I fully understand that dual-booting isn’t the same things as a hypervisor. Dual-boot is a fork in the logic. You boot and at the point of boot you say, I want to run Ubuntu or I want to run XP. A Hypervisor allows you to possibly run two operating systems at the same time. Wikipedia explains it pretty well here, but basically it’s products like Parallels.

If you’re going to bother using one operating system, why not just learn to use that OS to the best of it’s abilities, accept it’s limitations and move on. There are a few, highly unique positions that are different, like graphic designers who spend all day on OSX but may be forced to do some communication in Microsoft Office. Here’s my thing about that. If hardware is so cheap, why not just buy this guy another low-end system that just does his Office work? You’ve already paid the most expensive part, the licensing of XP, anti-virus stuff, the support staff to make it all work for him. What is $200 more of hardware? Yes, you can’t cut and paste from OSX to XP, but honestly that never really seems to work very well half of the time. To make the argument even sillier, Parallels runs about $80 for each instance. So 40% of that $200 is already defrayed.

Now the Gartner analysts definitely have a point when they criticize the size of Microsoft’s codebase. Vista was supposed to be a huge improvement, but it is a fact that many of those were eventually thrown out because the project was falling years behind schedule. The only way they even launched Vista was to drop back to an earlier codebase, Server 2003, and then attempt to merge their new features into it. But we all know Vista sucks, not a big surprise there.

I actually don’t think they’re giving Windows enough credit for how good Windows Mobile has become for enterprise users. I’ll post more about it in the future. Yes, I think the iPhone is nice, but it’s riding on a slow ass, over-burdened network. And while the tap screen is pretty and dynamically useful for some interfaces, if I just want to tap out a text message or an email to a co-worker I really prefer an actual keypad.

Plus, Windows Mobile’s over the air interface into the calendar, global address book and email is an absolute god-send for IT workers. The only problem with it is that it’s not stupid enough to lure away crackberry users. But crackberry users aren’t lured to the iPhone either. Honestly, the crackberry is essentially mobile email for marketing and HR types who only understand email. “Synchronization of calendars, what is this syncopated god of time you speak of?”

Being business analysts they emplored Microsoft to add MORE modularity to Windows. I think this is an awful idea. XP home and XP pro was enough modularity. Beyond that they’re really confusing the customers and the idiots who do desktop support. The last thing we need is people ordering Windows like they order Coffee at the local starbucks. “Yes, I’d like Vista Basic with Office Lite, Decaf Soy, no Whip”

And finally, they’re really giving no credit whatsoever to the extremely profitable plan that Windows used to acquire a ton of game design companies and having them work on releases for XP, Xbox and Xbox360. Now, it was a really mean acquisition, but it did work.

Anyhow, I for one will probably never run Vista for an extended period. No reason to really. XP suites my business needs and in the meanwhile Ubuntu has finally produced a quite nice linux desktop that is actually useful. I plan on running it on the side for a year or so, learning it’s in and outs and then migrating off of XP and Microsoft desktops for anything but games for good.

On a side note, thanks to Steve White for pointing out the Gartner article.

Solaris Zones and visudo problems: visudo: /usr/local/etc/sudoers: Read-only file system

Thursday, April 10th, 2008

A few weeks ago I ran into some problems working on a Solaris system. I knew there were zones on it, but the error that Solaris kicked to me, really wasn’t particularly helpful. I certainly knew that the filesystem was writable. Anyhow, for our current setup, sudoers modifications must be made from the global zone. I’m fairly sure I could institute a local sudoers, but since I’m new in my position, I didn’t really want to go causing waves.

ERROR:

# /usr/local/sbin/visudo
visudo: /usr/local/etc/sudoers: Read-only file system
# hostname
appserver.sierraleone.appserver-devapp1

SITUATION:

I’m in a Solaris zone. Modifications must be made in the Global Zone
# /usr/sbin/zoneadm list
global
apache
macau
ireland
rhodesia
uruguay
sierraleone
kenya
testing
westernsahara
algeria
canada
newguinea
oman
haiti
vietnam
antarctica
liberia
# /bin/grep benicio /etc/passwd
# /bin/hostname

appserver-devapp1

visudo works just fine in the global zone. I just had to log out of the individual container.
There are security ramifications to how I did this. I happened to be adding a developer to a box where he already had access to many of the systems.

I think there could be two ways to handle this. I could setup individualized local sudoers in each container, but that does get a bit cumbersome. The only other thing I can think of is to come up with some sort of username/usergroup security hierarchy so that the end users would use different users in different zone. That is equally cumbersome and worse it puts pressure on the end users to modify their behaviour due to a design problem.

I’ll do some research and try to see if Sun has an idea on how best to manage this or if a smarter admin has already posted a tutorial about this.

Drop, don’t reject possibly malicious inbound connections

Wednesday, April 9th, 2008

Brock, of Bash Cures Cancer, brings up an good networking practive that I’ve never touched on here. It is pretty standard fare for firewall guys, but it’s still not standard for ever OS out of the box. So if you’re running a linux or BSD firewall you might check out how you’ve got it set up.

Dropping the traffic instead of rejecting it costs the spammers/hackers more resources and saves you a tiny bit too. Here’s the original post.

Humor: Know your System Administrator

Monday, March 17th, 2008

I laughed out loud for 5 minutes reading through a joke, called Know Your Sysadmin, harvested from old email archives.  It goes on about all the different prototypical administrators through the eons.  Here’s my favorite entry:

SITUATION:

Stupid user questions

TECHNICAL THUG:

Answers question in hex, binary, postfix, and/or French until user gives up and goes away.

ADMINISTRATIVE FASCIST:

Locks user’s account until user can present documentation demonstrating their qualification to use the machine.

MANIAC:

# cat > > ~luser/.cshrc alias vi ‘rm \!*;unalias vi;grep -v BoZo ~/.cshrc > ~/.z; mv -f ~/.z ~/.cshrc’ ^D

IDIOT:

Answers all questions to best of his knowledge. Recruits user to system administration team.

Kudos to nixCraft for linking to it!