Files
cheatsheets/satellite6-ubuntu-repo-cheatsheet.md

9.5 KiB

Red Hat Satellite 6: Ubuntu Repository Integration Cheat Sheet

Prerequisites

System Requirements

  • Red Hat Satellite 6.x installed and configured
  • Administrative access to Satellite server
  • Network connectivity to Ubuntu repositories
  • Sufficient storage space for repository synchronization

Required Packages

# Ensure these packages are installed on Satellite server
yum install -y pulp-deb-plugins
katello-service restart

Configuration Steps

1. Enable Ubuntu Content Support

Via Web UI

  1. Navigate to AdministerSettingsContent
  2. Set Restrict Composite Content View to No
  3. Enable Unprotected Repository if needed

Via Hammer CLI

# Configure content settings
hammer settings set --name restrict_composite_content_view --value false

2. Create Ubuntu Product

Via Web UI

  1. ContentProductsCreate Product
  2. Fill in details:
    • Name: Ubuntu 20.04 LTS
    • Label: ubuntu_2004_lts
    • Description: Ubuntu 20.04 LTS repositories

Via Hammer CLI

# Create Ubuntu product
hammer product create \
  --name "Ubuntu 20.04 LTS" \
  --label "ubuntu_2004_lts" \
  --description "Ubuntu 20.04 LTS repositories" \
  --organization "Default Organization"

3. Add Ubuntu Repositories

Main Ubuntu Repository

# Add main Ubuntu repository
hammer repository create \
  --name "Ubuntu 20.04 Main" \
  --label "ubuntu_2004_main" \
  --product "Ubuntu 20.04 LTS" \
  --content-type "deb" \
  --url "http://archive.ubuntu.com/ubuntu" \
  --deb-releases "focal" \
  --deb-components "main,restricted" \
  --deb-architectures "amd64" \
  --organization "Default Organization"

Universe Repository

# Add Universe repository
hammer repository create \
  --name "Ubuntu 20.04 Universe" \
  --label "ubuntu_2004_universe" \
  --product "Ubuntu 20.04 LTS" \
  --content-type "deb" \
  --url "http://archive.ubuntu.com/ubuntu" \
  --deb-releases "focal" \
  --deb-components "universe" \
  --deb-architectures "amd64" \
  --organization "Default Organization"

Security Updates

# Add Security repository
hammer repository create \
  --name "Ubuntu 20.04 Security" \
  --label "ubuntu_2004_security" \
  --product "Ubuntu 20.04 LTS" \
  --content-type "deb" \
  --url "http://security.ubuntu.com/ubuntu" \
  --deb-releases "focal-security" \
  --deb-components "main,restricted,universe,multiverse" \
  --deb-architectures "amd64" \
  --organization "Default Organization"

Updates Repository

# Add Updates repository
hammer repository create \
  --name "Ubuntu 20.04 Updates" \
  --label "ubuntu_2004_updates" \
  --product "Ubuntu 20.04 LTS" \
  --content-type "deb" \
  --url "http://archive.ubuntu.com/ubuntu" \
  --deb-releases "focal-updates" \
  --deb-components "main,restricted,universe,multiverse" \
  --deb-architectures "amd64" \
  --organization "Default Organization"

4. Synchronize Repositories

Immediate Synchronization

# Synchronize specific repository
hammer repository synchronize \
  --name "Ubuntu 20.04 Main" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

# Synchronize all repositories in product
hammer product synchronize \
  --name "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

Schedule Synchronization

# Create sync plan
hammer sync-plan create \
  --name "Ubuntu Daily Sync" \
  --description "Daily Ubuntu repository sync" \
  --interval "daily" \
  --sync-date "2024-01-01 02:00:00" \
  --organization "Default Organization"

# Add product to sync plan
hammer product set-sync-plan \
  --name "Ubuntu 20.04 LTS" \
  --sync-plan "Ubuntu Daily Sync" \
  --organization "Default Organization"

5. Create Content View

Via Hammer CLI

# Create content view
hammer content-view create \
  --name "Ubuntu 20.04 CV" \
  --description "Ubuntu 20.04 LTS Content View" \
  --organization "Default Organization"

# Add repositories to content view
hammer content-view add-repository \
  --name "Ubuntu 20.04 CV" \
  --repository "Ubuntu 20.04 Main" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

hammer content-view add-repository \
  --name "Ubuntu 20.04 CV" \
  --repository "Ubuntu 20.04 Universe" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

hammer content-view add-repository \
  --name "Ubuntu 20.04 CV" \
  --repository "Ubuntu 20.04 Security" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

