Was ist die empfohlene Methode zum Vorbereiten von Red Hat / CentOS 7-Vorlagen?

9

Wenn ich Red Hat 7 über eine Vorlage bereitstellen muss, möchte ich die empfohlenen Schritte ausführen, um mein "goldenes Image" sauber zu machen. Es sollte zur ersten Startaufforderung booten und den Benutzer durch die typischen Schritte führen.

In Red Hat 5/6 folgte ich der Dokumentation des Anbieters. Ich kann jedoch kein Äquivalent für Red Hat 7 finden. Insbesondere wird touch /.unconfigureddas erste Start-Setup nicht ausgelöst.

9.3.1. Versiegeln einer virtuellen Linux-Maschine für die Bereitstellung als Vorlage

Zusammenfassung
Verallgemeinern (versiegeln) Sie eine virtuelle Linux-Maschine, bevor Sie sie zu einer Vorlage machen. Dies verhindert Konflikte zwischen virtuellen Maschinen, die über die Vorlage bereitgestellt werden.

Vorgehensweise 9.6. Versiegeln einer virtuellen Linux-Maschine

Melden Sie sich bei der virtuellen Maschine an. Kennzeichnen Sie das System für die Neukonfiguration, indem Sie den folgenden Befehl als root ausführen:

  1. # touch /.unconfigured
  2. Entfernen Sie die SSH-Hostschlüssel. Lauf:
    # rm -rf /etc/ssh/ssh_host_*
  3. Setzen Sie HOSTNAME=localhost.localdomainein/etc/sysconfig/network
  4. Entfernen Sie /etc/udev/rules.d/70-*. Lauf:
    # rm -rf /etc/udev/rules.d/70-*
  5. Entfernen Sie die Zeilen HWADDR = und UUID = von /etc/sysconfig/network-scripts/ifcfg-eth*.
  6. Löschen Sie optional alle Protokolle aus /var/logund erstellen Sie Protokolle aus /root.
  7. Fahren Sie die virtuelle Maschine herunter. Lauf:
    # poweroff

Bearbeiten: Die Schritte 1 und 7 können kombiniert werden, indem Sie sys-unconfigzuletzt ausführen . Oder haben Sie einen Blick auf virt-sysprepvon libguestfs-tools-c , die viel kostet, viel mehr.

 [user@hostname ~]$ virt-sysprep --list-operations
 abrt-data * Remove the crash data generated by ABRT
 bash-history * Remove the bash history in the guest
 blkid-tab * Remove blkid tab in the guest
 ca-certificates   Remove CA certificates in the guest
 crash-data * Remove the crash data generated by kexec-tools
 cron-spool * Remove user at-jobs and cron-jobs
 delete * Delete specified files or directories
 dhcp-client-state * Remove DHCP client leases
 dhcp-server-state * Remove DHCP server leases
 dovecot-data * Remove Dovecot (mail server) data
 firewall-rules   Remove the firewall rules
 firstboot * Add scripts to run once at next boot
 flag-reconfiguration   Flag the system for reconfiguration
 hostname * Change the hostname of the guest
 kerberos-data   Remove Kerberos data in the guest
 logfiles * Remove many log files from the guest
 lvm-uuids * Change LVM2 PV and VG UUIDs
 machine-id * Remove the local machine ID
 mail-spool * Remove email from the local mail spool directory
 net-hostname * Remove HOSTNAME in network interface configuration
 net-hwaddr * Remove HWADDR (hard-coded MAC address) configuration
 pacct-log * Remove the process accounting log files
 package-manager-cache * Remove package manager cache
 pam-data * Remove the PAM data in the guest
 password * Set root or user password
 puppet-data-log * Remove the data and log files of puppet
 random-seed * Generate random seed for guest
 rhn-systemid * Remove the RHN system ID
 rpm-db * Remove host-specific RPM database files
 samba-db-log * Remove the database and log files of Samba
 script * Run arbitrary scripts against the guest
 smolt-uuid * Remove the Smolt hardware UUID
 ssh-hostkeys * Remove the SSH host keys in the guest
 ssh-userdir * Remove ".ssh" directories in the guest
 sssd-db-log * Remove the database and log files of sssd
 tmp-files * Remove temporary files
 udev-persistent-net * Remove udev persistent net rules
 user-account   Remove the user accounts in the guest
 utmp * Remove the utmp file
 yum-uuid * Remove the yum UUID
Aaron Copley
quelle
Hatte es fast. Einstellung RUN_FIRSTBOOT=YESin /etc/sysconfig/firstbootmir den Kdump Konfigurationsteil bekam, aber nicht den Rest des Firstboot - Prozesses.
Aaron Copley

Antworten:

5

Was wir als anfängliche Einrichtung betrachten, besteht eigentlich aus drei Teilen. Die ersten beiden sind:

  • Ersteinrichtung, bei der Sie aufgefordert werden, die Lizenz zu akzeptieren und einen Benutzer zu erstellen
  • Firstboot, bei dem Sie aufgefordert werden, kdump zu konfigurieren und (unter RHEL) Ihr Abonnement einzurichten

Beide sind jetzt über systemd aktiviert. Sobald sie fertig sind, deaktivieren sie sich.

Sie müssen also nur alle lokalen Benutzer entfernen, die während des ersten Ersteinrichtungsprozesses erstellt wurden, und diese Dienste wieder aktivieren:

systemctl enable initial-setup-graphical.service
systemctl enable firstboot-graphical.service
> /etc/sysconfig/firstboot

und neu starten.

Ich bin mir nicht ganz sicher, was den dritten Teil betrifft, in dem Sie nach Ihrer Sprache gefragt werden und ein Benutzerkonto erstellt oder der Computer einer Domäne hinzugefügt werden soll. Dies wird zumindest so lange fortgesetzt, bis Sie den Assistenten tatsächlich abgeschlossen haben. (Also tu das nicht.)

Es kann dennoch eine gute Idee sein, Hostschlüssel und alle hardwarespezifischen Konfigurationen zu bereinigen. (Mac-Adressen in udev-Regeln und Schnittstellenkonfigurationsdateien.)

Michael Hampton
quelle
1
Ich habe es herausgefunden ... Sie können keine anderen Benutzer als 'root' haben. Ich habe den Benutzer verwendet, der zum ersten Mal während der Ersteinrichtung erstellt wurde. Als root angemeldet, vom Benutzer gelöscht und neu gestartet - Die Ersteinrichtung hat funktioniert.
Aaron Copley
Ah, ich erstelle niemals lokale Benutzer, weil ich im Allgemeinen einer Domain beitrete. Zahlen.
Michael Hampton