Red Hat Satellite 6.0 Transition Guide Transitioning from Satellite 5 to Satellite 6 Red Hat Satellite Documentation Team Red Hat Satellite 6.0 Transition Guide Transitioning from Satellite 5 to Satellite 6 Red Hat Satellite Do cumentatio n Team Legal Notice Co pyright © 20 14 Red Hat. This do cument is licensed by Red Hat under the Creative Co mmo ns Attributio n-ShareAlike 3.0 Unpo rted License. If yo u distribute this do cument, o r a mo dified versio n o f it, yo u must pro vide attributio n to Red Hat, Inc. and pro vide a link to the o riginal. If the do cument is mo dified, all Red Hat trademarks must be remo ved. Red Hat, as the licenso r o f this do cument, waives the right to enfo rce, and agrees no t to assert, Sectio n 4 d o f CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shado wman lo go , JBo ss, MetaMatrix, Fedo ra, the Infinity Lo go , and RHCE are trademarks o f Red Hat, Inc., registered in the United States and o ther co untries. Linux ® is the registered trademark o f Linus To rvalds in the United States and o ther co untries. Java ® is a registered trademark o f Oracle and/o r its affiliates. XFS ® is a trademark o f Silico n Graphics Internatio nal Co rp. o r its subsidiaries in the United States and/o r o ther co untries. MySQL ® is a registered trademark o f MySQL AB in the United States, the Euro pean Unio n and o ther co untries. No de.js ® is an o fficial trademark o f Jo yent. Red Hat So ftware Co llectio ns is no t fo rmally related to o r endo rsed by the o fficial Jo yent No de.js o pen so urce o r co mmercial pro ject. The OpenStack ® Wo rd Mark and OpenStack Lo go are either registered trademarks/service marks o r trademarks/service marks o f the OpenStack Fo undatio n, in the United States and o ther co untries and are used with the OpenStack Fo undatio n's permissio n. We are no t affiliated with, endo rsed o r spo nso red by the OpenStack Fo undatio n, o r the OpenStack co mmunity. All o ther trademarks are the pro perty o f their respective o wners. Abstract This do cument describes ho w to prepare an existing Satellite 5.6 server fo r transitio n to a new Satellite 6 server. It describes the necessary preparatio ns and prerequisites, the to o ls required, and ho w to install and use tho se to o ls to transitio n yo ur Satellite 5.6 deplo yment to a newlyinstalled Satellite 6 server. T able of Cont ent s T able of Contents .Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . 1. G etting Help and G iving Feed b ac k 3 1.1. Do Yo u Need Help ? 3 1.2. We Need Feed b ac k! 3 . .hapt C . . . .er . .1. .. Int . . .roduct . . . . . .ion . . .t.o. Red . . . . Hat . . . . Sat . . . ellit ...e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . 1.1. Red Hat Satellite 5 4 1.2. Red Hat Satellite 6 4 . .hapt C . . . .er . .2. .. Comparing . . . . . . . . . . Sat . . . ellit ...e . .5. and . . . . Sat . . . ellit . . . .e. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . 2 .1. Sys tem Arc hitec tures 7 2 .2. Satellite Pro xies and Cap s ules 9 2 .2.1. Satellite 5 Pro xies 9 2 .2.2. Satellite 6 Cap s ules 10 2 .3. O rg aniz atio nal Struc tures 2 .4. Ap p lic atio n Life Cyc les 10 12 . .hapt C . . . .er . .3. . .T. ransit . . . . . ioning . . . . . . .from . . . . Sat . . . ellit ...e . .5. t. o . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 5. . . . . . . . . . 3 .1. The Trans itio ning Strateg y 15 3 .2. Prereq uis ites and As s ump tio ns 15 3 .3. The Trans itio ning Wo rkflo w 16 3 .4. Freq uently As ked Q ues tio ns 17 3 .5. Prep aring fo r the Trans itio n 20 3 .5.1. Prep aring the Satellite 5 Server fo r Trans itio n 20 3 .5.2. Prep aring the Satellite 6 Server fo r Trans itio n 21 3 .6 . Exp o rting Entities fro m Satellite 5 21 3 .6 .1. Exp o rting Data fro m Satellite 5 22 3 .6 .2. Trans ferring Exp o rts to Satellite 6 24 3 .7. Imp o rting to Satellite 6 24 3 .7.1. Imp o rting O rg aniz atio ns 25 3 .7.1.1. G enerating and Ac tivating a Manifes t 27 3 .7.2. Imp o rting Us ers 27 3 .7.3. Trans itio ning Sys tem G ro up s to Ho s t Co llec tio ns 29 3 .7.4. Enab ling Yum Rep o s ito ries 29 3 .7.4.1. Enab ling External Yum Rep o s ito ries 30 .7.4.2. Enab ling Red Hat Rep o s ito ries 3 3 .7.5. Trans itio ning Cus to m and Clo ned Channels to Co ntent Views 3 .7.6 . Imp o rting Ac tivatio n Keys 3 .7.7. Trans itio ning Kic ks tart Pro files 3 .7.8 . Trans itio ning Co nfig uratio n Channels to Pup p et Mo d ules 3 .7.9 . Trans itio ning Sys tem Pro files to Co ntent Ho s ts 3 .7.10 . Trans itio ning Sys tems 3 .7.10 .1. Prereq uis ites 3 .7.10 .2. As s ump tio ns 3 .7.10 .3. Perfo rming the Trans itio n 32 33 35 36 36 37 38 38 39 39 . .hapt C . . . .er . .4. .. Advanced . . . . . . . . .T . .ransit . . . . .ioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 3. . . . . . . . . . 4 .1. Trans itio ning APIs 43 4 .1.1. Examp le API Sc rip ts 43 4 .1.1.1. Lis ting Sys tems and Ho s ts 44 4 .1.1.2. Deleting and Creating Us ers 46 4 .1.2. Satellite 6 API Tip s 52 1 Red Hat Sat ellit e 6 .0 T ransit ion G uide . .lossary G . . . . . . .of . . T. erms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 ........... . . . . . . . . .Hist Revision . . . ory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 ........... 2 Preface Preface 1. Get t ing Help and Giving Feedback 1.1. Do You Need Help? If you experience difficulty with a procedure described in this documentation, visit the Red Hat Customer Portal at http://access.redhat.com. Through the customer portal, you can: search or browse through a knowledgebase of technical support articles about Red Hat products. submit a support case to Red Hat Global Support Services (GSS). access other product documentation. Red Hat also hosts a large number of electronic mailing lists for discussion of Red Hat software and technology. You can find a list of publicly available mailing lists at https://www.redhat.com/mailman/listinfo. Click on the name of any mailing list to subscribe to that list or to access the list archives. 1.2. We Need Feedback! If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in Bugzilla: http://bugzilla.redhat.com/ against the product R ed H at Sat ellit e 6 . When submitting a bug report, be sure to mention the manual's identifier: Transition_Guide If you have a suggestion for improving the documentation, try to be as specific as possible when describing it. If you have found an error, please include the section number and some of the surrounding text so we can find it easily. 3 Red Hat Sat ellit e 6 .0 T ransit ion G uide Chapter 1. Introduction to Red Hat Satellite This chapter aims to help Red Hat Satellite 5 administrators understand and draw parallels with Red Hat Satellite 6 concepts. It also provides a high level comparison of the key differences between these two products, and explains deeper concepts relating to system architecture, organizational structure, and the application life cycle. 1.1. Red Hat Sat ellit e 5 Red Hat Satellite 5 is life cycle management tool that includes the ability to deploy, manage and monitor a large number of systems. Satellite 5 can be set up in a connected or disconnected mode in which Red Hat software is distributed to client systems using the original pooled subscription approach. The pooled subscription concept is similar to the way in which clients consume entitlements from Red Hat Network Classic. Feat u res an d Fu n ct io n alit y The popular functionality of Satellite 5 includes the ability to provision a large number of systems using kickstart files and activation keys to install and configure systems to a predictable state. This provisioning process associates systems to designated organizations, software and configuration channels, as well as placing systems in predefined system groups. The Satellite 5 provisioning functionality enables administrators to provision thousands of systems in a consistent manner. Another popular feature is the ability to manage software and configuration files across large numbers of systems in local or remote environments after those systems have been provisioned. One of the well understood concepts of managing software and configuration files in Satellite 5 is the concept of channels. All software and configuration is managed and distributed through channels, and any client needing access to software or configuration content needs to be associated with one or more relevant channels. Further, the ability to clone channels enabled administrators to create the much needed development-production environments required by most enterprises. In d u st ry R eco g n it io n Satellite 5 is recognized as a solid platform for managing software and configuration files for a large number of systems. It is also well known for the simplicity and consistency of the provisioning process. The Satellite 5 systems management platform is also well known for delivering the correct versions and updated versions of content to the correct systems in a very structured manner. Administrators can manage the Satellite and systems management processes through the Satellite webUI and also through the Satellite API interfaces. Red Hat Satellite 5 provides organizations with the benefits of Red Hat Network without the need for public Internet access for servers or client systems. This brings together the tools, services, and information repositories needed to maximize the reliability, security, and performance of your systems. Report a bug 1.2. Red Hat Sat ellit e 6 Red Hat Satellite 6 is the evolution of Red Hat's life cycle management platform. It provides the capabilities that administrators have come to expect in a tool focused on managing systems and content for a global enterprise. Satellite 6 covers the use cases requested by Satellite 5 customers, but also includes functionality that enables larger scale, federation of content, better control of 4 Chapt er 1 . Int roduct ion t o Red Hat Sat ellit e systems during the provisioning process, and a much more simplified approach to life cycle management. Satellite 6 also further evolves the inherent approach to certificate-based entitlements and integrated subscription management. Satellite 6 is based on years of customer feedback and is an evolution of previous versions. Report a bug 5 Red Hat Sat ellit e 6 .0 T ransit ion G uide Chapter 2. Comparing Satellite 5 and Satellite 6 This chapter explores the differences between Red Hat Satellite 5 and Red Hat Satellite 6, especially in the areas of system architecture, organizational structures, and the application life cycle. The following table outlines some initial concepts and their respective implementation in both Satellite 5 and Satellite 6. T ab le 2.1. C o mp ariso n o f Sat ellit e 5 an d Sat ellit e 6 C o n cep t s C o n cep t Sat ellit e 5 Sat ellit e 6 Spacewalk Foreman, Katello, and Puppet Entitlements Subscriptions Certificate file Manifest file Organizations Organizations and Locations Software Channels Products and repositories D escrip t io n Open source projects A single project approach versus a modular approach. Subscription types Pool- or channel-based versus certificatebased. Subscription management has improved over the years from a pool- or channel-based approach to a more specific certificate-based approach. Certificate-based subscription management provides better overall control of subscriptions of those consuming clients. Subscription methods (or Satellite subscription consumption). The way that Satellite is enabled to synchronize and distribute Red Hat content. Certificates are activated during installation; manifests are uploaded after installation. Organization management Both Satellite 5 and 6 have a concept of multiple organizations, but Satellite 6 also includes functionality to include the context of the location. Software and configuration content D istributed through channels versus distributed through content views published and promoted through environments. In Satellite 6 a content view contains a chosen set of software repositories and configuration modules that are published and promoted to an environment. Client systems consume its software and configurations through its environment associations. 6 Chapt er 2 . Comparing Sat ellit e 5 and Sat ellit e 6 C o n cep t Sat ellit e 5 Sat ellit e 6 Configuration Channels Red Hat Satellite Proxy Server Puppet Repositories D escrip t io n Configuration Proxy services Command-line tools Virtualization and cloud providers Various CLI tools KVM and Xen D atabase support Embedded PostgreSQL, managed PostgreSQL, external PostgreSQL, Oracle D atabase 10g Release 2 or 11g (Standard or Enterprise Edition) Red Hat Satellite Capsule Serve r Hammer Openstack, Red Hat Enterprise Virtualizatio n, KVM, VMware, EC2 Embedded PostgreSQL for 6.0. Report a bug 2.1. Syst em Archit ect ures Red Hat Satellite 5 is based on an open source project called Spacewalk and is comprised of several key components arranged in the following architecture. Fig u re 2.1. R ed H at Sat ellit e 5 Syst em Arch it ect u re Web U I 7 Red Hat Sat ellit e 6 .0 T ransit ion G uide The Web UI runs through an Apache web server and provides the main entry point for Satellite operations. F ro n t - en d API The Front-end API provides the ability to interact with Satellite 5 through an XML-RPC API. This allows system administrators to write scripts to perform repetitive tasks, or develop third-party applications around Satellite. The Front-end API exposes most of the Web UI functionality using XML-RPC. B ack- en d API The back end provides a set of APIs that the different client utilities (rhn_reg i ster, yum) connect to. These are not documented and are used solely by the client utilities. T asko mat ic Taskomatic is generally a separate service within Red Hat Satellite 5 that runs various asynchronous jobs, such as cleaning up the sessions table, or sending email notifications for new errata. The majority of these jobs run periodically, and you can adjust the frequency with which they occur. S earch Server Satellite contains a standalone search server that runs as a daemon that allows you to quickly find a system, package, or errata, as opposed to paging through hundreds of items in a list. It uses Apache's Lucene search engine library, which provides more relevant search results and a richer query language. Red Hat Satellite 6 is based upon several open source projects arranged in the following architecture. Fig u re 2.2. R ed H at Sat ellit e 6 Syst em Arch it ect u re 8 Chapt er 2 . Comparing Sat ellit e 5 and Sat ellit e 6 F o reman Foreman is an open source application used for provisioning and life cycle management of physical and virtual systems. Foreman automatically configures these systems using various methods, including kickstart and Puppet modules. Foreman also provides historical data for reporting, auditing, and troubleshooting. K at ello Katello is a subscription and repository management application. It provides a means to subscribe to Red Hat repositories and download content. You can create and manage different versions of this content and apply them to specific systems within user-defined stages of the application life cycle. C an d lep in Candlepin is a service within Katello that handles subscription management. P u lp Pulp is a service within Katello that handles repository and content management. H ammer Hammer is a CLI tool that provides command line and shell equivalents of most Web UI functions. R EST API Red Hat Satellite 6 includes a RESTful API service that allows system administrators and developers to write custom scripts and third-party applications that interface with Red Hat Satellite. C ap su le Red Hat Satellite Capsule Server acts as a proxy for some of the main Satellite functions including repository storage, D NS, D HC P , and Puppet Master configuration. Each Satellite Server also contains integrated Capsule Server services. Report a bug 2.2. Sat ellit e Proxies and Capsules A key difference between Satellite 5 and Satellite 6 is in the area of " disconnected" content management. Both versions of Satellite can provision and keep hosts synchronized without direct connection to the internet, but the way they achieve this is slightly different. Report a bug 2.2.1. Sat ellit e 5 Proxies Red Hat Satellite Proxy Server is a package-caching mechanism that reduces the bandwidth requirements for Red Hat Satellite and enables custom package deployment. The Satellite Proxy acts as a go-between for client systems and the Satellite Server. From the client's perspective, there is no difference between a Satellite Proxy and a Satellite . From the Satellite server's perspective, a Satellite Proxy is a special type of Satellite client. Satellite Proxy servers are a feature of Satellite 5; you cannot use Satellite Proxy servers with 9 Red Hat Sat ellit e 6 .0 T ransit ion G uide Satellite 6. Instead, Satellite 6 introduces the concept of Capsules, which provide much the same functionality. Report a bug 2.2.2. Sat ellit e 6 Capsules Satellite 6 deployments use Capsule servers to provide a similar level of functionality for Satellite 6 that Proxy servers provide for Satellite 5. The first release of Capsule servers, delivered with Satellite 6.0, can provide the following functionality: Mirror content (Pulp Node). Content can be staged on a Pulp Node before it is used by a host. Mirror Puppet content (Puppet Master) Integrate with D HCP, D NS, TFTP, and IPA. In Satellite 6.0, Capsule servers do not proxy all data. Consequently, managed systems need connectivity up to Satellite 6, or an HTTP Proxy in place to provide a network bridge if required. Further, you cannot tier Capsule servers like you can with Proxy servers. This is illustrated in the following diagram. Fig u re 2.3. C o mp ariso n o f Sat ellit e 5 Pro xy an d Sat ellit e 6 C ap su le Servers Report a bug 2.3. Organiz at ional St ruct ures Red Hat Satellite 5 can group systems, content, and configuration into multiple and distinct 10 Chapt er 2 . Comparing Sat ellit e 5 and Sat ellit e 6 organizations. This is useful for companies with multiple divisions, such a Finance, Marketing, Sales, and so forth. Each organization acts as an individually managed Satellite, each with their own configuration and system profiles. However, Satellite can share content (software channels) among multiple organizations. Red Hat Satellite 5 also has the ability to synchronize content across multiple Satellite servers. This allows administrators to provide geographically dispersed Satellites that share the same software channels. For example, a company might have offices in three separate locations and each might require a Satellite, but synchronizing content from a chosen parent Satellite server. Fig u re 2.4 . Examp le T o p o lo g y f o r R ed H at Sat ellit e 5 All systems management operations occur on the Satellite to which they are registered. Red Hat Satellite 6 takes a consolidated approach to Organization and Location management. System administrators define multiple Organizations and multiple Locations in a single Satellite server. For example, a company might have three Organizations (Finance, Marketing, and Sales) across three countries (United States, United Kingdom, and Japan). In this example, the Satellite server manages all Organizations across all geographical Locations, creating nine distinct contexts for managing systems. In addition, users can define specific locations and nest them to create a hierarchy. For example, Satellite administrators might divide the United States into specific cities, such as Boston, Phoenix, or San Francisco. 11 Red Hat Sat ellit e 6 .0 T ransit ion G uide Fig u re 2.5. Examp le T o p o lo g y f o r R ed H at Sat ellit e 6 The main Satellite server retains the management function, while the content and configuration is synchronized between the main Satellite server and a Satellite Capsule assigned to certain locations. Report a bug 2.4 . Applicat ion Life Cycles The application life cycle in Red Hat Satellite 5 follows stages in a path. For example, applications might move along a path from " D evelopment" to " Testing" to " General Availability" . Each stage in Red Hat Satellite 5 uses System Definitions to manage systems at a particular point in the life cycle. A System D efinition in Red Hat Satellite 5 is a set of Software Channels and Configuration Channels that are used in Kickstart Profiles. 12 Chapt er 2 . Comparing Sat ellit e 5 and Sat ellit e 6 Fig u re 2.6 . T h e Ap p licat io n Lif e C ycle o f R ed H at Sat ellit e 5 The Red Hat Satellite 6 application life cycle is broken up into two key components: Life Cycle Environments and Content Views. The application life cycle is divided into life cycle environments, which mimic each stage of the life cycle. These life cycle environments are linked in an environment path. You can promote content along the environment path to the next life cycle stage when required. For example, if development completes on a particular version of an application, you can promote this version to the testing environment and start development on the next version. Fig u re 2.7. An En viro n men t Pat h C o n t ain in g Fo u r En viro n men t s. Content views are managed selections of content, which contain one or more repositories (yum / puppet) with optional filtering. These filters can be either inclusive or exclusive, and tailor a system view of content for lifecycle management. They are used to customize content to be made available to client systems. 13 Red Hat Sat ellit e 6 .0 T ransit ion G uide Fig u re 2.8. C reat in g N ew Versio n s o f a C o n t en t View Published content views are used with life cycle environments. Report a bug 14 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 Chapter 3. Transitioning from Satellite 5 to 6 This chapter describes the prerequisites for performing a successful transition from Red Hat Satellite 5 to Satellite 6, and the basic transition work flow. It also describes how to install and use the required transition tools, and covers the most common transition use cases. The complete transition workflow consists of several phases: Satisfy requirements: this phase consists of ensuring that all transition prerequisites are satisfied. Failure to meet these requirements might result in an incomplete or failed transition. Preparation: this phase consists primarily of preparing the Satellite 6 system to receive data from the existing Satellite 5 system. Transition: this phase consists of exporting the data from the existing Satellite 5 system, transferring that data to the Satellite 6 system, and then tuning the configuration to suit your deployment. Report a bug 3.1. T he T ransit ioning St rat egy Several strategies are envisioned for transitioning from Red Hat Satellite 5.6 to 6.0. The two primary strategies are passive transition and active transition, both of which involve developing a Satellite 6 architecture alongside your Satellite 5 architecture. This guide focuses on the active transition strategy, and how to use the tools provided in Satellite 5.6 and Satellite 6.0 to achieve a successful transition. Passive T ran sit io n In a passive transition scenario, the workloads remain on Satellite 5. This strategy is most appropriate if your Satellite deployment is complex and involves significant integration with other applications via APIs or other processes. In this case, Red Hat Satellite 6 is deployed to manage only new workloads and projects, whereas Red Hat Satellite 5 is maintained in order to manage existing workloads until they are retired. Satellite 5 data models may or may not be transitioned to Satellite 6. A passive transition gives administrators the most freedom to reconsider their infrastructure with the least possibility of any disruption to services. Act ive T ran sit io n In an active transition scenario, all workloads are moved to Satellite 6. The object of this strategy is to decommission Satellite 5 after translating the Satellite 5 data models to Satellite 6 and registering systems to the new Satellite. All new workloads and projects are targeted for management by Satellite 6. An active transition allows data models to remain somewhat similar and familiar with all workloads appropriately migrated to the new Red Hat Satellite. The originating Satellite 5 is then free to be transitioned into an archived state and shut down. Report a bug 3.2. Prerequisit es and Assumpt ions The following list describes the prerequisites and assumptions you need to address to ensure a successful transition from Red Hat Satellite 5.6 to Satellite 6. 15 Red Hat Sat ellit e 6 .0 T ransit ion G uide Ensure you start with a fully-functional, up-to-date Satellite 5.6 server. Satellite 6 must be correctly installed and configured on a second machine. This installation must include a manifest that provides access to the same content as the Satellite 5.6 instance, and for the same number of clients. The Satellite 6 instance must be synchronized with the desired Red Hat content before you start the transition process. The transition tools are purposely designed not to copy Red Hat content from Satellite 5.6 to Satellite 6. The transition tools are designed to work in environments where network security prevents direct connection between the Satellite 5 and Satellite 6 instances. Consequently, the tools were designed to work in isolation, in two stages. The first stage is to export data from Satellite 5.6, and the second stage is to import data into Satellite 6. After the first stage is complete, you can use network tools (for example, SC P ) or physical media to transfer the exported data to the Satellite 6 server. The export tools run on the Satellite 5.6 system. This allows direct access to the Satellite 5.6 database, repositories, and existing tools such as spacewal k-repo rt. It is also necessary because some customer sites have networking restrictions that limit access to the Satellite 5.6 instance. The import tools run on the Satellite 6 system, for similar reasons. Given the differences in data models and functionality between Satellite 5.6 and Satellite 6, importing Satellite 5.6 data cannot achieve a perfectly-configured Satellite 6 instance. The goal is to reduce the amount of configuration as much as possible. Report a bug 3.3. T he T ransit ioning Workflow The transitioning workflow consists of two main phases, each consisting of several steps. These are described in the following sections. Prep arin g f o r T ran sit io n The preparation phase consists of the following steps: 1. Install Satellite 6. 2. Navigate to the Red Hat Customer Portal and create a manifest for each organization that you are going to import. 3. D ownload those manifests to the Satellite 6 instance. Important Rename each manifest according to the organization for which it is intended. That is, ORG_NAME. zi p. 4. Use the hammer i mpo rt o rg ani zati o n command to import your organizations and their manifests. For example: 16 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 # hammer import organization --csv-file /tmp/exports/users.csv -upload-manifests-from /root/manifest-dir Perf o rmin g t h e T ran sit io n After you have completed the steps described in Preparing for Transition, the Satellite 6 instance is ready to accept transition data. This phase consists of the following steps: 1. Export the entities (metadata and content) from an installed Satellite 5 system, using tools installed on the Satellite 5 server machine. 2. Transfer the exported entities to the Satellite 6 instance, using SC P , a USB device, or other suitable means. 3. Import the Satellite 5 entities, using tools installed on the Satellite 6 server machine. 4. Tune the Satellite 6 configuration to suit your deployment. The existing spacewal k-repo rt tool extracts most of the information from the Satellite 5 instance. Several new reports have been added, as well as two new tools that are used as part of the export process: spacewal k-channel -expo rt: This tool exports channel data and metadata beyond that available at the report level. spacewal k-expo rt: This tool is a wrapper that combines the various export processes into a single tool, and packages the resulting export data into a single data set that can be transferred to the Satellite 6 system. The existing hammer tool has been extended with a new plug-in. This plug-in is compatible with the Satellite 5 export data format, and accesses the Satellite 6 instance using its public API. The import tools track which Satellite 5 entities have been mapped to which Satellite 6 entities. This means you can run the import tools multiple times without duplicating entities. Report a bug 3.4 . Frequent ly Asked Quest ions C an I p erf o rm an in - p lace u p g rad e f ro m Sat ellit e 5 t o Sat ellit e 6 ? The underlying technologies between Satellite 5 and 6 are significantly different. For this reason, the in-place upgrade process (such as from version 4.x to 5.x or from 5.x to 5.y) does not apply for version 5 to 6. Satellite 6 needs to be installed on a new server as part of the sideby-side transition process. Consequently, this is referred to as a transition process and not an upgrade process. Wh ich versio n s o f Sat ellit e 5 are su p p o rt ed f o r t h e t ran sit io n ? The transition path begins with Satellite 5.6. If you are running an earlier version of Satellite you first need to upgrade to version 5.6. 17 Red Hat Sat ellit e 6 .0 T ransit ion G uide Upon the future release of Satellite 5.7, it too will be supported as a platform for moving from Satellite 5 to 6. Upon future releases of Satellite (6.1, 6.2, and so on), they too will be supported as platforms for moving from Satellite 5. Note If you plan a more passive transition process, the prior Satellite version does not matter. A passive transition process is more of an adoption process where legacy workloads remain on Satellite 5 and new workloads are freshly modeled on Satellite 6 as if it is treated as new infrastructure for your Red Hat Enterprise Linux Systems Management needs. Wh ich versio n s o f R ed H at En t erp rise Lin u x will Sat ellit e 5 an d Sat ellit e 6 su p p o rt as clien t syst ems? The following support matrix currently applies: Satellite 5.6 supports clients of Red Hat Enterprise Linux versions 4, 5, 6, and 7. Satellite 6 supports clients of Red Hat Enterprise Linux versions 5.7 and later, 6.1 and later, and 7.0 and later. Satellite 6 does not support clients of version Red Hat Enterprise Linux 4. Wh at is t h e q u ick versio n o f h o w t o t ran sit io n f ro m Sat ellit e 5 t o Sat ellit e 6 ? 1. Install Satellite 6, activate with a manifest and synchronize Red Hat content from CD N. Review the documentation, learn and understand the basics of the Satellite 6 product, including new concepts, such as environments. Back up the new Satellite 6 server, including databases, before using the transition tools. 2. As root on Satellite 5.6, run the exporter command-line tool. 3. Copy the resulting data onto Satellite 6. 4. As root on Satellite 6, run the importer command-line tools. 5. Validate and test the resulting Satellite 6 system for a subset of end to end functionality and important use-cases corresponding to the data-types transitioned from Satellite 5.6 to 6. 18 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 Note Not all of the concepts can be translated between Satellite 5 and 6. Some manual steps are required to fully populate the newly installed Satellite 6 server. Will t h e t ran sit io n t o o ls wo rk wit h a d isco n n ect ed server? Yes, the transition tools are designed such that a disconnected environment is assumed, and neither Satellite 5 nor 6 can directly communicate with each other or the Internet in general. Will t h e t ran sit io n t o o ls t ran sit io n all d at a f ro m Sat ellit e 5 t o Sat ellit e 6 ? No. In some situations, Satellite 5 and Satellite 6 take different approaches to the tasks of synchronizing and provisioning hosts, managing entitlements, and dealing with disconnected environments. Some configuration, system, and host data is also created and stored differently. Consequently, not all data can be successfully transitioned. In Satellite 6, the following information cannot be transitioned: Activation-keys that use " Red Hat default" Anything history- or audit-related (events, oscap runs, and so on) Anything monitoring-related Configuration-channel ordering D istribution-channel mapping Kickstart data (other than snippets) Organization entitlement-distribution (users need to create their own manifests) Organization-trusts settings Snapshots Stored package-profiles Custom system information, such as key/value pairs, system notes, and system properties in general. The latter is completed when a system registers to Satellite 6 and connects to the created profile. User preferences C an I ru n t h e t ran sit io n t o o ls an d p ro cess mu lt ip le t imes? Yes, the transition tools are idempotent. You can reuse the tools to create Satellite 6 data and preserve previous information. A small data file on the Satellite 6 server preserves the history of previous runs and tracks what has already been imported. 19 Red Hat Sat ellit e 6 .0 T ransit ion G uide C an I u se t h e exp o rt t o o ls o n my p ro d u ct io n Sat ellit e 5.6 syst em? Yes, assuming that you run the tools with sufficient disk space. D isk space will vary, from 20 MB to several Gigabytes, depending on the total amount of non-Red Hat content stored on the Satellite in /var/satel l i te/red hat/ and being selected for export by the export tool. When exporting custom or cloned channels, the tool searches for non-Red Hat content associated with the channels, to copy into the export archive. Other than some short-term CPU and memory consumption, the tool only performs read-only file system, and SQL queries on the database to gather data, write the resulting data to files on disk, and create a tar archive of the data. Report a bug 3.5. Preparing for t he T ransit ion The transition tools and process assume the following conditions are true: A fully-functional Satellite 5.6 instance exists. Satellite 6 has been correctly installed on a new machine. D irect connectivity between the Satellite 5 and Satellite 6 instances cannot be guaranteed. The Satellite 6 instance contains a manifest that enables access to the same content that the Satellite 5 instance accesses, for the same number of client machines. The Satellite 6 instance has already synchronized the desired Red Hat content. The transition tools make every attempt not to copy Red Hat content from Satellite 5 to Satellite 6. The export tools execute on the Satellite 5 system. This is necessary to allow direct access to the Satellite 5 database, repositories, and existing tools such as spacewal k-repo rt. The import tools execute on the Satellite 6 system, for similar reasons. The result of importing Satellite 5 data is n o t a perfectly-configured Satellite 6 instance. The goal is to alleviate as much set-up as reasonably possible, given the differences in data-models and functionality between Satellite 5 and 6. Report a bug 3.5.1. Preparing t he Sat ellit e 5 Server for T ransit ion Preparing your Satellite 5 server for transition requires that you subscribe to some specific channels and download extra packages to ensure that your transition runs smoothly. This is described in the following sections. In st allin g t h e Lat est R ep o rt in g Packag es Install the latest spacewalk-reports and spacewalk-utils packages from the Satellite 5.6 channel. # yum install spacewalk-reports spacewalk-utils The latest spacewalk-report package provides additional reports which are used by the transition tools: 20 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 activation-keys channels config-files-latest kickstart-scripts repositories system-profiles You can run the spacewal k-repo rt command to confirm the addition of these new reports. The spacewalk-utils package provides two additional command-line tools, which are used by the transition tools: /usr/bi n/spacewal k-expo rt and /usr/bi n/spacewal k-expo rt-channel s. Note The spacewalk-reports package is fully supported by Red Hat and provides additional reports designed for use by the spacewal k-expo rt tools. You can also use these reports for general, day-to-day reporting. In st allin g Ext ra T ran sit io n Packag es Ensure your Satellite 5 server is subscribed to the RHN Tools channel. This channel provides the latest updates to the subscription-manager and python-rhsm packages, which are required to install the subscri pti o n-manag er-mi g rati o n command. Install the subscription-manager and python-rhsm packages: # yum install subscription-manager python-rhsm Report a bug 3.5.2. Preparing t he Sat ellit e 6 Server for T ransit ion To prepare the Satellite 6 server for transition, ensure the rubygem-hammer_cli_import package is installed. If necessary, run yum i nstal l rubyg em-hammer_cl i _i mpo rt to install it from the Satellite 6 repositories. Run the following command to verify that the transition tools were successfully installed: # hammer import --help Usage: hammer import [OPTIONS] SUBCOMMAND [ARG] ... Report a bug 3.6. Export ing Ent it ies from Sat ellit e 5 Before you can transition your Satellite 5 data to Satellite 6, you need to export the required entities into a specially-formatted file suitable for use by the Satellite 6 import tools. 21 Red Hat Sat ellit e 6 .0 T ransit ion G uide The expected work flow on the Satellite 5.6 server is to use the spacewal k-expo rt command as a wrapper. This wrapper command calls the following commands to export Satellite 5.6 entities: s p acewalk- rep o rt ch an n els Export all custom and cloned channels and repositories for all organizations. s p acewalk- rep o rt act ivat io n - keys Export activation keys. s p acewalk- rep o rt kickst art - scrip t s Exports kickstart scripts for all organizations. s p acewalk- rep o rt u sers Export organizations and users. s p acewalk- rep o rt syst em- g ro u p s Export all system groups for all organizations. s p acewalk- rep o rt co n f ig - f iles- lat est Export information on configuration channels and the latest configuration file versions. s p acewalk- rep o rt rep o sit o ries Export repositories. s p acewalk- rep o rt syst em- p ro f iles Export information about the systems managed by Satellite 5. Running the exports directly on the Satellite 5.6 server allows complete access to the spacewal kexpo rt functionality, including limiting the data exported, using the --where and --l i ke options. However, if the goal is to export as much as possible - or at most limit by organization - the spacewal k-expo rt tool can manage the process for you. The spacewal k-expo rt command also uses the spacewal k-expo rt-channel s command to collect information and content for non-Red Hat channels. Report a bug 3.6.1. Export ing Dat a from Sat ellit e 5 Run the following command to list the entities that you can export: # spacewalk-export --list-entities INFO: Currently-supported entities include: INFO: channels : Custom/cloned channels and repositories for all organizations INFO: activation-keys : Activation keys INFO: kickstart-scripts : Kickstart scripts for all organizations INFO: users : Users and Organizations 22 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 INFO: INFO: INFO: INFO: system-groups config-files-latest repositories system-profiles : : : : System-groups for all organizations Latest revision of all configuration files Defined repositories System profiles for all organizations You can use the --enti ti es option to limit the export by entity. # spacewalk-export --entities users,repositories You can also use the --enti ti es option with the channels parameter to export all channel data available on the Satellite 5 instance. Using this format calls both spacewal k-repo rt-channel s and spacewal k-expo rt-channel s, and consequently exports both Red Hat and non-Red Hat channels. You can use the --o rg option to limit the export by organization. Use the spacewal k-repo rt users command to retrieve a list of organization ID s. # spacewalk-export --org=ORG-ID By default, the spacewal k-expo rt command stores all exports in the ~ /spacewal k-expo rtd i r/expo rts file, and packages all export data into the ~ /spacewal k-expo rtd i r/spacewal k_expo rt. tar. g z file. You can use the following options on the command line to specify different values: # spacewalk-export --export-dir=your-export-directory # spacewalk-export --export-package=your-export-package-name The following is an example of a typical export session: Examp le 3.1. Examp le o f a T yp ical Exp o rt Sessio n # spacewalk-export INFO: Processing channels... Processing organization: GLOBAL SUPPORT SERVI RED HAT, INC. * * * . . * * * channel: clone-rhel-x86_64-server-5 with: 15778 packages channel: clone-rhel-x86_64-server-6 with: 12157 packages channel: clone-rhel-x86_64-server-optional-6 with: 6931 packages channel: epel-puppet-rhel6-server-x86_64 with: 8 packages channel: puppet-rhel5-server-x86_64 with: 409 packages channel: puppet-rhel6-server-x86_64 with: 373 packages INFO: Processing system-groups... INFO: Processing activation-keys... INFO: Processing repositories... INFO: Processing users... INFO: Export-file created at /root/spacewalk-exportdir/spacewalk_export.tar.gz 23 Red Hat Sat ellit e 6 .0 T ransit ion G uide Report a bug 3.6.2. T ransferring Export s t o Sat ellit e 6 After you have successfully exported all the required entities from your Satellite 5 server, transfer the /ro o t/spacewal k-expo rt-d i r/spacewal k_expo rt. tar. g z file to the Satellite 6 server. If the two servers are connected over the network, you can use scp or a similar tool to transfer the file. Alternatively, use removable media such as a USB device or D VD . Warning Red Hat strongly recommends that you place the spacewal k_expo rt. tar. g z file in the /tmp/ directory on your Satellite 6 system. This ensures that the extracted files have suitable permissions for the import process. Ext ract in g t h e Exp o rt ed Arch ive Extract the spacewal k_expo rts. tar. g z archive into the /tmp/ directory on your Satellite 6 server, and use the --d i recto ry option with the hammer import commands to specify this directory as the source directory. This creates a /tmp/expo rts/ directory that contains all the exported data, ready to import and recreate within the Satellite 6 server. Important Ensure you have sufficient disk space to extract the archive within the /tmp/ directory. The transition process uses local disk mirrors to import data from the archive into Satellite 6. If the /tmp/ directory cannot be used, ensure that you use an alternative that provides sufficient space and read access for the apache user and group. Ensure that the apache user and group has read access to the /tmp/expo rts/ directory. If necessary, adjust the group and permissions: # chgrp -R apache /tmp/exports/ # chmod -R 0750 /tmp/exports/ Report a bug 3.7. Import ing t o Sat ellit e 6 After the data exported from Satellite 5 is made available to the Satellite 6 system, it is ready to be imported. The import work flow is as follows: 1. Import organizations. This includes importing a manifest if one exists. 2. Import users. 3. Import system groups as host collections. 4. Enable and synchronize repositories. This is referred to as repository discovery. 24 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 5. Import repositories. 6. Import custom channels and cloned channels as content views. 7. Import activation keys. 8. Import kickstart snippets as template snippets. 9. Import configuration files to puppet modules. 10. Import system profiles as content hosts. Important The order in which you import entities is important. Entities are owned by organizations in Satellite 5; consequently, you need to import organizations before users, for example. You can use the hammer i mpo rt al l --d ry-run command to list the available entities and the order in which they should be imported. O p t io n s f o r Imp o rt in g En t it ies Satellite 6 gives you the option of importing entities separately or all together. This section describes these two approaches. Assuming a set of Satellite 5 export files is available, a manual import session would appear as follows: # hammer shell hammer> import organization --csv-file=FILE hammer> import user --csv-file=FILE If the Satellite 5 data is stored in /tmp/expo rts (the result, for example, of unpacking the output of spacewal k-expo rt), you can use the following command to import everything: # hammer import all --directory=/tmp/exports Report a bug 3.7.1. Import ing Organiz at ions To transition organizations, use the users. csv file and recreate the Satellite 5.6 organizations listed within it. You can use the hammer i mpo rt command on the command line or use the hammer interactive shell. Run the following command to import organizations into Satellite 6: # hammer import organization --csv-file /tmp/exports/users.csv The following is an example of an interactive session. This example also demonstrates the -upl o ad -mani fests-fro m and --verbo se options: Examp le 3.2. Examp le o f In t eract ive Imp o rt Sessio n 25 Red Hat Sat ellit e 6 .0 T ransit ion G uide # hammer shell hammer> import organization --csv-file /tmp/exports/users.csv --uploadmanifests-from /root/manifests --verbose Importing from /tmp/exports/users.csv Creating new organization: RED HAT SATELLITE ENGINEERING Uploading manifest /root/manifests/RED_HAT_SATELLITE_ENGINEERING.zip to org-id 5 Waiting for the task [a231d19c-aee7-42b8-9566-07651ac029f4] ...... Organization [1->5] already imported. Organization [1->5] already imported. Organization [1->5] already imported. Organization [1->5] already imported. Creating new organization: SOE-ORG Uploading manifest /root/manifests/SOE-ORG.zip to org-id 6 Waiting for the task [5da6dd16-0bf6-4ad0-924f-a9d5e1802565] ...... Organization [7->6] already imported. Summary Found 5 organizations. Created 2 organizations. Uploaded 2 manifests. Use the hammer o rg ani zati o n l i st command to list the organizations within Satellite 6. hammer> organization list ID | NAME | LABEL | DESCRIPTION 1 | ACME_Corporation | ACME_Corporation | ACME_Corporation Organization 5 | QA | QA | Imported 'QA' organization from Red Hat Satellite 5 4 | Sec eng Dept. | Sec_eng_Dept_ | Imported 'Sec eng Dept.' organization from Red Hat Satelli.. 6 | Security | Security | Imported 'Security' organization from Red Hat Satellite 5 hammer> The import process creates organizations based on the organizations listed in the user. csv file. The Satellite 5 organization ID s are mapped to new Satellite 6 organization ID s. This is illustrated by the " [2->4]" and " [26->7]" entries in Example 3.2, “ Example of Interactive Import Session” . Alternatively, you can use the hammer i mpo rt o rg ani zati o n --i nto -o rg -i d org_id command to reduce all of the Satellite 5 organizations into a single, flat organization within Satellite 6. You can use the hammer o rg ani zati o n l i st command to determine the correct organization ID . Warning All import data is stored in CSV files in the ~ /. transi ti o n_d ata directory. This information is critical for any subsequent data imports. D o not modify the data in this directory. A history of hammer commands is stored in the /ro o t/. fo reman/hi sto ry file, and any errors from hammer commands are stored in the /ro o t/. fo reman/l o g /hammer. l o g file. 26 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 The hammer i mpo rt command logs all output to the ~ /i mpo rt. l o g file. You can use the -l o g fi l e option to any hammer i mpo rt subcommand to specify a different name and location for the log file. Report a bug 3.7 .1 .1 . Ge ne rat ing and Act ivat ing a Manife st You need to activate a manifest for the organizations for which you want to populate content and other data. You can generate a manifest from within the Red Hat Customer Portal, and then activate that manifest for the imported organization. The following procedure assumes you have already created a suitable manifest in the Red Hat Customer Portal. Pro ced u re 3.1. T o Act ivat e t h e Man if est f o r Sat ellit e 6 : 1. Log in to the Satellite 6 WebUI as an administrative user. 2. Select the required organization from the main menu at the upper left. 3. Click C o n t en t → R ed H at Su b scrip t io n s 4. On the Acti o ns tab, under Upl o ad New Mani fest, click Bro wse, navigate to and select the manifest file that you downloaded. 5. In the Satellite 6 WebUI, click Upl o ad to upload the manifest to the Satellite 6 server. Repeat this procedure for each required organization. Report a bug 3.7.2. Import ing Users The import process recreates the Satellite 5 users in each Satellite 5 organization from the users. csv file. User passwords cannot be copied from Satellite 5 to Satellite 6; instead, the process generates a new random password for each user that it imports. This information is saved in a CSV file, which as the administrator you can parse and send notifications to each user listed with their new password. You can use the hammer i mpo rt command on the command line or use the hammer interactive shell. The import process tracks which entities have already been processed. You can, for example, run the hammer i mpo rt user command multiple times, using different input files (CSV files). The i mpo rt command recognizes user ID s it has already imported, and skips them on subsequent processes. Run the following command to import users into Satellite 6: # hammer import user --csv-file /tmp/exports/users.csv \ --new-passwords /path/to/new/user/passwords.csv The following is an example of an interactive session: Examp le 3.3. Examp le o f In t eract ive Imp o rt Sessio n hammer> import user --csv-file /tmp/exports/users.csv --new-passwords /root/new-user-passwords.csv 27 Red Hat Sat ellit e 6 .0 T ransit ion G uide Creating new user: sat5_admin Creating new user: auser1 Creating new user: auser2 To show the users were created, log in to the WebUI and navigate to Ad min ist er → U sers. Alternatively, use the command line as shown below. # hammer user list ID | LOGIN | NAME | EMAIL 5 | auser1 | A User1 | auser1@ example.com 4 | auser2 | A User2 | auser2@ example.com 1 | admin | Admin User | root@ sat6.example.com # hammer user list --search sat5_admin ID | LOGIN | NAME | EMAIL 3 | sat5_admin | Hat Red | sat5admin@ example.com The following is an example password file for the imported users: # head new-user-passwords.csv mail,login,password sat5admin@ example.com,sat5_admin,sat5_admin_svenkmxf auser1@ example.com,auser1,auser1_pwfnagdk auser2@ example.com,auser2,auser2_rsgywazf Note By default, Satellite 6 creates an ad mi n user as the initial administrator. It is common for Satellite 5 customers to also create a generic administrative user; consequently, if the import process detects a Satellite 5 ad mi n user, it renames that user to sat5_ad mi n. D elet in g Imp o rt ed U sers You can use the --d el ete option to delete the entities from the Satellite 6 instance based on information in the specified CSV file. The following example demonstrates the use of this option to delete imported users. Examp le 3.4 . D elet in g Imp o rt ed U sers $ hammer import user --csv-file /tmp/exports/users.csv --delete -verbose Deleting from /tmp/exports/users.csv Deleting imported user [1->5]. 28 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 Deleting imported user [8->6]. Deleting imported user [9->7]. Report a bug 3.7.3. T ransit ioning Syst em Groups t o Host Collect ions Red Hat Satellite 5 uses system groups to maintain collections of multiple systems. Satellite 6 uses host collections to perform the same task. The Satellite transition tools provide options to transition your Satellite 5 system groups to Satellite 6 host collections. The following example demonstrates a typical use case. Run this command on your Satellite 6 system, and substitute the CSV file with your own: # hammer import host-collection --csv-file /tmp/exports/systemgroups.csv Creating Creating Creating Creating Creating Creating Creating Creating new new new new new new new new host_collection: host_collection: host_collection: host_collection: host_collection: host_collection: host_collection: host_collection: dev test prod east west dbs web apps You can use the hammer ho st-co l l ecti o n l i st --o rg ani zati o n-i d ORG-ID to verify that the system groups have been recreated as host collections. Ensure you use the correct organization ID . You can also log in to the WebUI as an administrator to verify that the host collections were created. Ensure you are in the correct organization, and then navigate to H o st s → H o st C o llect io n s. Report a bug 3.7.4 . Enabling Yum Reposit ories Red Hat Satellite 5 and Satellite 6 use different methods to group RPM files and to present them. In Satellite 5, all RPM files are placed into channels which you clone, and you then manage the content from within those cloned channels. The satel l i te-sync command synchronizes Red Hat channels from RHN into Satellite 5. In Satellite 6, everything is a yum repository and you filter the content from that repository that is exposed to the systems being managed by Satellite 6. Several options exist for recreating Satellite 5 repositories and importing the content: Use the hammer i mpo rt repo si to ry --synchro ni ze command to initiate repository synchronization in the background. Use the hammer i mpo rt repo si to ry --synchro ni ze --wai t command to initiate repository synchronization in the background, but wait for each synchronization to complete before proceeding to the next repository. Use the hammer i mpo rt repo si to ry command with neither option and then synchronize the content manually using the WebUI or hammer commands. 29 Red Hat Sat ellit e 6 .0 T ransit ion G uide R eco mmen d ed Pract ices f o r Syn ch ro n iz in g C o n t en t The default behavior of the hammer i mpo rt repo si to ry command is to not automatically synchronize content. Many of the following import operations require that synchronization be complete before they can run successfully. Synchronization is a time-consuming task, because it involves retrieving content from external sources into your Satellite 6 server. Red Hat recommends that you schedule a background synchronization of all content before proceeding. Only repositories available to imported organizations are enabled. The hammer i mpo rt command does not alter organizations that are not part of the overall transition process. Run the following command to find, enable, and synchronize all Red Hat content enabled by the uploaded manifest files and matched by channels synchronized on the Satellite 5 server. This command tells the import process to wait until the synchronization is complete, and only synchronizes one repository at a time. # hammer import repository-enable --synchronize --wait --no-async After the repo si to ry-enabl e command is complete, run the following command to process local and custom repositories in a similar fashion. # hammer import repository --synchronize --wait --no-async The following is an example session of importing repositories but without performing any content synchronization. Examp le 3.5. Examp le Sessio n o f Imp o rt in g R ep o sit o ries The following is an example session of successfully importing repositories into Satellite 6. # hammer import all --entities repository Import organization with arguments --csv-file /tmp/exports/users.csv Summary No action taken. Import repository with arguments --csv-file /tmp/exports/repositories.csv Summary Created 6 repositories. Created 6 products. Report a bug 3.7 .4 .1 . Enabling Ext e rnal Yum Re po sit o rie s You need to recreate all non-Red Hat yum repositories that Satellite 5.6 was configured to use as new external yum repositories from which Satellite 6 can import content. The following example demonstrates using the --synchro ni ze option to import and synchronize repositories. Examp le 3.6 . Imp o rt in g an d Syn ch ro n iz in g n o n - R ed H at R ep o sit o ries 30 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 # hammer import repository --synchronize --wait --no-async \ --csv-file /tmp/exports/repositories.csv Creating new product: PUPPETLABS.COM Creating new repository: puppet-rhel6-server-x86_64 Sync started! Creating new repository: puppet-deps-rhel6-server-x86_64 Sync started! Creating new repository: puppet-rhel5-server-x86_64 Sync started! Product [1PUPPETLABS.COM->116] already imported. Creating new repository: puppet-deps-rhel5-server-x86_64 Sync started! Creating new product: FEDORAPROJECT.ORG Creating new repository: epel-rhel6-server-x86_64 Sync started! Viewin g Imp o rt ed Pro d u ct s an d R ep o sit o ries Navigate to C o n t en t → Pro d u ct s in the Satellite 6 WebUI to view the resulting products and repositories for your organization. Alternatively, use the following hammer commands: # hammer organization list ID | NAME | LABEL | DESCRIPTION 1 | ACME_Corporation | ACME_Corporation | ACME_Corporation Organization 3 | GLOBAL SUPPORT SERVI RED HAT, INC. | GLOBAL_SUPPORT_SERVI_RED_HAT__INC_ | Imported 'GLOBAL SUPPORT SERVI RED HAT, INC.' organization from Red ... # hammer product list --organization-id 3 ID | NAME | ORGANIZATION | REPOSITORIES | SYNC STATE 32 | Red Hat Enterprise Linux High Performance Networking for RHEL for IBM POWER -... | GLOBAL SUPPORT SERVI RED HAT, INC. | 0 | not_synced 35 | Red Hat Enterprise Linux 7 High Availability High Touch Beta | GLOBAL SUPPORT SERVI RED HAT, INC. | 0 | not_synced Important The default behavior of the hammer i mpo rt repo si to ry command is to not automatically synchronize content, but rather only to enable the repositories listed in the repositories.csv file. Red Hat recommends that you use the --synchro ni ze option to schedule a background synchronization of all content before proceeding. 31 Red Hat Sat ellit e 6 .0 T ransit ion G uide Report a bug 3.7 .4 .2 . Enabling Re d Hat Re po sit o rie s The Red Hat repositories are synchronized from the Red Hat Content D elivery Network (CD N). Because of these differences, it can be difficult to determine if you have imported all relevant Red Hat content into your Satellite 6 server. Red Hat recommends that you import into Satellite 6 all CD N content that equates to previously synchronized Satellite 5 channels. This ensures that your Red Hat Enterprise Linux systems have access to the same content as they did in Satellite 5. The hammer i mpo rt command on Satellite 6 provides an option to review your Satellite 5 channels and enable the corresponding repositories in Satellite 6. This section guides you through the process of discovering and enabling the appropriate Red Hat repositories. This command provides the same --wai t and --synchro ni ze options for initiating the import of Red Hat content automatically. This needs to be completed before moving to the next step. The following example demonstrates the --synchro ni ze option to enable and synchronize Red Hat repositories. Examp le 3.7. En ab lin g an d Syn ch ro n iz in g R ed H at R ep o sit o ries # hammer import repository-enable --csv-file /tmp/exports/channels.csv --synchronize Only repositories available to IMPORTED organizations will be enabled! Organization ACME_Corporation... Organization GLOBAL_SUPPORT_SERVI_RED_HAT__INC_... Enabling /content/dist/rhel/server/5/5Server/x86_64/os/Packages for channel rhel-x86_64-server-5 Sync started! Enabling /content/dist/rhel/server/5/5Server/x86_64/supplementary/os/Packages for channel rhel-x86_64-server-supplementary-5 Sync started! Enabling /content/dist/rhel/server/6/6Server/x86_64/rhntools/os/Packages for channel rhn-tools-rhel-x86_64-server-6 Sync started! Enabling /content/dist/rhel/server/6/6Server/x86_64/optional/os/Packages for channel rhel-x86_64-server-optional-6 Sync started! Enabling /content/dist/rhel/server/6/6Server/x86_64/os/Packages for channel rhel-x86_64-server-6 Sync started! Enabling /content/dist/rhel/server/5/5Server/x86_64/rhntools/os/Packages for channel rhn-tools-rhel-x86_64-server-5 Sync started! 32 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 Report a bug 3.7.5. T ransit ioning Cust om and Cloned Channels t o Cont ent Views Red Hat Satellite 5 uses the concept of cloned channels to restrict the number of Red Hat-supplied channels and RPM files. Custom content is added to custom channels, which are typically children of cloned channels. In Satellite 6, for both Red Hat and non-Red Hat content, you use a single repository and then provide filtered views of that repository to the systems managed by Satellite 6. These filtered views are called content views. This section describes how to recreate your Satellite 5 custom and cloned channels as content views. This process provides a near-equivalent set of content to systems in Satellite 6 as was available in Satellite 5.6. Run the following command to import the Satellite 5 channels as content views in the Satellite 6 server. Use the --d i r option to specify the appropriate export directory. # hammer import content-view --csv-file /tmp/exports/CHANNELS/export.csv / --dir /tmp/exports/CHANNELS Run the following command to synchronize the imported channels: # hammer import content-view --csv-file /tmp/exports/CHANNELS/export.csv --synchronize You can combine the two commands and synchronize the channels at the same time. # hammer import content-view --csv-file /tmp/exports/CHANNELS/export.csv / --dir /tmp/exports/CHANNELS --synchronize The following is an example session of importing channels to content views. Examp le 3.8. Imp o rt in g C h an n els t o C o n t en t Views # hammer import content-view --csv-file /tmp/exports/CHANNELS/export.csv --dir /tmp/exports/CHANNELS Creating new product: Local-repositories Creating new local_repository: Local repository for clone-rhel-x86_64server-5 No such content_view: 101 Repository Local_repository_for_clone-rhel-x86_64-server-5 is not (fully) synchronized. Retry once synchronization has completed. Product [1Local-repositories->118] already imported. Creating new local_repository: Local repository for clone-rhel-x86_64server-6 No such content_view: 102 Product [1Local-repositories->118] already imported. Creating new local_repository: Local repository for custom-clonemaster-puppet-rhel6-server-x86_64 33 Red Hat Sat ellit e 6 .0 T ransit ion G uide Repository Local_repository_for_custom-clone-master-puppet-rhel6server-x86_64 is not (fully) synchronized. Retry once synchronization has completed. Product [1Local-repositories->118] already imported. Creating new local_repository: Local repository for epel-puppet-rhel6server-x86_64 Repository Local_repository_for_epel-puppet-rhel6-server-x86_64 is not (fully) synchronized. Retry once synchronization has completed. Examp le 3.9 . Syn ch ro n iz in g Imp o rt ed C h an n els # hammer import content-view --csv-file /tmp/exports/CHANNELS/export.csv --synchronize Product [1Local-repositories->118] already imported. Local_repository [1117->12] already imported. Sync started! No such content_view: 101 Repository Local_repository_for_clone-rhel-x86_64-server-5 is not (fully) synchronized. Retry once synchronization has completed. Product [1Local-repositories->118] already imported. Local_repository [1113->13] already imported. Sync started! No such content_view: 102 Repository Local_repository_for_clone-rhel-x86_64-server-6 is not (fully) synchronized. Retry once synchronization has completed. Product [1Local-repositories->118] already imported. Local_repository [1115->14] already imported. Sync started! Repository Local_repository_for_custom-clone-master-puppet-rhel6server-x86_64 is not (fully) synchronized. Retry once synchronization has completed. Product [1Local-repositories->118] already imported. Local_repository [1125->21] already imported. Sync started! Examp le 3.10. C o mb in in g Imp o rt an d Syn ch ro n iz at io n o f C h an n els # hammer import content-view --csv-file /tmp/exports/CHANNELS/export.csv --dir /tmp/exports/CHANNELS -synchronize Product [1Local-repositories->98] already imported. Local_repository [1117->12] already imported. No such content_view: 101 Creating new content_view: Clone of Red Hat Enterprise Linux (v. 5 for 64-bit x86_64) Product [1Local-repositories->98] already imported. 34 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 Local_repository [1113->13] already imported. No such content_view: 102 Creating new content_view: Clone of Red Hat Enterprise Linux Server (v. 6 for 64-bit x86_64) Product [1Local-repositories->98] already imported. Local_repository [1115->14] already imported. No such content_view: 103 Creating new content_view: Clone of RHEL Server Optional (v. 6 64-bit x86_64) You can use the webUI to monitor the status of the import. Log in as an administrator, select the appropriate organization from the context menu at the upper left, and then click C o n t en t → Syn c St at u s. You may need to run the command with synchronize more than once after previous steps have completed, before seeing the content view being generated. Report a bug 3.7.6. Import ing Act ivat ion Keys Activation keys in both Satellite 5 and 6 serve almost identical purposes. The command-line tools use activation keys to register and subscribe systems to Red Hat Satellite. Activation keys in Satellite 5 have different properties, such as system groups, channel entitlements, and system entitlements (provisioning, monitoring), compared to Satellite 6, which uses content views and host collections. The earlier stages of the transition process focused on recreating the Satellite 5 data types within Satellite 6. This section describes how to import the activation keys from Satellite 5 and to associate them with the imported data types. The following example illustrates a typical use case for importing activation keys. Examp le 3.11. Imp o rt in g Act ivat io n K eys in t o Sat ellit e 6 # hammer import activation-key --csv-file /tmp/exports/activationkeys.csv Activation key usage_limit: unlimited Creating new activation_key: 1-rhel5-puppet Associating activation key [1] with host collections [2] Activation key usage_limit: unlimited Creating new activation_key: 1-rhel6-puppet Associating activation key [2] with host collections [1] Creating new ak_content_view: ak_1 Publishing content view: 15 Associating activation key [1] with content view [15] Updating activation_key with id: 1 Creating new ak_content_view: ak_2 Publishing content view: 16 Associating activation key [2] with content view [16] Updating activation_key with id: 2 35 Red Hat Sat ellit e 6 .0 T ransit ion G uide You can use the hammer acti vati o n-key l i st --o rg ani zati o n-i d ORG-ID command to verify that the activation keys have been recreated. Ensure you use the correct organization ID . You can also log in to the WebUI as an administrator to verify that the activation keys were created. Ensure you are in the correct organization, and then navigate to C o n t en t → Act ivat io n K eys. The following example illustrates the use of the command-line tools to verify the import of activation keys. Examp le 3.12. Verif yin g t h e Imp o rt o f Act ivat io n K eys # hammer activation-key list --organization-id 3 ID | NAME | CONSUMED | LIFECYCLE ENVIRONMENT | CONTENT VIEW 2 | 1-rhel6-puppet | 0 of Unlimited | | ak_2 1 | 1-rhel5-puppet | 0 of Unlimited | | ak_1 Report a bug 3.7.7. T ransit ioning Kickst art Profiles The Satellite transition tools do not migrate entire kickstart profiles. D ue to some significant differences between the Satellite 5 and Satellite 6 infrastructures, there is no suitable migration path between the two versions. The transition tools can migrate kickstart scripts, and these can be used in Satellite 6 Provisioning Templates, which are an approximation of kickstart profiles. Exp o rt in g K ickst art Scrip t s The transition tools extract and export kickstart scripts from kickstart profiles as part of the overall export process on the Satellite 5 server. These scripts are stored in the ki ckstart-scri pts. csv file in the export archive, which is copied to the Satellite 6 server. Imp o rt in g T emp lat e Sn ip p et s When you extract the export archive onto the Satellite 6 server, the hammer i mpo rt command uses the ki ckstart-scri pts. csv file to create template snippets. These snippets are in the form of % pre and % post scripts that you can use with any new kickstart profiles in Satellite 6. Report a bug 3.7.8. T ransit ioning Configurat ion Channels t o Puppet Modules Red Hat Satellite 5 uses configuration channels to support configuration file management. Configuration channels are collections of configuration entries, which in turn specify files and values that Satellite 5 applies to systems that are registered to it. Configuration channels support the upload of flat files for delivery to associated systems. Satellite 6 uses Puppet to provide improved configuration management; consequently, part of the transition process requires that configuration channels be converted into a single Puppet module. The export process on Satellite 5 includes the latest revision of all configuration files. The import process uses this information to perform the following tasks: 36 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 Generate Puppet modules for each Satellite 5 configuration channel. Map any Satellite 5 macros in the configuration files to whatever Puppet facts are found. Build the modules. Create a Satellite 6 repository for each configuration channel, and a product to hold those repositories. Upload the built Puppet modules into Satellite 6. The following table describes the current mapping between Satellite 5 substitution macros and Puppet facts. T ab le 3.1. Map p in g o f Sat ellit e 5 Macro s t o Sat ellit e 6 ( Pu p p et ) Fact s Sat ellit e 5 Macro Pu p p et Fact rhn.system.sid rhn.system.profile_name rhn.system.description rhn.system.hostname rhn.system.ip_address rhn.system.custom_info(key_name) rhn.system.net_interface.ip_address(eth_device) rhn.system.net_interface.netmask(eth_device) rhn.system.net_interface.broadcast(eth_device) rhn.system.net_interface.hardware_address(eth _device) rhn.system.net_interface.driver_module(eth_devi ce) None None None FQD N or host name ipaddress None ipaddress_{NETWORK INTERFACE} netmask_{NETWORK INTERFACE} None macaddress_{NETWORK INTERFACE} None T ran sit io n in g C o n f ig u rat io n C h an n els t o Pu p p et Mo d u les The following example illustrates a simple use case for transitioning configuration channels to Puppet modules. Examp le 3.13. T ran sit io n in g C o n f ig u rat io n C h an n els an d Files t o Pu p p et Mo d u les # hammer import config-file --csv-file /tmp/exports/config-fileslatest.csv Writing converted files Building and uploading puppet modules Summary Created 1 puppet file. Created 1 puppet module. Report a bug 3.7.9. T ransit ioning Syst em Profiles t o Cont ent Host s Red Hat Satellite 5 uses System Profiles to store information about the systems (machines) that are registered to it. This includes the operating system version and a list of all packages that are installed on each system. This applies to both bare-metal and virtual machines. 37 Red Hat Sat ellit e 6 .0 T ransit ion G uide In Satellite 6, this information is stored in Content Hosts. Instead of " system" , Satellite 6 uses the term " host" to refer to any machine that is registered to it. Part of the transition process maps Satellite 5 System Profiles to Satellite 6 Content Hosts. A Satellite 6 host is created when an actual system reregisters to Satellite 6 with the consumer ID of the Content Host. Transitioning system profiles is the last step in the transition process prior to actually transitioning your Satellite 5 systems to Satellite 6. You can transition system profiles as part of the hammer i mpo rt al l command, or by specifically importing them, using the hammer i mpo rt al l -enti ti es co ntent-ho st command. B u ild in g t h e Syst em Pro f ile T ran sit io n R PM File Before you can transition your Satellite 5 systems to Satellite 6, you need to build the required RPM file. The hammer i mpo rt al l command displays instructions on how to do this, tailored to your specific environment, after you have successfully transitioned system profiles to content hosts. After you have successfully transitioned your system profiles to content hosts, you should see output similar to the following: Examp le 3.14 . Examp le In st ru ct io n s f o r B u ild in g a Syst em Pro f ile T ran sit io n R PM File To build the system-profile-transition rpm, run: cd /root/rpm-working-dir/SPECS & & rpmbuild -ba --define "_topdir /root/rpm-working-dir" system-profiletransition-myhost.example.com-1410140956-0.0.1.spec Then find your system-profile-transition-myhost.example.com-1410140956 package in /root/rpm-working-dir/RPMS/noarch/ directory. Report a bug 3.7.10. T ransit ioning Syst ems This section covers background information, prerequisites, and assumptions that must be addressed prior to transitioning your client systems. It also covers the actual process for transitioning your Satellite 5 client systems to Satellite 6 client hosts. This process is primarily aimed at customers who have numerous systems currently registered to a Satellite 5 server. The system transition process aims to achieve the following goals: Ensure that each Satellite 5 client is registered to a new Satellite 6 instance, with as much of the existing Satellite 5 setup maintained as possible. Help customers stay in compliance with their Red Hat Enterprise Linux usage. The process removes the Satellite 5 entitlements used by a given system when that system is registered to Satellite 6. Report a bug 3.7 .1 0 .1 . Pre re quisit e s Before you begin the system transition process, ensure that you have each of the following: An existing, up-to-date Satellite 5.6 server. In this example, this system is called " SAT5.6" . 38 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 An existing, up-to-date Red Hat Enterprise Linux client systems registered to SAT5.6. An existing, up-to-date Satellite 6 server. In this example, this system is called " SAT6" . Manifests created for each Organization on SAT5.6, downloaded to username@SAT6:/tmp/manifests, and renamed to ORG_NAME. zi p, to match the names of your organizations. Report a bug 3.7 .1 0 .2 . Assum pt io ns The system migration process makes several assumptions as part of the task of moving your Satellite 5 systems to Satellite 6: The hammer i mpo rt co ntent-ho st command has completed successfully. An RPM file containing a mapping between Satellite 5 SID s and matching Satellite 6 content-host UUID s has been created. The above-mentioned RPM file has been installed on the Satellite 5 server. The sat5to6 package and dependencies have been installed on each client system. This package provides the sat5to 6 command, which performs the following tasks on the system where it is run: Queries its Satellite 5 parent for a consumer ID . Loads the appropriate PEM files onto the client machine, based on the Satellite 5 channels to which the machine is subscribed. Registers the host on which it is run to a specified Satellite 6 server, attaching it to the content host UUID specified by its Satellite 5 parent. Manages the " retired" Satellite 5 profile in one of three ways, as specified by the user: keep: D o nothing. Retain the Satellite 5 profile in its original state. unentitle: Retain the Satellite 5 profile but remove all subscriptions and entitlements (default). purge: D elete the Satellite 5 profile completely. Report a bug 3.7 .1 0 .3. Pe rfo rm ing t he T ransit io n This section describes the actual process for transitioning your Satellite 5 client systems to Satellite 6 client hosts, and updating the subscription configuration accordingly. This section makes the following assumptions: You have successfully used the spacewal k-expo rt command on your Satellite 5 server to export all required entities. You have copied the resulting spacewal k_expo rt. tar. g z file to the /tmp directory on your Satellite 6 server, and extracted it into the same directory. You have successfully run the hammer i mpo rt al l command on the Satellite 6 server, and followed the resulting instructions to build the required RPM file. 39 Red Hat Sat ellit e 6 .0 T ransit ion G uide You have the necessary system transition packages installed on the Satellite 5 server. To ensure these packages are installed, run the following command: # yum install /tmp/system-profile-transition-*.rpm T ran sit io n in g Yo u r Sat ellit e 5 Syst ems t o Sat ellit e 6 This process assumes that your client is already subscribed to the appropriate RHN Tools channel. This channel provides access to the sat5to6 RPM file and its dependencies. For each client that is registered to your Satellite 5 server, run the following commands: 1. Install the sat5to6 package and its dependencies: # yum install sat5to6 2. Install the Public Certificate for Satellite's Certificate Authority. This also configures subscri pti o n-manag er with the correct URL so that the system can properly register via the Satellite 6.x instance. In this example, $FQD N represents the fully qualified domain name of the Satellite or Satellite Capsule. Important Ensure you use HTTP and not HTTPS for this installation; the Satellite 6 CA certificate is not yet installed and so HTTPS will fail. # yum install http://$FQDN/pub/katello-ca-consumerlatest.noarch.rpm 3. Update the yum and openssl packages. # yum update yum openssl 4. Use the sat5to 6 command to register your client to your Satellite 6 instance, and attach it to the content host created for it by the import process. # sat5to6 --registration-state unentitle \ --legacy-user admin --legacy-password password \ --destination-user admin --destination-password changeme 5. Enable the RH-Common repository which contains the katello-agent and puppet packages. # subscription-manager repos --enable=rhel-*-rh-common-rpms 6. Install the katello-agent and puppet packages # yum install katello-agent puppet 7. Configure the g o ferd and puppet services to start on boot. # chkconfig goferd on # chkconfig puppet on 40 Chapt er 3. T ransit ioning from Sat ellit e 5 t o 6 8. Configure puppet with the host name of the Satellite or Satellite Capsule that will manage its configuration. In this example, $FQD N represents the fully qualified domain name of the Satellite or Satellite Capsule. # echo "server=$FQDN" >> /etc/puppet/puppet.conf 9. Restart the g o ferd and puppet services. # service goferd restart # service puppet restart Note As part of the new Satellite 6 installation, the katello-ca-consumer-latest package sets up the CA certificates and default values in the /etc/rhsm/rhsm. co nf file. This enables SSL and also means you do not need to specify the --destination-url parameter as part of the sat5to 6 command. Examp le 3.15. Examp le Sessio n o f a Syst em T ran sit io n The following is an example session of a successful transition of Satellite 5 systems to Satellite 6 hosts. The actual output will vary according to the organization names, system names, and other details of your own environment. # sat5to6 --registration-state=unentitle --legacy-user=admin --legacypassword=password --destination-user=admin --destinationpassword=changeme Org: MY ENGINEERING ORG Environment: Library Retrieving existing legacy subscription information... +-----------------------------------------------------+ System is currently subscribed to these legacy channels: +-----------------------------------------------------+ rhel-x86_64-server-6 +-----------------------------------------------------+ Installing product certificates for these legacy channels: +-----------------------------------------------------+ rhel-x86_64-server-6 Product certificates installed successfully to /etc/pki/product. Attempting to register system to destination server... WARNING This system has already been registered with Red Hat using RHN Classic. Your system is being registered again using Red Hat Subscription Management. Red Hat recommends that customers only register once. 41 Red Hat Sat ellit e 6 .0 T ransit ion G uide To learn how to unregister from either service please consult this Knowledge Base Article: https://access.redhat.com/kb/docs/DOC-45563 The system has been registered with ID: ac063466-0abc-1bb3-abc033abf6c1dd3a Installed Product Current Status: Product Name: Red Hat Enterprise Linux Server Status: Subscribed System 'dhcp1234.example.com' successfully registered. Report a bug 42 Chapt er 4 . Advanced T ransit ioning Chapter 4. Advanced Transitioning This chapter covers some of the more advanced transitioning scenarios that you might encounter as part of your deployment and transition from Satellite 5 to Satellite 6. Each customer is likely to have slightly different configurations; consequently, it is not possible to cover every scenario that might arise. Over time, and with customer feedback and more development, coverage of more transition scenarios may be possible. 4 .1. T ransit ioning APIs Among the many differences between Red Hat Satellite 5 and Satellite 6 are the APIs. Satellite 5 uses an XMLRPC-based API. Satellite 6 uses a REST-based API. This fundamental difference requires that any existing scripts or tools that have been integrated with the Satellite 5 API must be reviewed and at least partially rewritten to call the new Satellite 6 REST APIs. This section provides some comparisons of how to achieve the same use case within each product. This is not designed to be a tutorial in any specific programming language, nor are the scripts secured over HTTPS. They provide a starting point for anyone maintaining Satellite 5 API scripts to start the transition to the Satellite 6 API. Important The Satellite 6 transition tools do not transition Satellite 5 APIs or scripts to Satellite 6. Use this section as a starting point to begin your own transition process. Fu rt h er In f o rmat io n You can find further API documentation at the following locations on your own Satellite servers: Satellite 6: https://satellite6.example.com/apidoc/v2.html Satellite 5: https://satellite5.example.com/rpc/api You can also find the Satellite 5 and Satellite 6 API documentation on the Red Hat Customer Portal: https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/ Report a bug 4 .1.1. Example API Script s The examples in this section cover the following: 1. Systems and hosts in Red Hat Satellite Authenticate and request a list of systems (Satellite 5) or hosts (Satellite 6) available to the user who logged in. 2. Users and Roles a. Authenticate and request a list of all users visible to the user who logged in. b. D elete the exampl e user if it exists. c. Create a new exampl e user and ensure that its role is set to Ad mi ni strato r. 43 Red Hat Sat ellit e 6 .0 T ransit ion G uide This section provides a total of five different ways to achieve the same result; two examples for Satellite 5 and three examples for Satellite 6. A Satellite 5 Python script A Satellite 6 Python script A Satellite 6 Ruby script A Satellite 5 spacecmd example A Satellite 6 hammer example Note The spacecmd command is not a supported feature in Satellite 5.6. It is planned for release and support with Satellite 5.7, and is shown here for the sake of completeness. A total of 10 examples are provided. The first examples cover the simpler use cases of listing systems and hosts, followed by the more complex examples covering users and roles. Report a bug 4 .1 .1 .1 . List ing Syst e m s and Ho st s The examples in this section describe different ways to list systems and hosts available to the user who logged in. U sin g Pyt h o n t o List Availab le Syst ems o n Sat ellit e 5 This example uses a Python script to connect to Satellite 5, authenticate, and retrieve a list of available systems. # !/usr/bin/python i mport xmlrpclib # Define Satellite location and login details ATELLITE_URL = "http://localhost/rpc/api" S S ATELLITE_LOGIN = "admin" S ATELLITE_PASSWORD = "password" c lient = xmlrpclib.Server(SATELLITE_URL, verbose=0) # Authenticate and get session key key = client.auth.login(SATELLITE_LOGIN, SATELLITE_PASSWORD) # Get list of systems available to user ist = client.system.listSystems(key) l for system in list: print system.get('id') print system.get('name') # Logout lient.auth.logout(key) c 44 Chapt er 4 . Advanced T ransit ioning U sin g Pyt h o n t o List Availab le H o st s o n Sat ellit e 6 This example uses a Python script to connect to Satellite 6, authenticate, and retrieve a list of available hosts. # !/usr/bin/python i mport json i mport requests # Define Satellite location and login details AT_API = "https://localhost/api/v2/" S U SERNAME = "admin" P ASSWORD = "changeme" S SL_VERIFY = False d ef get_json(location): """ Performs a GET using the passed URL location """ r = requests.get(location, auth=(USERNAME, PASSWORD), verify=SSL_VERIFY) return r.json() d ef main(): # List all hosts available to the user hosts = get_json(SAT_API + "hosts/") # Pretty Print the returned JSON of Hosts print json.dumps(hosts, sort_keys=True, indent=4) i f __name__ == "__main__": m ain() U sin g R u b y t o List Availab le H o st s o n Sat ellit e 6 This example uses a Ruby script to connect to Satellite 6, authenticate, and retrieve a list of available hosts. # !/usr/bin/ruby193-ruby r equire 'json' r equire 'rest-client' u rl = 'https://localhost/api/v2/' $ username = 'admin' $ password = 'changeme' d ef get_json(location) response = RestClient::Request.new( :method => :get, :url => location, :user => $username, 45 Red Hat Sat ellit e 6 .0 T ransit ion G uide :password => $password, :headers => { :accept => :json, :content_type => :json } ).execute results = JSON.parse(response.to_str) e nd h osts = get_json(url+"hosts/") # puts JSON.pretty_generate(hosts) p uts "Hosts within Satellite are:" h osts['results'].each do |name| puts name['name'] e nd e xit() U sin g t h e C o mman d Lin e t o List Availab le Syst ems o n Sat ellit e 5 Use the following command format to list available systems on Satellite 5: # spacecmd -u username -p password system_list An example session might appear as follows: # spacecmd -u admin -p password system_list INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin test_02.example.com U sin g t h e C o mman d Lin e t o List Availab le H o st s o n Sat ellit e 6 Use the following command format to list available hosts on Satellite 6: # hammer host list An example session might appear as follows: # hammer host list [Foreman] password for admin: ---|-----------------|-------------------|------------|--------------|----------------ID | NAME | OPERATING SYSTEM | HOST GROUP | IP | MAC ---|-----------------|-------------------|------------|--------------|----------------1 | test.example.com | RHEL Server 6.5 | | 10.34.34.235 | e4:1f:13:6b:ed:0c Report a bug 4 .1 .1 .2 . De le t ing and Cre at ing Use rs 46 Chapt er 4 . Advanced T ransit ioning The examples in this section describe different ways to locate, create, and delete users. U sin g Pyt h o n t o Man ag e U sers o n Sat ellit e 5 This example uses a Python script to connect to and authenticate against a Satellite 5 server. It then goes on to search for a specific user (exampl e), to delete that user if it exists, and then recreate it with Administrator privileges. # !/usr/bin/python i mport xmlrpclib # Define Satellite location and login details ATELLITE_URL = "http://localhost/rpc/api" S S ATELLITE_LOGIN = "admin" S ATELLITE_PASSWORD = "password" c lient = xmlrpclib.Server(SATELLITE_URL, verbose=0) # Authenticate and get session key key = client.auth.login(SATELLITE_LOGIN, SATELLITE_PASSWORD) # Get list of users ist = client.user.list_users(key) l p rint "Existing users in Satellite:" for user in list: print user.get('login') # Look for user example and if found, delete the user for user in list: if user.get('login') == 'example': deleteuser = client.user.delete(key, 'example') if deleteuser == 1: print "User example deleted" # Create a user called example reateuser = client.user.create(key, 'example', 'password', 'Example', c 'User', "root@ localhost") i f createuser == 1: print "User example created" # Admin Org Admin role to the example user adminrole = client.user.addRole(key, 'example', 'org_admin') if adminrole == 1: print "Made example an Org Admin" # Logout lient.auth.logout(key) c U sin g Pyt h o n t o Man ag e U sers o n Sat ellit e 6 This example performs the same task as the previous example. That is, it uses a Python script to connect to and authenticate against a Satellite 6 server, search for a specific user, delete that user if it exists, and then recreate it with Administrator privileges. # !/usr/bin/python 47 Red Hat Sat ellit e 6 .0 T ransit ion G uide i mport json i mport requests # Define Satellite location and login details AT_API = "https://localhost/api/v2/" S P OST_HEADERS = {'content-type': 'application/json'} U SERNAME = "admin" P ASSWORD = "changeme" S SL_VERIFY = False d ef get_json(location): """ Performs a GET using the passed URL location """ r = requests.get(location, auth=(USERNAME, PASSWORD), verify=SSL_VERIFY) return r.json() d ef post_json(location, json_data): """ Performs a POST and passes the data to the URL location """ result = requests.post( location, data=json_data, auth=(USERNAME, PASSWORD), verify=SSL_VERIFY, headers=POST_HEADERS) return result.json() d ef delete_json(location): """ Performs a DELETE and passes the id to the URL location """ result = requests.delete( location, auth=(USERNAME, PASSWORD), verify=SSL_VERIFY) return result.json() d ef main(): # List all users within the Satellite users = get_json(SAT_API + "users/") #print json.dumps(users, indent=4) print "Users known are:" for login in users['results']: print login['login'] 48 # Look for user example and if found, delete the user for delete in users['results']: if delete['login'] == 'example': id = delete ['id'] Chapt er 4 . Advanced T ransit ioning id = str(id) delete = delete_json(SAT_API + "/users/" + id) #print json.dumps(delete, indent=4) print "User example deleted" # Create a user called example as admin role createuser = post_json(SAT_API + "/users/", json.dumps({ "mail": "root@ localhost", "firstname": "Example", "lastname": "User", "login": "example", "password": "redhat", "admin": 'true', "auth_source_id": 1 })) #print json.dumps(createuser, indent=4) print "Admin user example created" i f __name__ == "__main__": main() U sin g R u b y t o Man ag e U sers o n Sat ellit e 6 This example uses Ruby to perform the same task as the previous examples. # !/usr/bin/ruby193-ruby r equire 'json' r equire 'rest-client' u rl = 'https://localhost/api/v2/' $ username = 'admin' $ password = 'changeme' d ef get_json(location) response = RestClient::Request.new( :method => :get, :url => location, :user => $username, :password => $password, :headers => { :accept => :json, :content_type => :json } ).execute results = JSON.parse(response.to_str) e nd d ef post_json(location, json_data) response = RestClient::Request.new( :method => :post, :url => location, :user => $username, :password => $password, :headers => { :accept => :json, :content_type => :json}, :payload => json_data ).execute results = JSON.parse(response.to_str) e nd d ef delete_json(location) response = RestClient::Request.new( 49 Red Hat Sat ellit e 6 .0 T ransit ion G uide :method => :delete, :url => location, :user => $username, :password => $password, :headers => { :accept => :json, :content_type => :json } ).execute results = JSON.parse(response.to_str) e nd # List all users within the Satellite sers = get_json(url+"users/") u # puts JSON.pretty_generate(users) p uts "Users known are:" u sers['results'].each do |name| puts name['login'] e nd # Look for user example and if found, delete the user sers['results'].each do |name| u if name['login'] == 'example' id = name['id'] delete = delete_json(url+"users/"+id.to_s) #puts JSON.pretty_generate(delete) puts "User example deleted" end e nd # Create a user called example as admin role ata = JSON.generate({ :mail => "root@ localhost", :firstname => d "Example", :lastname => "User", :login => "example", :password => "password", :admin => 'true', :auth_source_id => 1}) c reateuser = post_json(url+"users/", data) # puts JSON.pretty_generate(createuser) p uts "Admin user example created" e xit() U sin g t h e C o mman d Lin e t o Man ag e U sers o n Sat ellit e 5 This example uses the spacecmd command to perform the same task as the previous examples. Use the following command format: # # # # spacecmd spacecmd spacecmd spacecmd -u -u -u -u admin admin admin admin -p -p -p -p password password password password user_list user_delete example user_create user_addrole example org_admin An example session might appear as follows: # spacecmd -u admin -p password user_list INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin 50 Chapt er 4 . Advanced T ransit ioning admin example # spacecmd -u admin -p password user_delete example INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin Delete this user [y/N]: y # spacecmd -u admin -p password user_list INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin admin # spacecmd -u admin -p password user_create INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin Username: example First Name: Example Last Name: User Email: root@ localhost PAM Authentication [y/N]: n Password: Repeat Password: # spacecmd -u admin -p password user_list INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin admin example # spacecmd -u admin -p password user_addrole example org_admin INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin # spacecmd -u admin -p password user_details example INFO: Spacewalk Username: admin INFO: Connected to https://localhost/rpc/api as admin Username: example First Name: Example Last Name: User Email Address: root@ localhost Organization: MY ORG Last Login: Created: 8/19/14 8:42:52 AM EDT Enabled: True Roles ----activation_key_admin channel_admin config_admin monitoring_admin org_admin system_group_admin 51 Red Hat Sat ellit e 6 .0 T ransit ion G uide U sin g t h e C o mman d Lin e t o Man ag e U sers o n Sat ellit e 6 This example uses the hammer command to perform the same task as the previous examples. Use the following command format: # hammer shell > user list > user delete --id 4 --login example > user create --admin true --firstname Example --lastname User --login example --mail root@ localhost --password redhat --auth-source-id 1 An example session might appear as follows: # hammer shell [Foreman] password for admin: Welcome to the hammer interactive shell Type 'help' for usage information hammer> user list ---|---------|--------------|--------------ID | LOGIN | NAME | EMAIL ---|---------|--------------|--------------4 | example | Example User | root@ localhost 3 | admin | Admin User | root@ localhost ---|---------|--------------|--------------hammer> user delete --id 4 --login example User deleted hammer> user list ---|-------|------------|--------------ID | LOGIN | NAME | EMAIL ---|-------|------------|--------------3 | admin | Admin User | root@ localhost ---|-------|------------|--------------hammer> user create --admin true --firstname Example --lastname User -login example --mail root@ localhost --password redhat --auth-source-id 1 User created hammer> user list ---|----------|--------------|--------------ID | LOGIN | NAME | EMAIL ---|----------|--------------|--------------3 | admin | Admin User | root@ localhost 5 | example | Example User | root@ localhost ---|----------|--------------|--------------hammer> Report a bug 4 .1.2. Sat ellit e 6 API T ips This section provides some general tips to help optimize your experience with the Satellite 6 API. B ro wsin g t h e Sat ellit e 6 API 52 Chapt er 4 . Advanced T ransit ioning If you have already logged in to the Satellite 6 WebUI, you can see the default results of GET requests at /api/v2/<API-NAME>/. For example: https://satellite6.example.com/api/v2/users/ https://satellite6.example.com/api/v2/users/3 U sin g Sat ellit e 6 API R eq u est s o n t h e C o mman d Lin e You can use the curl command to interact with the Satellite 6 API. For example: Examp le 4 .1. Examp le G ET R eq u est s Example GET requests to list organizations, hosts, and users within Satellite 6. # SATUSER=admin # SATPASS='changeme' # SATURL="https://localhost" # curl -k -u $SATUSER:$SATPASS -X GET -H 'Accept: $SATURL/api/v2/organizations | json_reformat # curl -k -u $SATUSER:$SATPASS -X GET -H 'Accept: $SATURL/api/v2/hosts | json_reformat # curl -k -u $SATUSER:$SATPASS -X GET -H 'Accept: $SATURL/api/v2/users | json_reformat # curl -k -u $SATUSER:$SATPASS -X GET -H 'Accept: $SATURL/api/v2/users/3 | json_reformat application/json' application/json' application/json' application/json' Examp le 4 .2. Examp le D ELET E R eq u est An example D ELETE request to remove an existing user with known ID " 9" based on a previous list of users. # curl -k -u $SATUSER:$SATPASS -X DELETE -H 'Accept: application/json' $SATURL/api/v2/users/9 | json_reformat Examp le 4 .3. Examp le PO ST R eq u est An example POST request to create a new user called exampl e, passing the true flag to enable administrator privileges for the user. # curl -k -u $SATUSER:$SATPASS -X POST -d '{ "mail": "root@ localhost", "firstname": "Example", "lastname": "User", "login": "example", "password": "redhat", "admin": 'true', "auth_source_id": 1 }' -H 'Accept: application/json' -H 'Content-Type: application/json' $SATURL/api/v2/users | json_reformat Examp le 4 .4 . Examp le PU T R eq u est An example PUT request to change the email address of the existing exampl e user with known ID " 10" to example@ localhost. 53 Red Hat Sat ellit e 6 .0 T ransit ion G uide # curl -k -u $SATUSER:$SATPASS -X PUT -d '{ "id": 10, "mail": "example@ localhost" }' -H 'Accept: application/json' -H 'Content-Type: application/json' $SATURL/api/v2/users/10 | json_reformat Report a bug 54 G lossary of T erms Glossary of Terms The following terms are used throughout this document. Familiarize yourself with these terms to help your understanding of Red Hat Satellite 6. Act ivat io n K ey A registration token used in a Kickstart file to control actions at registration. These are similar to Activation Keys in Red Hat Satellite 5, but provide a subset of features because Puppet controls package and configuration management after registration. Ap p licat io n Lif e C ycle En viro n men t An Application Life Cycle Environment represents a step, or stage, in a promotion path through the Software D evelopment Life Cycle (SD LC). Promotion paths are also known as development paths. Content such as packages and Puppet modules move through life cycle environments by publishing and promoting Content Views. All Content Views have versions, which means you can promote a specific version through a typical promotion path; for example, from development to test to production. Channel cloning implements this concept in Red Hat Satellite 5. At t ach The process of associating a Subscription to a Host that provides access to RPM content. C ap su le A Capsule is an additional server that can be used in a Red Hat Satellite 6 deployment to facilitate content federation and distribution in addition to other localized services (Puppet Master, D HC P , D NS, T FT P , and more). C o mp u t e Pro f ile Compute Profiles specify default attributes for new virtual machines on a compute resource. C o mp u t e R eso u rce A Compute Resource is virtual or cloud infrastructure, which Red Hat Satellite 6 uses for deployment of hosts and systems. Examples include Red Hat Enterprise Virtualization Manager, OpenStack, EC2, and VMWare. C o n t en t Content includes software packages (RPM files) and Puppet modules. These are synchronized into the Library and then promoted into Life Cycle Environments using Content Views so that they can be consumed by Hosts. C o n t en t D elivery N et wo rk ( C D N ) The Content Delivery Network (CDN) is the mechanism used to deliver Red Hat content in a geographically co-located fashion. For example, content that is synchronized by a Satellite in Europe pulls content from a source in Europe. C o n t en t View A Content View is a definition of content that combines products, packages, and Puppet modules with capabilities for intelligent filtering and creating snapshots. Content Views are a refinement of the combination of channels and cloning from Red Hat Satellite 5. E xt ern al N o d e C lassif ier 55 Red Hat Sat ellit e 6 .0 T ransit ion G uide An External Node Classifier is a Puppet construct that provides additional data for a Puppet Master to use when configuring Hosts. Red Hat Satellite 6 acts as an External Node Classifier to Puppet Masters in a Satellite deployment. F act er Facter is a program that provides information (facts) about the system on which it is run; for example, Facter can report total memory, operating system version, architecture, and more. Puppet modules enable specific configurations based on host data gathered by Facter. H ammer Hammer is a command line tool for Red Hat Satellite 6. Use Hammer to manage Red Hat Satellite 6 as a standard CLI, for scripts, and also through an interactive shell. H iera Hiera is a key/value look-up tool for configuration data which allows keeping site-specific data out of puppet manifests. H o st A Host refers to any system, either physical or virtual, that Red Hat Satellite 6 manages. H o st C o llect io n A Host Collection is equivalent to a Satellite 5 System Group, that is, a user defined group of one or more Hosts. H o st G ro u p A Host Group is a template for building a Host. This includes the content view (which defines the available RPM files and Puppet modules) and the Puppet classes to apply (which ultimately determines the software and configuration). L o cat io n A Location is collection of default settings that represent a physical place. These can be nested so that you can set up an hierarchical collection of locations. For example, you can set up defaults for " Middle East" , which are refined by " Tel Aviv" , which are further refined by " D ata Center East" , and then finally by " Rack 22" . L ib rary The Library contains every version, including the latest synchronized version, of the software that the user will ever deploy. For an Information Technology Infrastructure Library (ITIL) [1] organization or department, this is the D efinitive Media Library [2] (previously named the D efinitive Software Library). M an if est A Manifest transfers subscriptions from the Customer Portal to Red Hat Satellite 6. This is similar in function to certificates used with Red Hat Satellite 5. For more information about certificates and subscription types, see: RHN Classic, Red Hat Satellite, and Channel Entitlements [3] The Structure of Satellite Certificates (Classic Style of Certificates) [4] 56 G lossary of T erms O rg an iz at io n An Organization is an isolated collection of systems, content, and other functionality within a Satellite 6 deployment. P ermissio n The ability to perform an action. P ro d u ct A collection of content repositories. Products can be Red Hat products or newly-created products made up of software and configuration content. P ro mo t e The act of moving a content view comprised of software and configuration content from one Application Life Cycle Environment to another, such as moving from development to QA to production. P ro visio n in g T emp lat e A Provisioning Template is a user-defined template for Kickstart files, snippets, and other provisioning actions. In Satellite 6 they provide similar functionality to Kickstart Profiles and cobbler Snippets in Red Hat Satellite 5. P u lp N o d e A Pulp Node is a Capsule Server component that mirrors content. This is similar to the Red Hat Satellite 5 Proxy. The main difference is that content can be staged on the Pulp Node before it is used by a Host. P u p p et Ag en t The Puppet Agent is an agent that runs on a Host and applies configuration changes to that Host. P u p p et Mast er A Puppet Master is a Capsule Server component that provides Puppet manifests to Hosts for execution by the Puppet Agent. R ep o sit o ry A Repository provides storage for a collection of content. For example, a YUM repository or a Puppet repository. R o le A Role specifies a collection of permissions that are applied to a set of resources, such as Hosts. S mart Pro xy A Smart Proxy is a Capsule Server component that can integrate with external services, such as D NS or D HC P . S mart Variab le A Smart Variable is a configuration value that controls how a Puppet Class behaves. This can be set on a Host, a Host Group, an Organization, or a Location. 57 Red Hat Sat ellit e 6 .0 T ransit ion G uide S t an d ard O p erat in g En viro n men t ( SO E) A Standard Operating Environment (SOE) is a controlled version of the operating system on which applications are deployed. S u b scrip t io n Subscriptions are the means by which you receive content and service from Red Hat. S yn ch ro n iz in g Synchronizing refers to mirroring content from external resources into the Red Hat Satellite 6 Library. S yn ch ro n iz at io n Plan s Synchronization Plans provide scheduled execution of content synchronization. U ser G ro u p A User Group is a collection of roles which can be assigned to a collection of users. This is similar to a Role in Red Hat Satellite 5. U ser A user is anyone registered to use Red Hat Satellite. Authentication and authorization is possible through built-in logic, through external LD AP resources, or with Kerberos. Report a bug [1] http ://en.wikip ed ia.o rg /wiki/Info rmatio n_Tec hno lo g y_Infras truc ture_Lib rary [2] http ://en.wikip ed ia.o rg /wiki/Definitive_Med ia_Lib rary [3] http s ://ac c es s .red hat.c o m/s ite/d o c umentatio n/enUS/Red _Hat_Sub s c rip tio n_Manag ement/1/html/Mig rating RHN/s at-c erts .html [4] http s ://ac c es s .red hat.c o m/s ite/d o c umentatio n/enUS/Red _Hat_Sub s c rip tio n_Manag ement/1/html/Sub s c rip tio n_Co nc ep ts _and _Wo rkflo ws /ind ex.html#s ub s c r-leg ac y 58 Revision Hist ory Revision History R evisio n 2- 02 Fri 21 N o v 2014 Publishing book for the November Async. At h en e C h an R evisio n 2- 01 Wed 12 N o v 2014 Updated sections on transitioning hosts. D avid O ' B rien R evisio n 1- 0 Wed 10 Sep 2014 Red Hat Satellite 6.0 GA Release D avid O ' B rien R evisio n 0- 07 T u e 9 Sep 2014 D avid O ' B rien Update section on synchronizing repositories to optimize transition process. BZ 1138755: Update transition requirements. BZ 1136200: Add example API scripts. BZ 1133474: Improve documentation for hammer i mpo rt al l . BZ 1133472: Add section " transitioning kickstart scripts to template-snippets" . BZ 1133471: Add section " importing configuration files to puppet modules" . BZ 1133470: Add section " importing system profiles to content-hosts" . R evisio n 0- 06 Fri 5 Sep 2014 D avid O ' B rien Add sections covering transition of systems from Satellite 5 to Satellite 6. R evisio n 0- 05 Fri 29 Au g 2014 D avid O ' B rien Completed initial sections covering all aspects of export and import from Satellite 5 to Satellite 6. R evisio n 0- 04 Fri 8 Au g 2014 D avid O ' B rien Added first draft of how to use export and import tools to transition entities. R evisio n 0- 03 Wed 9 Ju l 2014 D avid O ' B rien Added link to external PD F file with transition tools and use-case scenarios. R evisio n 0- 02 T u e 1 Ju l 2014 Edited content specification details. At h en e C h an R evisio n 0- 01 Initial Book Creation. At h en e C h an Wed 25 Ju n 2014 59