Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

How to use content templates in Red Hat Lightspeed

April 23, 2025
Justin Sherrill
Related topics:
Linux
Related products:
Red Hat Enterprise Linux

    When managing a patching cycle for your systems, it is important to have a stable, reliable base of content. New errata and packages arrive frequently, and an update done on a Monday may be different than an update done on a Wednesday. Content templates utilize snapshots of Red Hat repositories and third-party repositories to enable administrators to control what software is available to install at the dnf/yum level. 

    What is a repository snapshot?

    A repository snapshot is a copy of a given Yum repository at a specific point in time. The core Red Hat repositories are snapshotted automatically every 24 hours. Custom repositories that you define in your account are also snapshotted every 24 hours once they have been defined. For example, all users already have the "Red Hat Enterprise Linux 9 x86_64 BaseOS" and "Red Hat Enterprise Linux 9 x86_64 Appstream" repositories available with daily snapshots.

    What is a content template?

    A content template is made up of snapshots of multiple repositories, including Red Hat software and optionally third-party software. Once a template is assigned to a system, that system will be configured to use those snapshots for updates instead of pulling the latest updates from the content delivery network (CDN). This provides similar, but simplified, functionality as the Red Hat Satellite content views.

    Create your first content template 

    For this example, you need a system registered to Red Hat Lightspeed. If you do not have any systems registered to Red Hat Lightspeed, run the following command on a Red Hat Enterprise Linux 9 or Red Hat Enterprise Linux 8 host:

    rhc connect

    For our first template, we will use Red Hat content and then later add custom content to it.

    To begin, navigate to Content Templates and select Add content template, as shown in Figure 1. 

    Empty template list
    Empty template list, clicking "Add Template" will lead you to the creation wizard
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 1: Empty template list, clicking Add Template will lead you to the creation wizard.

    Select the desired architecture and OS version from the lists (Figure 2).

    Define content step of template creation wizard
    Selecting the operating system version and architecture
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 2: The define template content step of the template creation wizard.

    Select any additional Red Hat repositories you need (Figure 3). The base set of Red Hat repositories required will be pre-selected. Additional Red Hat repositories will be added in the future. (We will cover how you can select custom repositories later.) Select Next. 

    Selecting additional Red Hat repositories
    This wizard steps allows you to select add-on Red Hat provided repositories to include in the template
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 3: Selecting additional Red Hat repositories.

    In Figure 4, you can choose to always use the latest snapshot of all selected repositories or pick a certain date. If you choose Use latest content, the snapshots used by this template will update whenever a new snapshot is taken. This could result in a template updated multiple times per day. By choosing a very specific date, the template’s snapshots will not change until the template is updated. Select a recent date, then click Next.

    Selecting between two options, always using the latest available snapshots, or selecting a specific date.
    By selecting a specific date, the content template will be frozen until the user changes the date.
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 4: Selecting between two options, always using the latest available snapshots, or selecting a specific date.

    Provide a name and description of the template. You might pick a name such as “Production web servers” or “Staging cluster”(Figure 5). Then click Next.

    Providing name and description of the template
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 5: Providing a name and description of the template.

    In this step, you can review all of your choices. If everything looks correct, select Create template and add to systems (Figure 6).

    Reviewing the details of the template
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 6: Reviewing the details of the template.

    Assign a template to the system

    You should see your system in the list. Select it and click Assign, as shown in Figure 7.

    Selecting systems to assign template
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 7: Selecting systems to assign template.

    Your system will pick up this template at the next Red Hat Subscription Management check-in, but we can force it by running the following command:

    # subscription-manager refresh

    If we examine the /etc/yum.repos.d/redhat.repo file, we will see it is using snapshots from https://cert.console.redhat.com for updates instead of pulling the latest from https://cdn.redhat.com/:

    # cat /etc/yum.repos.d/redhat.repo
    [rhel-9-for-x86_64-appstream-rpms]
    name = Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
    baseurl = https://cert.console.redhat.com/api/pulp-content/ccac33ac/templates/d899b942-d1a8-4efe-b77e-ae11d7392e50/content/dist/rhel9/$releasever/x86_64/appstream/os
    enabled = 1
    gpgcheck = 1
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    sslverify = 1
    sslclientkey = /etc/pki/entitlement/5528414123604440820-key.pem
    sslclientcert = /etc/pki/entitlement/5528414123604440820.pem
    metadata_expire = 86400
    enabled_metadata = 1
    sslverifystatus = 0
    [rhel-9-for-x86_64-baseos-rpms]
    name = Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
    baseurl = https://cert.console.redhat.com/api/pulp-content/ccac33ac/templates/d899b942-d1a8-4efe-b77e-ae11d7392e50/content/dist/rhel9/$releasever/x86_64/baseos/os
    enabled = 1
    gpgcheck = 1
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    sslverify = 1
    sslclientkey = /etc/pki/entitlement/5528414123604440820-key.pem
    sslclientcert = /etc/pki/entitlement/5528414123604440820.pem
    metadata_expire = 86400
    enabled_metadata = 1
    sslverifystatus = 0

    To summarize, we have defined a content template with Red Hat content frozen to a specific date, assigned it to a system, and observed the system using this template for updates. 

    Add custom content

    Next let's add custom RPM content to our template. Once we have defined a third-party repository or uploaded RPMs to a repository, we can use that repository in a template in the same manner as a Red Hat one.

    Third-party repository snapshot

    To snapshot third-party repositories, head to the Repositories application. Click Add Repositories and select the Snapshotting repository type. Note that you can easily add Extra Packages for Enterprise Linux (EPEL) repositories from the Popular Repositories tab (Figure 8).

    Create repository modal, repository type set to "Snapshotting"
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 8: Create a repository modal, repository type set to "Snapshotting".

    Give the repository a name and fill in the URL with the http(s) URL to the remote repository. If you include a GPG key, systems will use that GPG key to validate the RPMs when installing them. Saving it will start the snapshotting process. If this is a large repository such as EPEL, this can take some time. You can monitor the progress on the repository list page in the Status column, as depicted in Figure 9.

    Repository list showing a "Pending" status
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 9: The repository list shows a pending status.

    Upload custom RPMs

    Content templates also support repositories with uploaded RPMs. These can be RPMs your organization creates or third-party RPMs that aren’t publicly available to snapshot.

    To upload RPMs, go to the Repositories application by click the Add Repositories button, as previously shown in Figure 9.

    In figure 10, you will provide a name, select the upload type, and click Save and upload content. The repository will be created and allow you to either drag and drop RPM files or use the browser’s file picker to select RPMs to upload (Figure 10). 

    Create repository modal, showing repository type being set to "Upload"
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 10: Create repository modal, showing repository type being set to "Upload".

    After adding one or more files, the browser will start processing and uploading the files. This can take a while for large files or slow connections (Figure 11).

    Upload modal allowing the user to drag  and drop one or more files or use the browser file dialogue box to select one or more files.
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 11: This screen shows the processing of file uploads.

    Once the upload is complete, select Confirm changes (Figure 12).

    A file has been selected, the transfer completed showing a green progress bar.
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 12: When the transfer completes, a green progress bar appears.

    Once complete, the process of creating the repository snapshot will start. You can monitor the progress in the repository list, as shown in Figure 13.

    Repository list showing a snapshot in progress from an uploaded RPM.
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 13: The repository list showing a snapshot in progress from an uploaded RPM.

    Add custom content to the template

    Now head back over to the Templates list shown in Figure 14. Locate your template. Click the kebab menu to the right of the template name and select Edit. 

    Template list
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 14: Template list.

    Select Custom Repositories in Figure 15.

    Editing the template
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 15: Locate Custom Repositories in the menu to the left.

    Select one or more custom repositories you would like to add to the template, as shown in Figure 16.

    Selecting one or more custom repositories to add to the template.
    Figure 16: Selecting one or more custom repositories to add to the template.
    Created by Justin Sherrill, License under CC BY 4.0.
    Figure 16: Selecting one or more custom repositories to add to the template.

    Click Next three times until you are at the final review step, then select Confirm Changes. 

    Note that it can take up to a minute for these changes to take effect. You can monitor with the Status column of the template list.

    Now at the next check-in, the system will pick up the changes to the template. You can force this by running subscription-manager refresh.

    To see the custom repositories, run dnf repolist as follows:

    # dnf repolist
    Updating Subscription Management repositories.
    repo id                                              repo name
    myupload                                            myupload
    llvm-compat-packages                         llvm-compat-packages
    rhel-9-for-x86_64-appstream-rpms                     Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
    rhel-9-for-x86_64-baseos-rpms                        Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)

    Try to install one of your custom packages with the following command:

    # dnf install walrus

    It will be installed from your template.

    Next steps

    By defining a content template, we can create a stable baseline for controlling patching for large groups of systems and provide custom content to those end systems.

    FAQs

    1. I do not see my systems when trying to assign a template.

      This could be due to a couple of reasons:

    • The template’s architecture or operating system version does not match the system: Double check if you used the correct options when creating the template.
    • The system was not registered to Red Hat Lightspeed: Ensure you registered the system with rhc connect and not just subscription-manager register.
    1. I’ve assigned my template to a system but do not see custom repositories showing within dnf or yum.

      The system should automatically pick up the template at its next RHSM check-in. By default this happens every 4 hours, but you can adjust via the certCheckInterval configuration in /etc/rhsm/rhsm.conf.

      You can manually cause a system to check in by running subscription-manager refresh. You might need to run dnf repolist or perform a DNF action before updates to the /etc/yum.repos.d/redhat.repo file.

    2. Is uploaded or snapshotted content available publicly? 

      No, all repositories hosting third party content are only available to registered systems in your organization. This is protected by the certificates a system receives at registration time.

    3.  How long is snapshotted and uploaded content kept?

      Currently snapshots are stored for 12 months and then deleted, but the newest snapshot will always be kept. 

    4.  How can I upload content without using the UI?

      API information is available in the documentation. With the "Create an upload", "Upload Chunk", and "Add uploads to a repository" APIs, you can use curl, Python, or other languages to upload arbitrary RPMs.

    5.  How can I provide feedback?

      We welcome your feedback. Select the Feedback flag from the bottom right of the page. For general feedback, select Share feedback. Please include an email address if you would like to be contacted regarding your feedback. For issues, bugs, or feature requests that you would like to track long-term, select Open a support case.

    Last updated: November 7, 2025

    Related Posts

    • Extend Red Hat Lightspeed client to execute custom automation

    • Detect network issues in Open vSwitch using Red Hat Lightspeed

    • Synchronize instance tags from Amazon EC2 and Microsoft Azure with Red Hat Lightspeed

    • How the new RHEL 9.2 improves the developer experience

    Recent Posts

    • SQL Server HA on RHEL: Meet Pacemaker HA Agent v2 (tech preview)

    • Deploy with confidence: Continuous integration and continuous delivery for agentic AI

    • Every layer counts: Defense in depth for AI agents with Red Hat AI

    • Fun in the RUN instruction: Why container builds with distroless images can surprise you

    • Trusted software factory: Building trust in the agentic AI era

    What’s up next?

    Download the Advanced Linux Commands cheat sheet. You'll learn to manage applications and executables in a Linux operating system, define search criteria and query audit logs, set and monitor network access, and more.

    Get the cheat sheet
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.