{"id":3279,"date":"2022-09-05T07:00:00","date_gmt":"2022-09-05T05:00:00","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=3279"},"modified":"2022-09-21T20:27:10","modified_gmt":"2022-09-21T18:27:10","slug":"red-hat-enterprise-linux-registrieren-und-system-purpose-konfigurieren-mit-ansible","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/red-hat-enterprise-linux-registrieren-und-system-purpose-konfigurieren-mit-ansible\/","title":{"rendered":"Red Hat Enterprise Linux registrieren und System Purpose konfigurieren mit Ansible"},"content":{"rendered":"\n<p>Um die Paketquellen von Red Hat f\u00fcr Red Hat Enterprise Linux (RHEL) nutzen zu k\u00f6nnen, wird eine sogenannte <a href=\"https:\/\/de.wikipedia.org\/wiki\/Subskription#Software\">Software-Subskription<\/a> ben\u00f6tigt. Diese bestimmt, auf welche Paketquellen ein System zugreifen und deren Inhalt konsumieren kann.<\/p>\n\n\n\n<p>Das System der Subskriptionen befindet sich im Umbruch (siehe <a href=\"#quellen-links\">[1]<\/a>). In diesem Artikel beschreibe ich, wie es bisher war, was sich durch die Aktivierung von <em>Simple Content Access<\/em> (SCA) <a href=\"#quellen-links\">[2]<\/a> \u00e4ndert und wie ich aktuell meine RHEL-Systeme registriere und deren System Purpose konfiguriere.<\/p>\n\n\n\n<p>Der Text vermittelt dabei Wissen zum <a href=\"#rhsm\"><em>Red Hat Subscription Management<\/em> <em>(RHSM<\/em>)<\/a>, <em><a href=\"#sca\">Simple Content Access (SCA)<\/a><\/em>, <a href=\"#swatch\">Subscription Watch (SWatch)<\/a>, dem <em><a href=\"#system-purpose\">System Purpose<\/a><\/em> und verlinkt relevante Quellen.<\/p>\n\n\n\n<p>Aus Transparenz-Gr\u00fcnden m\u00f6chte ich an dieser Stelle darauf hinweisen, dass ich Mitglied der Red Hat Accelerators bin (vgl. <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/zu-meiner-person\/\">hier<\/a>). Dieser Text spiegelt ausschlie\u00dflich meine pers\u00f6nliche Meinung wider.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rhsm\">Subskriptions-Verwaltung ohne SCA<\/h2>\n\n\n\n<p>Eine Subskription berechtigt zur Nutzung bestimmter Paketquellen von Red Hat. Sie umfasst in der Regel eine gewisse Menge sogenannter <em>Entitlements<\/em>. Diese bestimmen, wie viele Systeme von einer Subskription abgedeckt werden.<\/p>\n\n\n\n<p>Ein Beispiel: Eine Subskription f\u00fcr &#8222;Red Hat Enterprise Linux Server, Standard (Physical or Virtual Nodes)&#8220; beinhaltet zwei Entitlements. Damit lassen  sich ein physischer Server mit bis zu zwei CPU-Sockeln oder zwei virtuelle Maschinen (mit einer beliebigen Anzahl CPUs) zur Nutzung der Paketquellen berechtigen.<\/p>\n\n\n\n<p>In der Regel werden RHEL-Systeme \u00fcber den <code>subscription-manager<\/code> beim Red Hat Subscription Management (RHSM) oder einem Satellite Server registriert. Anschlie\u00dfend werden sie mit einer Subskription verkn\u00fcpft. Wie man dies l\u00f6sen kann, habe ich 2019 in dem Artikel <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/rhel-system-registrieren-und-subskription-hinzufuegen\/\" data-type=\"post\" data-id=\"2259\">RHEL-System registrieren und Subskription hinzuf\u00fcgen<\/a> beschrieben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vorteile des RHSM<\/h3>\n\n\n\n<p>Das RHSM im Customer Portal bietet eine gute \u00dcbersicht \u00fcber die vorhandenen Vertr\u00e4ge, die Subskriptionen, deren Laufzeiten und verkn\u00fcpfte Systeme. Man sieht hier auf einen Blick, ob man ausreichend Subskription hat, um all seine Systeme damit abdecken zu k\u00f6nnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nachteile des RHSM<\/h3>\n\n\n\n<p>Um ein System beim RHSM zu registrieren und mit einer Subskription zu verkn\u00fcpfen, muss das System eine Verbindung ins Internet zum RHSM-Dienst aufbauen. Dies ist im Datacenter h\u00e4ufig nicht erw\u00fcnscht. F\u00fcr Systeme ohne Zugang zum Internet gibt es die optionale Offline-Registrierung [<a href=\"#quellen-links\">3<\/a>], welche jedoch etwas umst\u00e4ndlich ist und bei vielen Offline-Systemen nicht skaliert.<\/p>\n\n\n\n<p>Registriert man die Systeme nicht, ist man dennoch zu einer ordentlichen Buchf\u00fchrung verpflichtet, um sicherzustellen, dass man nicht dauerhaft mehr Systeme einsetzt, als durch vorhandene Subskriptionen abgedeckt sind.<\/p>\n\n\n\n<p>L\u00e4uft ein Subskriptionsvertrag ab, werden die Entitlements ung\u00fcltig. Die damit verkn\u00fcpften Systeme fangen an, sich beim Update-Versuch dar\u00fcber zu beschweren und verweigern den Zugriff auf die Paketquellen. Das ist besonders \u00e4rgerlich, weil es nach meiner Erfahrung bei jeder Vertragsverl\u00e4ngerung passiert. Denn tats\u00e4chlich wird der Vertrag nicht verl\u00e4ngert. Es gibt einen neuen Vertrag mit der entsprechenden Anzahl Subskriptionen. Diese m\u00fcssen dann manuell neu verkn\u00fcpft werden, was jedes Mal manuellen Pflegeaufwand bedeutet.<\/p>\n\n\n\n<p>Vermutlich um dem zuvor genannten \u00c4rgernis entgegenzuwirken hat Red Hat die Funktion <em>auto-attach<\/em> entwickelt. Wird die mit einem registrierten System verkn\u00fcpfte Subskription ung\u00fcltig sucht <em>auto-attach<\/em> automatisch nach einer geeigneten freien Subskription und verkn\u00fcpft diese mit dem jeweiligen System. Nun mag sich manch einer Fragen, wie <em>auto-attach<\/em> wohl entscheidet, wenn es mehrere Subskriptionen gibt, die prinzipiell geeignet sind. Nach meiner Erfahrung w\u00e4hlt <em>auto-attach<\/em> mit einer Wahrscheinlichkeit von &gt;95 % die am wenigsten geeignete Subskription aus. In meinen Augen nervt es mehr, als das es hilft.<\/p>\n\n\n\n<p>Das Verkn\u00fcpfen von Subskriptionen ist f\u00fcr die Buchf\u00fchrung praktisch, f\u00fcr den Betrieb eher nervig. Teilweise st\u00f6rt es sogar Betriebsabl\u00e4ufe, wenn z.B. Updates vor\u00fcbergehend nicht installiert werden k\u00f6nnen. Um dem zu begegnen, hat Red Hat Simple Content Access (SCA) [<a href=\"#quellen-links\">2<\/a>] geschaffen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sca\">Was \u00e4ndert sich durch SCA?<\/h2>\n\n\n\n<p>Wird SCA im RHSM aktiviert, m\u00fcssen Subskriptionen nicht mehr mit Systemen verkn\u00fcpft werden. RHEL-Systeme, die im RHSM registriert sind, erkennen dies und setzen f\u00fcr den Zugriff auf die Paketquellen kein Entitlement mehr voraus.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vorteile<\/h3>\n\n\n\n<p>Der Betrieb wird vereinfacht. Ein System muss nur noch registriert werden und kann sofort auf Inhalte der diversen Paketquellen zugreifen.<\/p>\n\n\n\n<p>Unterbrechungen im Betriebsablauf bei Ablauf einer Subskription geh\u00f6ren der Vergangenheit an.<\/p>\n\n\n\n<p>Auch <em>auto-attach<\/em> bereitet nun keinen \u00c4rger mehr.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nachteile<\/h3>\n\n\n\n<p>Die Buchf\u00fchrung wird aufw\u00e4ndiger, da RHSM mit aktivierten SCA nur noch begrenzt daf\u00fcr taugt. Man muss sich nun einen anderen Weg \u00fcberlegen, wie man den \u00dcberblick beh\u00e4lt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"swatch\">Subscription Watch<\/h2>\n\n\n\n<p>Subscription Watch [<a href=\"#quellen-links\">4, 5<\/a>] ist ein SaaS-Dienst in der Hybrid Cloud Console [<a href=\"#quellen-links\">6<\/a>], welcher den Kunden dabei unterst\u00fctzen soll, im Blick zu behalten, wie viele Subskriptionen er besitzt und wie viele er konsumiert. Dabei ist es m\u00f6glich, mehr zu konsumieren, als man besitzt. Wird dies angezeigt, kann man handeln und fehlende Subskriptionen nachkaufen.<\/p>\n\n\n\n<p>Leider hat die Sache einen Haken. Es funktioniert nicht richtig. In meinem Fall kommt eine Mischung aus kostenpflichtigen Subskriptionen und der Developer Subscription for Teams zum Einsatz. Im Subscription Watch gibt es einen Bug, durch den mir angezeigt wird, ich w\u00fcrde mehr Subskriptionen nutzen, als ich im Bestand habe, obwohl dies nicht der Fall ist.<\/p>\n\n\n\n<p>Ich habe zu dem Fall ein Support-Ticket, in dem das Verhalten reproduziert werden konnte und der Fehler best\u00e4tigt wurde. Nur eine L\u00f6sung gibt es noch nicht. Leider ist Subscription Watch im aktuellen Status damit nutzlos f\u00fcr mich.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"system-purpose\">System Purpose<\/h2>\n\n\n\n<p>Was der System Purpose ist, wird im Detail in [<a href=\"#quellen-links\">1<\/a>] und [<a href=\"#quellen-links\">7<\/a>] beschrieben. Red Hat empfiehlt den System Purpose zu pflegen, um u.a. Subscription Watch dabei zu helfen, die konsumierten Inhalte korrekt zu z\u00e4hlen. Das hat folgenden Hintergrund.<\/p>\n\n\n\n<p>Sowohl mit der &#8222;Red Hat Enterprise Linux Server, Standard (Physical or Virtual Nodes)&#8220; Subskription als auch mit der &#8222;Developer Subscription for Teams&#8220; darf man das RHEL-8-BaseOS-Repo nutzen. Gez\u00e4hlt werden soll in Subscription Watch jedoch nur die kostenpflichtige Subskription (Erstgenannte). Mit Hilfe des System Purpose gibt man an, ob es sich um ein Produktionssystem oder ein Test-\/Entwicklungs-System handelt und steuert dar\u00fcber, ob ein System in Subscription Watch gez\u00e4hlt wird. <\/p>\n\n\n\n<p>Funktionieren tut das Ganze leider (noch) nicht. Unter anderem ist der zuvor erw\u00e4hnte Bug daf\u00fcr verantwortlich. Ich pflege den System Purpose jedoch trotzdem, in der Hoffnung, dass es in der Zukunft funktionieren wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wie registriere ich meine Systeme heute?<\/h2>\n\n\n\n<p>Ich habe dazu eine kleine Ansible-Rolle erstellt, welche folgende Struktur besitzt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>roles\/register_syspurpose\/\n\u251c\u2500\u2500 defaults\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\n\u251c\u2500\u2500 README.md\n\u2514\u2500\u2500 tasks\n    \u2514\u2500\u2500 main.yml<\/code><\/pre>\n\n\n\n<p>Das Readme.md enth\u00e4lt eine Beschreibung der notwendigen Variablen und ein Beispiel-Playbook, wie man diese Rolle nutzt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>register_syspurpose\n===================\n\nRegister host to RHSM and set System Purpose.\n\nRequirements\n------------\n\n * &#91;community.general collection](https:\/\/galaxy.ansible.com\/community\/general)\n\nYou might already have installed this collection if you are using Ansible Engine 2.9 or the `ansible` package. It is not included in `ansible-core`. To check whether it is installed, run `ansible-galaxy collection list`.\n\nTo install it, use: `ansible-galaxy collection install community.general`.\n\nTo use it in a playbook, specify: `community.general.redhat_subscription`.\n\nRole Variables\n--------------\n\n```yaml\nregister_syspurpose_activationkey: register-syspurpose # activationkey for access.redhat.com or Satellite\nregister_syspurpose_org_id: 123456 # Org ID on access.redhat.com or Satellite\nregister_syspurpose_role: \"Red Hat Enterprise Linux Server\"\n# possible values are:\n# Red Hat Enterprise Linux Server\n# Red Hat Enterprise Linux Workstation\n# Red Hat Enterprise Linux Compute Node\n\nregister_syspurpose_sla: \"Self-Support\"\n# possible values are:\n# Premium\n# Standard\n# Self-Support\n\nregister_syspurpose_usage: \"Development\/Test\"\n# possible values are:\n# Development\/Test\n# Disaster Recovery\n# Production\n```\n\nI got these values from the KB &#91;syspurpose_usage: \"Development\/Test\"](https:\/\/access.redhat.com\/articles\/5713081).\nThere might be other possible values out there. In case you know some valid\naddtional values please sent a PR to add them to this documentation.\n\nDependencies\n------------\n\nNone.\n\nExample Playbook\n----------------\n\nIncluding an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:\n\n~~~\n- hosts: all\n  gather_facts: no\n  roles:\n    - register_syspurpose\n~~~\n\nLicense\n-------\n\nMIT.\n\nAuthor Information\n------------------\n\nJoerg Kastning - \"joerg (dot) kastning '@' uni-bielefeld (dot) de\"<\/code><\/pre>\n\n\n\n<p>Auch die Tasks-Datei ist sehr \u00fcbersichtlich:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n# tasks file for register_syspurpose\n- name: Register system to RHSM and set syspurpose attributes\n  redhat_subscription:\n    state: present\n    activationkey: \"{{ register_syspurpose_activationkey }}\"\n    org_id: \"{{ register_syspurpose_org_id }}\"\n    syspurpose:\n      role: \"{{ register_syspurpose_role }}\"\n      service_level_agreement: \"{{ register_syspurpose_sla }}\"\n      usage: \"{{ register_syspurpose_usage }}\"\n      sync: true<\/code><\/pre>\n\n\n\n<p>Um die Variablen mit Werten zu belegen, nutze ich <em>group_vars<\/em>. Ich verwende ein statisches Inventory, in dem ich Gruppen f\u00fcr die m\u00f6glichen Kombinationen aus <em>role, sla<\/em> und <em>usage<\/em> definiert habe. So wird jeder neue Host der entsprechenden Gruppe hinzugef\u00fcgt und anschlie\u00dfend bei der Provisionierung direkt registriert und korrekt konfiguriert. Detaillierte Informationen zum verwendeten Modul <code>redhat_subscription<\/code> bietet die Dokumentation unter [<a href=\"#quellen-links\">8<\/a>].<\/p>\n\n\n\n<p>Ihr seht, es steckt keine Magie in der Rolle. <em>But I like to <a href=\"https:\/\/en.wikipedia.org\/wiki\/KISS_principle\">Keep It Simple, Stupid<\/a>.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Das Red Hat Subscription Management ist kompliziert, hat seine Macken, eine Geschichte und etliche Altlasten. Ein Team um <a href=\"https:\/\/www.linkedin.com\/in\/richjerrido\">Rich Jerrido<\/a> hat es sich zur Aufgabe gemacht, das Subskriptions-System zu \u00fcberarbeiten und alte Z\u00f6pfe abzuschneiden. Ich beneide das Team nicht um diese Aufgabe.<\/p>\n\n\n\n<p>Das System befindet sich aktuell im \u00dcbergang (siehe [<a href=\"#quellen-links\">1<\/a>]). Damit gehen Herausforderungen sowohl f\u00fcr Red Hat als auch dessen Kunden einher.<\/p>\n\n\n\n<p>Das Red Hat die technischen Abh\u00e4ngigkeiten zwischen Betriebssystem und RHSM mit SCA abschafft, wei\u00df ich zu sch\u00e4tzen. Schade, dass die Unterst\u00fctzung bei der Buchf\u00fchrung dabei auf der Strecke bleibt.<\/p>\n\n\n\n<p>Subscription Watch bietet mir auch in der nahen Zukunft keinen Nutzen. Um meinen Pflichten aus [<a href=\"#quellen-links\">9<\/a>] nachzukommen, werde ich mir Red Hat Discovery n\u00e4her ansehen. Meine Erfahrungen werde ich anschlie\u00dfend hier im Blog niederschreiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quellen-links\">Quellen und weiterf\u00fchrende Links<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li><a href=\"https:\/\/access.redhat.com\/articles\/transition_of_subscription_services_to_the_hybrid_cloud_console\">Transition of Red Hat&#8217;s subhttps:\/\/access.redhat.com\/documentation\/en-us\/red_hat_subscription_management\/2022scriptions 5ervices to console.redhat.com<\/a><\/li><li><a href=\"https:\/\/access.redhat.com\/articles\/simple-content-access\">Simple Content Access (SCA)<\/a><\/li><li><a href=\"https:\/\/access.redhat.com\/solutions\/3121571\">How to register and subscribe a system offline to the Red Hat Customer Portal?<\/a><\/li><li><a href=\"https:\/\/access.redhat.com\/articles\/subscription-watch\">Subscription Watch<\/a><\/li><li><a href=\"https:\/\/access.redhat.com\/documentation\/en-us\/subscription_central\/2020-04\/html\/getting_started_with_subscription_watch_with_simple_content_access\/con-what-is-subscriptionwatch_assembly-about-subscriptionwatch-ctxt\">Chapter 1. What is subscription watch?<\/a><\/li><li><a href=\"https:\/\/access.redhat.com\/products\/red-hat-hybrid-cloud-console\">Red Hat Hybrid Cloud Console<\/a><\/li><li><a href=\"https:\/\/access.redhat.com\/documentation\/en-us\/red_hat_enterprise_linux\/8\/html\/performing_an_advanced_rhel_8_installation\/configuring-system-purpose-advanced_installing-rhel-as-an-experienced-user\">RHEL 8 Documentation: Chapter 12. Configuring System Purpose<\/a><\/li><li><a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/collections\/community\/general\/redhat_subscription_module.html\">community.general.redhat_subscription module \u2013 Manage registration and subscriptions to RHSM using the <code>subscription-manager<\/code> command<\/a><\/li><li><a href=\"https:\/\/www.redhat.com\/en\/resources\/red-hat-enterprise-linux-subscription-guide\">Red Hat Enterprise Linux subscription guide<\/a><\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Um die Paketquellen von Red Hat f\u00fcr Red Hat Enterprise Linux (RHEL) nutzen zu k\u00f6nnen, wird eine sogenannte Software-Subskription ben\u00f6tigt. Diese bestimmt, auf welche Paketquellen ein System zugreifen und deren Inhalt konsumieren kann. Das System der Subskriptionen befindet sich im Umbruch (siehe [1]). In diesem Artikel beschreibe ich, wie es bisher war, was sich durch<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/red-hat-enterprise-linux-registrieren-und-system-purpose-konfigurieren-mit-ansible\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[532],"tags":[430,305,539,389,740,741,742,390,385,743],"class_list":["post-3279","post","type-post","status-publish","format-standard","hentry","category-ansible","tag-osbn","tag-planet","tag-redhat_subscription","tag-rhel","tag-sca","tag-simple-content-access","tag-subscription-watch","tag-subscriptions","tag-subskriptionen","tag-swatch"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=3279"}],"version-history":[{"count":5,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3279\/revisions"}],"predecessor-version":[{"id":3294,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/3279\/revisions\/3294"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=3279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=3279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=3279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}