centos:ansible:pxe

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:ansible:pxe [21.06.2020 09:28. ] – [temporärer ÜBerschrift als Trenner] djangocentos:ansible:pxe [14.09.2022 16:52. ] (aktuell) – Seite umgezogen django
Zeile 1: Zeile 1:
-====== Installation eines Ansible-Orchestrator-Management-Hosts mit Hilfe eines Kickstartfiles für CentOS 8.x (PXE-Server) ====== 
-<WRAP center round todo 55%> 
-**Seite in der Entstehung, noch nicht aktuell! Wird laufend aktualisiert!** 
-</WRAP> 
- 
-Kurz mal einen Rechner zu installieren, wie im Kapitel **[[centos:pxe_c8:pxe_3|Installation von CentOS 8.x via PXE]]** beschrieben und anschließend manuell dann anschließend Ansible mit Ansible einzurichten, wie **[[https://dokuwiki.tachtler.net/doku.php?id=tachtler:ansible_mit_ansible_einrichten|hier]]** beschrieben, mag auch eine Variante darstellen. 
- 
-<WRAP center round tip 80%> 
-Wir wollen aber in folgendem Beispiel automatisiert unseren **AOMH**((**A**nsible-**O**rchestrator-**M**anagement-**H**osts)) reproduzierbar vie PXE installieren, so dass wir ohne Umwege direkt mit der Arbeit beginnen und unsere Zielsysteme nach unseren Wünschen automatisiert zu bestücken. 
-</WRAP> 
- 
- 
-===== Voraussetzungen ===== 
-==== TFTP-/PXE-Bootserver ==== 
-Folgende Voraussetzungen müssen hierzu erfüllt werden: 
-  - Der [[centos:dhcp_c7|DHCP-Server]] muss für PXE konfiguriert werden und im Netz erreichbar sein. 
-  - Ein [[centos:pxe_c7:tftp|TFTP-Server]] muss zur Verfügung stehen und im Netz erreichbar sein. 
-  - Eine Definition des [[centos:pxe_c7:pxe_1#graphisches_bootmenue_erstellen|Bootmenüs]] mit entsprechenden Optionen wurde erfolgreich vorgenommen. 
-  - Die Netzwerkkarte im Clientrechner __muss__ PXE unterstützen! 
- 
-==== SSH-Schlüsselmaterial ==== 
-Der Grundgedanke bei dieser Vorhaben ist, im Zweifel immer wieder exakt den gleichen **Ansible-Ochestrator-Management-Host** reproduzierbar aufzusetzen, werden wir das benötigte SSH-Schlüsselmaterial zu aller erst erzeugen und dann auch entsprechend sicher im physischen Safe wegsperren, so dass wir im Katastrophenfall darauf zurückgreifen zu können. 
- 
-Im Kapitel **[[centos:ansible:first#voraussetzungssh-schluessel|Voraussetzung: SSH-Schlüssel]]** haben wir uns bereits ausführlich mit der Thematik SSH-Schlüssel beschäftigt und auch gezeigt, wie dieser eerstellt wird. 
- 
-Wir erstellen uns nun einen **ED25519**-Schlüssel (**''-t''**), mit einer festen Schlüssellänge. Der Parameter (**''-a''**) beschreibt dabei die Anzahl der KDF-Schlüsselableitfunktion (siehe manpage von ssh-keygen). Wir  verwenden wieder als Beschreibung **Ansible Systemuser** (**''-C''**) und als Ziel-/Speicherort **~/.ssh/id_ed25519_ansible** (**''-f''**). 
-    $ ssh-keygen -t ed25519 -a 100 -C 'Ansible Systemuser' -f ~/.ssh/id_ed25519_ansible 
- 
-<code>Generating public/private ed25519 key pair. 
-Enter passphrase (empty for no passphrase):  
-Enter same passphrase again:  
-Your identification has been saved in ~/.ssh/id_ed25519_ansible. 
-Your public key has been saved in ~/.ssh/id_ed25519_ansible.pub. 
-The key fingerprint is: 
-SHA256:jTZQUDbCqZaV648fKVBfx3L4+tBMWL+z+iUCBY3kKMQ Ansible Systemuser 
-The key's randomart image is: 
-+--[ED25519 256]--+ 
-|     o+==.oo     | 
-|     .E+ +.+.    | 
-|     ++.. = *    | 
-|    +..+ + O .   | 
-|   ...  S + o .  | 
-|     ... o *   . | 
-|      .oo o + + .| 
-|      .... o . = | 
-|       ..   ooo  | 
-+----[SHA256]-----</code> 
- 
-Die beiden Key-Files kopieren wir dann auf ein vertrauenswürdiges Medium, auf welches wir jederzeit wiieder zurückgreifen können.  
-   $ ll .ssh/ 
-<code>-r--------. 1 ansible ansible 411 Jun 20 13:08 id_ed25519_ansible 
--rw-r--r--. 1 ansible ansible 100 Jun 20 13:08 id_ed25519_ansible.pub</code> 
- 
-<WRAP center round important 80%> 
-Ob das nun ein sicherer USB-Speicherstick wie der **[[https://www.nitrokey.com/files/doc/Nitrokey_Storage_Infoblatt.pdf|Nitrokey Storage 2]]**, ein **[[https://de.wikipedia.org/wiki/Network_Attached_Storage|Network Attached Storage]]** oder eine vertrauenswürdige **[[https://cloud.nausch.org|(Next)Cloud]]** ist, muss natürlich jeder für sich selbst entscheiden. 
-</WRAP> 
- 
- 
- 
-===== Ansible-Orchestrator-Management-Host ===== 
-==== Aufgabenstellung ==== 
-Wie Eingangs schon angesprochen, wollen wir unseren Ansible-Orchestrator-Management-Host bei Bedarf immer nach dem gleichen Grundschema aufbauen, konfigurieren und auch härten. Wir werden also diese Aufgaben standardisieren und automatisch abarbeiten lassen. 
- 
-Folgende Aufgaben wird unser Script für uns reproduzierbar künftig erledigen: 
-  - **[[centos:pxe_c8:pxe_3|Grundinstallation]]** eines CentOS 8 Hosts (Minimalinstallation) 
-  - **IP-Adresse und Hostname** Durch Angabe des Hostnamens beim Booten des Installationsimages wollen wir diesen setzen und auch die zugehörige IP-Adresse übernehmen lassen. (Der Hostname wir so z.B. auch bei der Definition der VolumeGroup eines LVMs verwendet.) 
-  - **Installations-Logfile** zum Nachvollziehen der erfolgten INstallation unter **''/root/anaconda-postinstall.log''** anlegen. 
-  - **[[centos:rename_nic_c8#grub_bootloader|Bootloader]]** Da wir beim Booten der Maschine detailierte Informationen sehen wollen werden wir die Option **rhgb** in der GRUB-Definition entfernen. 
-  - **[[centos:logins_individuell_anpassen|MOTD und ISSUE.NET]]** individualisieren inkl. Hostnamen 
-  - **[[centos:ssh_c7#ssh-daemon|SSH-Daemon]]** Den SSH Daemon härten wir und passen die Konfigurationsdatei entsprechend an. 
-  - **[[centos:ssh_c7#zielverzeichnis_anlegen_und_oeffentlichen_schluessel_kopieren|SSH-Publickey]]** Für unseren Admin-Account **django** hinterlegen wir den zugehörigen öffentlichen SSH-Schlüssel. 
-  - **[[wiki:start#repos|Repositories]]** Statt der öffentlichen, sollen nur noch die lokal gesyncten Repositories verwendet werden; daher macht es auch keinen Sinn die Einträge **''mirrorlist=''** in den entsprechenden repo-filers stehen zu lassen.  
-  - Zusätzlich zum Standard soll auch noch das Repository **[[centos:epel8|EPEL]]** eingebunden und genutzt werden.  
-  - **Update** Zum Schluss stellen wir noch sicher dass alle installierten Pakete in der aktuellsten Version vorliegen und lassen dann das System neu starten. 
-  - **NFS-Client zur Verbindung NAS einrichten**, damit später die Playbooks gesichert werden können. 
-  - **[[centos:ansible:basics#installation|Ansible installieren]]** 
-  - **Ansible System-User** erstellen und zuvor erstelltes **[[#ssh-schluesselmaterial|Schlüsselmaterial]]** hinterlegen 
-  - **[[centos:ansible:first#ansibledirectory_layout|Ansible: Directory Layout]]**- Verzeichnisstruktur anlegen  
-  - **[[centos:ansible:first#musterkonfiguration|Ansible konfigurieren]]** 
- 
-FIXME **//do geds weida ...//** 
- 
-==== Kickstartdatei anlegen ==== 
-Zur automatischen Installation und Konfiguration unseres Ansible-Orchestrator-Management-Hosts verwenden wir folgende Kickstart-Datei. 
-   # vim /srv/kickstart/ks_centos_8_x86_64_ansible.cfg 
- 
-<file bash /srv/kickstart/ks_centos_8_x86_64_ansible.cfg></file> 
- 
-==== PXE-Bootmenü-Datei anpassen ==== 
-Damit nun beim Laden der Menüdatei bei PXE-Boot die überarbeitete Kickstart-Datei geladen werden kann, erweitern wir nun die Menü-Datei unseres PXE-Bootservers. 
- 
-   # vim /var/lib/tftpboot/pxelinux.cfg/dmz-64 
-Dort tragen wir beim betreffenden **LABEL** die Optionen **''ks''**, **''net.ifnames''** und **''biosdevname''** sowie am Ende der Zeile **''SERVERNAME=''** ein. 
-<code>LABEL 3 
-   MENU LABEL ^3) Installation von CentOS 8 (64 Bit) 
-   KERNEL images/centos/8/x86_64/vmlinuz 
-   APPEND ks=http://10.0.0.57/kickstart/ks_centos_8_x86_64_dmz.cfg initrd=images/centos/8/x86_64/initrd.img ksdevice=eth0 ip=dhcp --hostname=vml000250.dmz.nausch.org method=http://10.0.0.57/centos/8/BaseOS/x86_64/os/ net.ifnames=0 biosdevname=0 SERVERNAME= 
-</code> 
- 
-Anschliessend starten wir wie gewohnt unsere virtuelle Maschine.   
- 
-{{ :centos:pxe_c7:pxe-boot-menue-004.png?nolink&800 |Bild: Bildschirmhardcopy der Installationskonfiguration}} 
- 
-<WRAP center round tip 80%> 
- 
-Zum Setzen des Hostnamens wählen wir nun wie gewünscht den betreffenden Menüpunkt aus, drücken dann aber **__NICHT__** die **EINGABETASTE**, sondern die Taste **TAB**! Anschliessend geben wir den Hostnamen ein. 
-</WRAP> 
- 
-{{ :centos:pxe_c8:pxe-boot-menue-087b.png?nolink&800 |Bild: Bildschirmhardcopy Auswahl PXE Bootmenü}}  
- 
-Am Ende des Installationsvorganges werden wir informiert, dass das postinstall-script, welches wir per PXE-Boot bzw. genauer gesagt mit dem Kickstartfile mitgegeben hatten, ausgeführt wird. 
- 
-{{ :centos:pxe_c8:pxe-boot-menue-087c.png?nolink&800 |Bild: Bildschirmhardcopy Anzeige "Ausführung postinstall script"}}  
- 
-Nach kurzer Wartezeit haben wir ein neues, vorkonfiguriertes und vor allem aktuelles System, bei dem wir uns direkt per **''ssh''** verbinden können. 
-   $ ssh 10.0.0.50 
- 
-<code>The authenticity of host '10.0.0.50 (10.0.0.50)' can't be established. 
-ED25519 key fingerprint is SHA256:JKV0iNvjQGMhkWIGEPC1hQH/vzpbeabl1g7s46yhMj6. 
-Are you sure you want to continue connecting (yes/no/[fingerprint])? yes 
-Warning: Permanently added '10.0.0.50' (ED25519) to the list of known hosts. 
-############################################################################## 
-#                                                                            # 
-#                       This is a private home server.                       # 
-#                                                                            # 
-#             Unauthorized access to this system is prohibited !             # 
-#                                                                            # 
-#    This system is actively monitored and all connections may be logged.    # 
-#         By accessing this system, you consent to this monitoring.          # 
-#                                                                            # 
-############################################################################## 
-############################################################################## 
-#                                                                            # 
-#                 This is the home server of Michael Nausch.                 # 
-#                                                                            # 
-#                            vml000050.nausch.org                            # 
-#                                                                            # 
-#             Unauthorized access to this system is prohibited !             # 
-#                                                                            # 
-#    This system is actively monitored and all connections may be logged.    # 
-#         By accessing this system, you consent to this monitoring.          # 
-#                                                                            # 
-##############################################################################</code> 
- 
-Die Netzwerkschnittstelle hat entsprechend die gewünschte Bezeichnung erhalten. 
-   # ip a 
- 
-<code>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
-    inet 127.0.0.1/8 scope host lo 
-       valid_lft forever preferred_lft forever 
-    inet6 ::1/128 scope host  
-       valid_lft forever preferred_lft forever 
-2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 
-    link/ether 52:54:00:74:80:c2 brd ff:ff:ff:ff:ff:ff 
-    inet 10.0.0.50/24 brd 10.0.0.255 scope global noprefixroute eth0 
-       valid_lft forever preferred_lft forever 
-    inet6 fe80::5054:ff:fe74:80c2/64 scope link noprefixroute  
-       valid_lft forever preferred_lft forever</code> 
- 
-Das System ist auch mit den aktuellesten Programmpaketen bestückt. 
-   # dnf update 
- 
-<code>Last metadata expiration check: 0:12:20 ago on Sun 14 Jun 2020 01:49:52 PM CEST. 
-Dependencies resolved. 
-Nothing to do. 
-Complete!</code> 
  
  • centos/ansible/pxe.1592731728.txt.gz
  • Zuletzt geändert: 21.06.2020 09:28.
  • von django