01.2022
Standardfunktionen von Foreman:
Für unseren Einsatzzweck als Proxy Funktionalität für RPM Repositories mit Lizenz-Verwaltung z.B. für Redhat muss die Katello Option zum Foreman bei der Installation gleich mit ausgewählt werden.
Nachträglich lässt sich das nicht mehr hinzufügen.
Voraussetzung: Der Server muss die folgenden Repos erreichen können:
D.h. falls eine Applikation FW bzw. ein URL Filter im Proxy im Einsatz ist, diese URL's freischalten lassen.
Ablauf:
Zeitdienst kontrollieren, Uhrzeit muss über aller verwalteten Server korrekt sein! Bei Bedarf Crony einrichten!
Namensauflösung muss perfekt über einen DNS Server funktionieren!
Der Server muss sich auch selber auflösen können und unter dem Namen von allen System erreichbar sein!
ping -c 2 $(hostname -f)
Ruby auf dem System konfigurieren:
dnf module reset ruby dnf -y module enable ruby:2.7 dnf install ruby -y
Ports freischalten:
# firewall-cmd \ --add-port="53/udp" --add-port="53/tcp" \ --add-port="67/udp" \ --add-port="69/udp" \ --add-port="80/tcp" --add-port="443/tcp" \ --add-port="5647/tcp" \ --add-port="8000/tcp" --add-port="9090/tcp" \ --add-port="8140/tcp" firewall-cmd --reload
bzw. komplett deaktiveren:
systemctl stop firewalld systemctl disable firewalld
Konfigure Redhat Linux 8 Repos:
subscription-manager repos --disable "*" subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms \ --enable=rhel-8-for-x86_64-appstream-rpms dnf clean all
Foreman und Puppet Repos hinzufügen:
dnf -y install https://yum.theforeman.org/releases/3.5/el8/x86_64/foreman-release.rpm dnf -y install https://yum.theforeman.org/katello/4.7/katello/el8/x86_64/katello-repos-latest.rpm dnf -y install https://yum.puppet.com/puppet7-release-el-8.noarch.rpm dnf module enable katello:el8 pulpcore:el8 # requires module(postgresql:12) Meldung kann ignoriert werden
Testen ob alle Repos erreicht werden:
dnf clean all dnf install unzip
SSL Verifzierung für dnf temopräre über „sslverify=0“ in der dns Konfiuration /etc/dnf/dnf.conf ausschalten falls hinter einem SSL Proxy:
vi /etc/dnf/dnf.conf sslverify=0
Allerdings hat das nicht in meinen Fall geholfen am Ende die Datei zu laden, es blieb nicht anders übrig als die Daten über die URL https://yum.puppet.com/puppet7-release-el-8.noarch.rpm direkt zu holen:
curl --insecure https://yum.puppet.com/puppet7-release-el-8.noarch.rpm dnf -y install puppet7-release-el-8.noarch.rpm
bzw. von andern Host holen und dann einspielen.
Darauf achten das die Katello und Forman Repo auch von der geleichen Version sind! Auf die Reihenfolge der Aufrufe achten!
Da wir Foremann als Proxy zu Redhat für die RPM Verteilung und Lizenzverwaltung einsetzten wollen, muss auch das Katello plug-in Gleich zu Begin installiert werden. Nachträglich ist das nicht möglich!
Umgebung aktualisieren:
dnf update
Installer installieren:
dnf -y install foreman-installer-katello
Installation aufrufen (mit –tuning development da meine VM nur 16GB Ram hat!) :
foreman-installer --help foreman-installer --full-help foreman-installer -i # oder foreman-installer --scenario katello \ --foreman-initial-organization "GPIConsult" \ --foreman-initial-location "Rossbach" \ --foreman-initial-admin-username admin \ --foreman-initial-admin-password xxxxx \ --enable-foreman-plugin-openscap \ --enable-foreman-proxy-plugin-openscap \ --enable-foreman-plugin-ansible \ --enable-foreman-proxy-plugin-ansible \ --enable-foreman-plugin-remote-execution \ --enable-foreman-proxy-plugin-remote-execution-script \ --tuning development 2023-01-19 15:31:12 [NOTICE] [root] Loading installer configuration. This will take some time. 2023-01-19 15:31:15 [NOTICE] [root] Running installer with log based terminal output at level NOTICE. 2023-01-19 15:31:15 [NOTICE] [root] Use -l to set the terminal output log level to ERROR, WARN, NOTICE, INFO, or DEBUG. See --full-help for definitions. 2023-01-19 15:34:07 [NOTICE] [configure] Starting system configuration. 2023-01-19 15:35:57 [NOTICE] [configure] 250 configuration steps out of 1502 steps complete. 2023-01-19 15:36:38 [NOTICE] [configure] 500 configuration steps out of 1504 steps complete. 2023-01-19 15:36:49 [NOTICE] [configure] 750 configuration steps out of 1509 steps complete. 2023-01-19 15:38:16 [NOTICE] [configure] 1000 configuration steps out of 1532 steps complete. 2023-01-19 15:40:32 [NOTICE] [configure] 1250 configuration steps out of 1532 steps complete. 2023-01-19 15:42:53 [NOTICE] [configure] 1500 configuration steps out of 1532 steps complete. 2023-01-19 15:43:00 [NOTICE] [configure] System configuration has finished. Executing: foreman-rake upgrade:run WARNING: Sidekiq::Web.sessions= is no longer relevant and will be removed in Sidekiq 7.0. /usr/share/gems/gems/sidekiq-6.3.1/lib/sidekiq/web.rb:75:in `set' ============================================= Upgrade Step 1/8: katello:correct_repositories. This may take a long while. ============================================= Upgrade Step 2/8: katello:clean_backend_objects. This may take a long while. 0 orphaned consumer id(s) found in candlepin. Candlepin orphaned consumers: [] ============================================= Upgrade Step 3/8: katello:upgrades:4.0:remove_ostree_puppet_content. ============================================= Upgrade Step 4/8: katello:upgrades:4.1:sync_noarch_content. ============================================= Upgrade Step 5/8: katello:upgrades:4.1:fix_invalid_pools. I, [2023-01-19T15:43:10.385970 #16591] INFO -- : Corrected 0 invalid pools I, [2023-01-19T15:43:10.386001 #16591] INFO -- : Removed 0 orphaned pools ============================================= Upgrade Step 6/8: katello:upgrades:4.1:reupdate_content_import_export_perms. ============================================= Upgrade Step 7/8: katello:upgrades:4.2:remove_checksum_values. ============================================= Upgrade Step 8/8: katello:upgrades:4.4:publish_import_cvvs. Success! * Foreman is running at https://gpiforeman01.pipperr.local Initial credentials are admin / xxxxxxxxxxx * To install an additional Foreman proxy on separate machine continue by running: foreman-proxy-certs-generate --foreman-proxy-fqdn "$FOREMAN_PROXY" --certs-tar "/root/$FOREMAN_PROXY-certs.tar" * Foreman Proxy is running at https://gpiforeman01.pipperr.local:9090
health Check ausführen
foreman-maintain health check Running ForemanMaintain::Scenario::FilteredScenario ================================================================================ Check number of fact names in database: [OK] -------------------------------------------------------------------------------- Check whether all services are running: [OK] -------------------------------------------------------------------------------- Check whether all services are running using the ping call: [OK] -------------------------------------------------------------------------------- Check for paused tasks: [OK] --------------------------------------------------------------------------------
Settings über die Console prüfen:
hammer settings list --fields="Name,Value"
Ist die Umgebung nicht so groß mit „–tuning development“ auf die kleinste Umgebung konfugrieren:
Probem: Tuning profile 'default' requires at least 20 GB of memory and 4 CPU cores
Lösung : –tuning development
MS:
Activation Key erzeugen:
Template und Registation Feature vom Smart Proxy aktiviert werden:
foreman-installer --foreman-proxy-registration true --foreman-proxy-templates true --foreman-proxy-template-url 'http://gpiforeman01.pipperr.local'
Betriebsystem unter Operation System anlegen
Über Host⇒„Register Host“ URL erzeugen, falls einigermaßen sicheres Netz mit dem Schalter „Insecure“
Der Client benötigt die folgenden FW Freischaltungen:
# firewall-cmd \ --add-port="53/udp" --add-port="53/tcp" \ --add-port="67/udp" \ --add-port="69/udp" \ --add-port="80/tcp" --add-port="443/tcp" \ --add-port="8443/tcp" \ --add-port="8140/tcp" --add-port="9090/tcp" firewall-cmd --runtime-to-permanent firewall-cmd --list-all
# Remove Katello Agent systemctl stop goferd systemctl disable goferd yum -y remove remove katello-agent # Unregister old sub yum clean all subscription-manager remove --all subscription-manager unregister subscription-manager clean # URL aus der Oberfläche aufrufen curl -sS --insecure 'https://gpiforeman01.pipperr.local:9090/register?activation_keys=xxxxxxxxxxxx................... # Evlt. Repos die zu viel sind per Pool ID wieder mit remove entfernen subscription-manager remove --pool=xxxxxxxxxxxxxxxx
Vor der Installation einen Snapshot der Maschine erstellen! Dann das das zurückgehen auf dem Snapshot die bessere Wahl!
Entfernen mit:
Remove foreman yum remove foreman foreman-installer foreman-proxy foreman-installer-katello rm -rf /var/lib/foreman rm -rf /usr/share/foreman rm -rf /usr/share/foreman-proxy/logs rm -rf /etc/httpd/conf.d/foreman.conf rm -rf /etc/foreman rm -rf /etc/foreman-installer rm -rf /etc/foreman-proxy rm -rf /opt/puppetlabs/server/data/puppetserver/yaml/foreman rm -rf /run/foreman rm -rf /usr/libexec/foreman rm -rf /var/lib/selinux/targeted/active/modules/400/foreman rm -rf /var/log/foreman # Remove puppet yum remove puppet puppetmaster puppet-common puppetmaster-common puppetlabs-release rm -rf /usr/lib/ruby/vendor_ruby/puppet rm -rf /usr/share/puppet rm -rf /var/lib/puppet /etc/puppet rm -rf /etc/apache2/conf.d/puppet.conf
Installation mit zurücksetzen der Daten mit „ –reset-data“ :
foreman-installer --scenario katello \ --foreman-initial-organization "GPIConsult" \ --foreman-initial-location "Roßbach" \ --foreman-initial-admin-username admin \ --foreman-initial-admin-password xxxxxxx\ --enable-foreman-plugin-openscap \ --enable-foreman-proxy-plugin-openscap \ --enable-foreman-plugin-ansible \ --enable-foreman-proxy-plugin-ansible \ --enable-foreman-plugin-remote-execution \ --enable-foreman-proxy-plugin-remote-execution-script \ --tuning development --reset-data
Web:
Doku Installation:
Anleitung:
OpenScap