hammer content-view add-repository \
  --name "Ubuntu 20.04 CV" \
  --repository "Ubuntu 20.04 Updates" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

Publish Content View

# Publish content view
hammer content-view publish \
  --name "Ubuntu 20.04 CV" \
  --description "Initial Ubuntu 20.04 publication" \
  --organization "Default Organization"

6. Create Activation Key

# Create activation key
hammer activation-key create \
  --name "ubuntu_2004_key" \
  --description "Ubuntu 20.04 LTS Activation Key" \
  --lifecycle-environment "Library" \
  --content-view "Ubuntu 20.04 CV" \
  --organization "Default Organization"

# Add subscriptions to activation key
hammer activation-key add-subscription \
  --name "ubuntu_2004_key" \
  --subscription "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

Client Configuration

1. Install Katello Agent on Ubuntu Client

# Download and install katello-ca-consumer
wget https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
alien -i katello-ca-consumer-latest.noarch.rpm

# Register with Satellite
subscription-manager register \
  --org="Default_Organization" \
  --activationkey="ubuntu_2004_key" \
  --serverurl=https://satellite.example.com:443/rhsm \
  --baseurl=https://satellite.example.com/pulp/repos

2. Configure APT Sources

# Create Satellite sources list
cat > /etc/apt/sources.list.d/satellite.list << 'EOF'
deb https://satellite.example.com/pulp/deb/Default_Organization/Library/Ubuntu_20_04_CV/focal main restricted
deb https://satellite.example.com/pulp/deb/Default_Organization/Library/Ubuntu_20_04_CV/focal universe
deb https://satellite.example.com/pulp/deb/Default_Organization/Library/Ubuntu_20_04_CV/focal-security main restricted universe multiverse
deb https://satellite.example.com/pulp/deb/Default_Organization/Library/Ubuntu_20_04_CV/focal-updates main restricted universe multiverse
EOF

# Update package cache
apt update

Monitoring and Maintenance

Check Synchronization Status

# List all repositories with sync status
hammer repository list \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

# Check specific repository sync status
hammer repository info \
  --name "Ubuntu 20.04 Main" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

View Sync History

# Show sync history
hammer task list \
  --search "label = Actions::Katello::Repository::Sync" \
  --organization "Default Organization"

Monitor Storage Usage

# Check repository sizes
hammer repository list \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization" \
  --fields "Name,Size"

Troubleshooting

Common Issues and Solutions

Repository Sync Failures

# Check sync task details
hammer task info --id TASK_ID

# Retry failed sync
hammer repository synchronize \
  --name "Ubuntu 20.04 Main" \
  --product "Ubuntu 20.04 LTS" \
  --organization "Default Organization"

GPG Key Issues

# Import Ubuntu GPG keys
hammer gpg create \
  --key "$(curl -s https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920D1991BC93C)" \
  --name "Ubuntu Archive Automatic Signing Key" \
  --organization "Default Organization"

Client Registration Issues

# Clean client registration
subscription-manager clean
rm -rf /etc/pki/consumer/
subscription-manager register --org="Default_Organization" --activationkey="ubuntu_2004_key"

Log Files

# Satellite server logs
tail -f /var/log/foreman/production.log
tail -f /var/log/messages

# Pulp logs
tail -f /var/log/httpd/pulp_access.log
tail -f /var/log/httpd/pulp_error.log

Best Practices

Security

  • Use HTTPS for all repository URLs
  • Regularly update GPG keys
  • Implement proper access controls
  • Monitor for security updates

Performance

  • Schedule syncs during off-peak hours
  • Use local mirrors when possible
  • Monitor disk space regularly
  • Configure appropriate retention policies

Maintenance

  • Regularly publish new content view versions
  • Clean up old content view versions
  • Monitor sync failures and resolve promptly
  • Keep activation keys organized and documented

Quick Reference Commands

# List all products
hammer product list --organization "Default Organization"

# List repositories in a product
hammer repository list --product "Ubuntu 20.04 LTS" --organization "Default Organization"

# Sync all repositories
hammer product synchronize --name "Ubuntu 20.04 LTS" --organization "Default Organization"

# Publish content view
hammer content-view publish --name "Ubuntu 20.04 CV" --organization "Default Organization"

# List activation keys
hammer activation-key list --organization "Default Organization"

# Check system registration
hammer host list --organization "Default Organization"

This cheat sheet provides a complete workflow for integrating Ubuntu repositories into Red Hat Satellite 6, from initial setup through client configuration and ongoing maintenance.