Errata/package handling in satellite server with cloned channels

Latest response

Hi!

I have the following channel structure:

RHN synchronized channels (Red Hat Enterprise Linux (v. 6 for 64-bit x86_64) and child channels) cloned to engineering (sandbox).

engineering is cloned to development

development is cloned to test

test is cloned to preprod

preprod is cloned to production

I have never grasped errata handling in satellite fully. How do you clone/add/copy errata and new packages from one cloned channel to the next stage in the hierarchy? The errata cloning / publishing is very slow and cumbersome, what if I need to add 50 errata?

 

Best regards,

Erling

Responses

Hi Erling,

It doesn't look like anyone has been able to help you out with this one yet, so I'm going to reach out so some folks for you. Stay tuned.

A starting point is using clone-by-date.  This allows you to skip the individual approval process for errata.  This does mean you need to do this on a date basis, so you will be pulling everything into the engineering channel from the RHN base channel from then.  Once you start pushing up to the other clones, it's not such a big deal, you can use the engineering source. 

You also need to make sure that there aren't any updates pushed during your testing process, e.g. engineering is frozen until *after* the clone to dev.  Otherwise you run the risk of adding untested errata.

spacewalk-clone-by-date --username=demo-admin -l rhel-x86_64-server-6 ENG-rhel-x86_64-server-6 -d `date -d today +%Y-%m-%d`
spacewalk-clone-by-date --username=demo-admin -l ENG-rhel-x86_64-server-6 DEV-rhel-x86_64-server-6 -d `date -d 'next week' +%Y-%m-%d`

Change to your username and I've made up the target channel names.  Make sure to change the date strings too :).  You can use any date in the past, e.g. -d 2011-01-13 should get you everything as of the release of RHEL 5.6.

If you have a large number of channels and child channels, look into using a config file.  Here's a sample:

{
"username":"demo-admin",
"assumeyes":true,
"blacklist": {
              },
"removelist": {
              },
"channels":[
             {
                "rhel-x86_64-server-6":"dev-rhel-x86_64-server-6",
                "jbappplatform-5-x86_64-server-6-rpm":"dev-jbappplatform-5-x86_64-server-6-rpm",
                "jbappplatform-6-x86_64-server-6-rpm":"dev-jbappplatform-6-x86_64-server-6-rpm",
                "rhel-x86_64-rhev-agent-6-server":"dev-rhel-x86_64-rhev-agent-6-server",
                "rhel-x86_64-server-6-rhevh":"dev-rhel-x86_64-server-6-rhevh",
                "rhel-x86_64-server-6-rhevm-3":"dev-rhel-x86_64-server-6-rhevm-3",
                "rhel-x86_64-server-6-rhevm-3.1":"dev-rhel-x86_64-server-6-rhevm-3.1",
                "rhel-x86_64-server-ha-6":"dev-rhel-x86_64-server-ha-6",
                "rhel-x86_64-server-optional-6":"dev-rhel-x86_64-server-optional-6",
                "rhel-x86_64-server-rs-6":"dev-rhel-x86_64-server-rs-6",
                "rhel-x86_64-server-supplementary-6":"dev-rhel-x86_64-server-supplementary-6",
                "rhn-tools-rhel-x86_64-server-6":"dev-rhn-tools-rhel-x86_64-server-6"
             }
           ]
}

Great post, Matt. Thanks!

Hi!

Thanks for your reply! I have decided to clone new channels for every new
"release" we create quarterly. Errata / packages we decide to add to a release
are simply added with the Satellite web interface by clicking "manage software channels" -> choosing the desired channel -> Errata -> Clone -> Clone Errata. Packages are added in a similar fashion.

Best regards,

Erling